とりあえず、これが一番参考になりそう。
ホストデータを無変換で取り込んで、text(csv)に変換するツールを緊急作成中。
http://www.threeweb.ad.jp/~satou/string2.htm
Delphiの場合 ファイルに書き込んだ"ABCあいう" のデータ バイト数 1 2 3 4 5 6 7 8 9 1バイト毎のデータの並び (16進) 41 42 43 82 A0 82 A2 82 A4 文字数 1 2 3 4 5 6 実際の文字 "A" "B" "C" "あ" "い" "う" 確認に使用したコード procedure TForm1.Button1Click(Sender: TObject); var len: Integer; cnt: Integer; ascii: Integer; swork: AnsiString; rwork: AnsiString; msg: AnsiString; F1: TextFile; Ch: Char; begin // AnsiStringのイメージをそのままファイルに書き込む swork := 'ABCあいう'; msg := '元の文字列=' + swork + #13#10; len := Length( swork ); for cnt := 1 to len do begin // 1バイト取り出して、文字コードに変換する ascii := Ord( swork[cnt] ); // 文字コードを16進数の文字列に変換する msg := msg + IntToHex( ascii, 2) + ','; end; msg := msg + #13#10; // 書き込み AssignFile( F1, 'STRINGCHECK1.TXT' ); Rewrite( F1 ); Write( F1, swork ); CloseFile( F1 ); // 読み込み AssignFile( F1, 'STRINGCHECK1.TXT' ); Reset( F1 ); while not Eof( F1 ) do // ファイルの終端までループ begin Read( F1, Ch ); rwork := rwork + Ch; end; msg := msg + '読み込んだ文字列=' + rwork + #13#10; Reset( F1 ); while not Eof( F1 ) do // ファイルの終端までループ begin Read( F1, Ch ); msg := msg + IntToHex( Ord( Ch ), 2) + ','; end; CloseFile( F1 ); ShowMessage( msg ); end;
※コメント投稿者のブログIDはブログ作成者のみに通知されます