こんにちは。
テキストファイルでは問題ないのですが
Unicodeテキストファイルを
ReadLn関数で一行読み込むと
文字化けしています。
以下が異常な値が取得されるコードです。
************************************
procedure TForm1.Button1Click(Sender: TObject);
var
FName: String;
LoadText: String;
ltf: TextFile;
begin
// テキストファイル読み込み
AssignFile( ltf, 'C:\TEMP\TEST.INI');
Reset(ltf );
while not Eof(ltf ) do
begin
Readln(ltf, LoadLine );
end;
CloseFile(ltf );
end;
************************************
Unicodeテキストファイルはテキストファイルと同じ関数では読めないのでしょうか。
Delphi XE5
Windows 8.1
次のような記事が参考になりませんか ?
[この掲示板の過去ログを TextFile Readln で検索した結果]
https://www.google.co.jp/search?q=TextFile+Readln&ie=Shift_JIS&oe=Shift_JIS&hl=ja&btnG=%83T%83C%83g%93%E0+%8C%9F%8D%F5&sitesearch=hpcgi1.nifty.com%2FMADIA%2FDelphiBBS%2Fwwwlng.cgi&gws_rd=ssl
[テキストファイルに追記する方法 - 山本隆の開発日誌]
http://www.gesource.jp/weblog/?p=5003
[DelphiのTStreamReaderでテキストファイルを一行ずつ読み込む | 山本隆の開発日誌]
http://www.gesource.jp/weblog/?p=5125
[Delphi 2009 以降とファイル処理]
http://ht-deko.com/tech015.html
[TEncodingとテキストの入出力 - Delphi 2009 特集]
http://www.watercolor-city.net/ct_delphi/delphi_tiburon/doc_unicode/tencoding_textio.htm
[How to read Unicode text files - delphiDabbler.com]
http://delphidabbler.com/tips/168
[883] [10_TFileStream, TextFile ( Readln ) を使用する方法]
の Button3Click のコード
http://mrxray.on.coocan.jp/Delphi/plSamples/883_CodePageTextFile.htm#10
[この掲示板の過去ログを TextFile Readln で検索した結果]
URL はコピーしてください.
[883] [10_TFileStream, TextFile ( Readln ) を使用する方法]
の Button3Click のコード
スミマセン.末尾に空白が入っていました.
http://mrxray.on.coocan.jp/Delphi/plSamples/883_CodePageTextFile.htm#10
>テキストファイルでは問題ないのですが
>Unicodeテキストファイルを
「Unicodeテキストファイル」だってテキストファイルです.
この場合は,コードページが「Unicode」のテキストファイルということになります.
「コードページ」の意味はネットで調べてください.
XE2 以降なら AssignFile() に CodePage パラメータが増えていますので
それを使ってみてはいかがでしょう?
http://docwiki.embarcadero.com/Libraries/ja/System.AssignFile
>XE2 以降なら AssignFile() に CodePage パラメータが増えていますので
>それを使ってみてはいかがでしょう?
失礼しました.Delphi XE5 でしたね.
当サイトの Readln のコードでは文字化けします.
サンプル Delphi XE2 以降用の参考コードを追加しておきました.
> サンプル Delphi XE2 以降用の参考コードを追加しておきました.
相変わらず仕事が早いですね (^^;A
ツイート | ![]() |