Last Imported Line Is Empty 输入流进度
Last Imported Line Is Empty Input Stream Progress
我制作了一个脚本来导入 CSV 文件。
它工作完美,但是当我将它导入临时文件 table 时,临时文件 table 中的最后一条记录是空的。我已经对 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 块之外显示 ttEa 时,我得到一个空记录,如下所示:
当我在 REPEAT 块中显示 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.
转到 CSV 文件的末尾并按 ENTER 键,保存它,再次 运行。 Progress 的一个已知错误是不导入最后一行,因此请确保它是空白行。如果您的文件末尾没有回车 return,您将丢失最后一条记录,这可能就是这里发生的情况。
编辑:因为你提到问题是最后的空记录,而不是不导入最后一个,我向重复添加了一个事务,在我的测试中,空记录消失了。
repeat transaction:
create ttEa.
import stream sEaImport delimiter ';' ttEa.
end.
确保您的临时文件 table 上没有 NO-UNDO
语句。然后将 REPEAT
语句更改为 REPEAT TRANSACTION
。最后一次迭代将尝试创建 ttEa 记录但失败了。由于它现在处于事务中,创建将被撤消(这就是为什么你不能在临时 table 上有 NO-UNDO
的原因)并且空白记录将消失。
我制作了一个脚本来导入 CSV 文件。
它工作完美,但是当我将它导入临时文件 table 时,临时文件 table 中的最后一条记录是空的。我已经对 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 块之外显示 ttEa 时,我得到一个空记录,如下所示:
当我在 REPEAT 块中显示 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.
转到 CSV 文件的末尾并按 ENTER 键,保存它,再次 运行。 Progress 的一个已知错误是不导入最后一行,因此请确保它是空白行。如果您的文件末尾没有回车 return,您将丢失最后一条记录,这可能就是这里发生的情况。
编辑:因为你提到问题是最后的空记录,而不是不导入最后一个,我向重复添加了一个事务,在我的测试中,空记录消失了。
repeat transaction:
create ttEa.
import stream sEaImport delimiter ';' ttEa.
end.
确保您的临时文件 table 上没有 NO-UNDO
语句。然后将 REPEAT
语句更改为 REPEAT TRANSACTION
。最后一次迭代将尝试创建 ttEa 记录但失败了。由于它现在处于事务中,创建将被撤消(这就是为什么你不能在临时 table 上有 NO-UNDO
的原因)并且空白记录将消失。