csv - 最后导入的行为空 输入流进度

标签 csv openedge progress-4gl 4gl

我制作了一个脚本来导入 CSV 文件。

它工作完美,但是当我将其导入临时表时,临时表中的最后一条记录是空的。我已经检查了 CSV 三次,它不包含任何空行。

这是我的代码:

INPUT STREAM sEaImport FROM VALUE(cCsvEaFileLocation).
/* Skip first line to remove the headers */
IMPORT STREAM sEaImport DELIMITER ";" vcline.
REPEAT:
    CREATE ttEa.
    IMPORT STREAM sEaImport DELIMITER ";" ttEa.
END.
INPUT CLOSE.

FOR EACH ttEa:
    DISPLAY ttEa.
END. 

当我在 REPEAT block 之外显示 ttEa 时,我得到一个空记录,如下所示:

enter image description here

当我在 REPEAT block 内显示 ttEa 时,我没有得到空记录。

有人可以帮我吗?

使用它仍然给我相同的结果:

INPUT STREAM sEaImport FROM VALUE(cCsvEaFileLocation).
/* Skip first line to remove the headers */
IMPORT STREAM sEaImport UNFORMATTED vcline.
REPEAT on error undo,leave on endkey undo,leave:
    CREATE ttEa .
    IMPORT STREAM sEaImport DELIMITER ";" ttEa. 
END.

INPUT STREAM sEaImport CLOSE.  

最佳答案

确保您的临时表上没有 NO-UNDO 语句。然后将 REPEAT 语句更改为 REPEAT TRANSACTION。最后一次迭代将尝试创建 ttEa 记录但失败。由于它现在处于事务中,因此创建将被撤消(这就是为什么您不能在临时表上使用 NO-UNDO),并且空白记录将消失。

关于csv - 最后导入的行为空 输入流进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47159339/

相关文章:

php - 错误 unicode 导出 csv 文件 - Laravel/Excel

query-string - 进度 4gl OpenEdge 解析键/值对字符串又名查询字符串

encryption - 如何使用 Progress DB 保护通过 ODBC 连接传输的数据

compiler-errors - 进展新手问题: where are the error codes?

progress-4gl - 从 Progress OpenEdge 数据库中的表中获取前 100 条记录(例如 SELECT TOP 100..)

rounding - 如何汇总进行中的编程

progress-4gl - 如何获得正在进行的月末日期 4gl

r - 如何合并一列中的行以匹配另一列中的非空行?

R 列和 type.convert(data[[i]] 中的错误,特别是在 Mac 上

python - 如何将 CSV 变量中的行读入 python 中的多维数组?