2017-06-04 711 views
1

我想读一个简单的CSV读取文本文件一行一行地使用(逗号分隔文本文件):欣快感

#! /usr/bin/eui 

include get.e 

integer file_id = open("myfile.csv","r") 
if file_id != -1 then 
    sequence input_data = gets(file_id) 
    while sequence(input_data) do 
     printf(1, "The string read is: %s", {input_data}) 
     input_data = gets(file_id) 
    end while 
end if 
printf(1, "before closing..\n") 
close(file_id) 
printf(1, "after closing..\n") 

然而,错误结束在文件的结尾,从不达到“结账前”声明。

type_check failure, input_data is -1 

我该如何检测文件结束以便正常结束程序?我试着检查文档,但找不到它。

凹凸。

回答

1

变化input_data的申报对象,像这样:

object input_data = gets(file_id) 

是您在Phix运行上面的代码,你也将得到

while sequence(input_data) do 
       ^Warning: probable logic error (always true) 

其中暗示的事业错误和潜在的无限循环。

另外,close(file_id)应该在if file_id!= - 1 test内。

+0

这正是我想要的。谢谢。 – rnso

+0

&欢迎来到Stackoverflow! – rnso