delphi 2007以后的版本(不含)字符集已经默认是unicode,一个字符2字节,之前的版本默认ansi,#13在unicode是#13#0,所以你的#13+#10实际为#13#0+#10#0,你要理解字符集,才能正确的处理好文件读写。
通过测试 Stream.WriteBuffer(aStr[1], length(aStr)); 改成: Stream.WriteBuffer(aStr[1], length(aStr)*2); 就可以了. 另外,每行后要回车换行的话必须 '...'+ #13#10; 不能这样: '....' + #13 + #10; 深感无语.
var f: TStreamWriter; f := TStreamWriter.Create('test.txt', True, TEncoding.ANSI); try f.WriteLine('Hello World!'); finally f.Free; end;
5,386
社区成员
262,729
社区内容
加载中
试试用AI创作助手写篇文章吧