我的代码将文件从 ftp(使用文本传输模式)复制到本地磁盘,然后尝试处理它们。所有文件仅包含文本,并且使用新行分隔值。有时文件使用二进制传输模式移动到这个 ftp,看起来这会弄乱行尾。使用十六进制编辑器,我根据用于将文件发送到 ftp 的传输模式比较了行尾: 使用文本模式:文件结尾为 0D 0A 使用二进制模式:文件结尾为 0D 0D 0A
是否可以修改我的代码以便在这两种情况下都可以读取文件?作业中的代码说明了我的问题并显示了我如何读取文件:(这里我使用相同的文件,其中包含 14 行数据)
int i;
container con;
container files = ["c:\\temp\\axa_keio\\ascii.txt", "c:\\temp\\axa_keio\\binary.txt"];
boolean purchLineFirstRow;
IO inFile;
;
for(i=1; i<=conlen(files); i++)
{
inFile = new AsciiIO(conpeek(files,i), "R");
inFile.inFieldDelimiter('\n');
con = inFile.read();
info(int2str(conlen(con)));
}
文件来自 Unix 系统到 Windows 系统。不确定,但问题可能是:“我应该使用哪个 inFieldDelimiter 值来读取 Unix 和 Windows 行结束?”