File io 如何读取作为二进制文件传输的文本文件

File io 如何读取作为二进制文件传输的文本文件,file-io,axapta,x++,File Io,Axapta,X++,我的代码将文件从ftp(使用文本传输模式)复制到本地磁盘,然后尝试处理它们。 所有文件仅包含文本,并且使用新行分隔值。有时,文件会使用二进制传输模式移动到此ftp,看起来这会弄乱线端。 使用十六进制编辑器,我根据用于将文件发送到ftp的传输模式比较了行尾: 使用文本模式:文件结尾为0D 0A 使用二进制模式:文件结尾为0D 0D 0A 是否可以修改我的代码,以便它可以在这两种情况下读取文件? 说明我的问题并显示我如何读取文件的作业代码: (这里我使用相同的文件,其中包含14行数据) inti;

我的代码将文件从ftp(使用文本传输模式)复制到本地磁盘,然后尝试处理它们。 所有文件仅包含文本,并且使用新行分隔值。有时,文件会使用二进制传输模式移动到此ftp,看起来这会弄乱线端。 使用十六进制编辑器,我根据用于将文件发送到ftp的传输模式比较了行尾: 使用文本模式:文件结尾为0D 0A 使用二进制模式:文件结尾为0D 0D 0A

是否可以修改我的代码,以便它可以在这两种情况下读取文件? 说明我的问题并显示我如何读取文件的作业代码: (这里我使用相同的文件,其中包含14行数据)

inti;
集装箱集装箱;
容器文件=[“c:\\temp\\axa\u keio\\ascii.txt”,“c:\\temp\\axa\u keio\\binary.txt”];
布尔purchLineFirstRow;
IO infle;
;

对于(i=1;i使用记录分隔符中的

inFile.inRecordDelimiter('\n');
而不是:

inFile.inFieldDelimiter('\n');
最后一个字段上可能仍有悬空CR,您可能希望删除此字段:

strRem(conpeek(con, conlen(con)), '\r')

另请参见:

能否指定您是要往返于Windows、Linux、BSD还是两侧的操作系统?行终止是特定于操作系统的,在文本模式下,FTP进行的转换不是在二进制模式下完成的。文件来自Unix系统到Windows。
strRem(conpeek(con, conlen(con)), '\r')