procedure TForm1.button1Click(Sender: TObject); Var F : Textfile; s : string; begin Assignfile(F,'data.log'); reset(F); while not Eof(F) do begin Readln(F,s); Memo1.lines.Add(s); end; end;
有谁知道问题可能是什么?
解决方法 正如Michael所说,您正在处理UTF-16编码文件,因此您必须手动加载和解码它.有很多基于WIDeString的类似TStringList的类在线浮动,或者Borland在WIDeStrings单元中有自己的实现,尝试使用其中一个而不是Pascal文件I / O,例如:procedure TForm1.button1Click(Sender: TObject);var SL : TWIDeStringList; I: Integer; s : string;begin SL := TWIDeStringList.Create; try SL.LoadFromfile('data.log'); Memo1.lines.BeginUpdate; try for I := 0 to SL.Count-1 do Memo1.lines.Add(SL[I]); finally Memo1.lines.EndUpdate; end; finally SL.Free; end;end;
要么:
uses ..,WIDeStrings;procedure TForm1.button1Click(Sender: TObject);var SL : TWIDeStringList;begin SL := TWIDeStringList.Create; try SL.LoadFromfile('data.log'); Memo1.lines.Assign(SL); finally SL.Free; end;end;
或者,安装TNTWare或TMS的副本,这两个副本都具有启用Unicode的组件.然后你应该能够直接将.f文件LoadFromfile()直接添加到你选择使用的更多Unicode Memo组件中.
总结以上是内存溢出为你收集整理的使用delphi从.log文件读取时,将“ÿþI”作为输出数据全部内容,希望文章能够帮你解决使用delphi从.log文件读取时,将“ÿþI”作为输出数据所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)