UTF-8 テキスト ファイルをバイト単位で読み取り、ファイル内の各バイトの ASCII 値表現を取得したいと考えています。これはできますか?もしそうなら、最良の方法は何ですか?
私の目標は、見つけた2バイトの組み合わせを1バイトに置き換えることです(これらは私が準備した設定条件です)
たとえば、197 の後に 158 (10 進表現) が続く場合は、1 バイトの 17 に置き換えます。
標準の Delphi IO 操作を使用したくない
AssignFile
ReSet
ReWrite(OutFile);
ReadLn
WriteLn
CloseFile
より良い方法はありますか?TStream
(Reader & Writer)を使用してこれを行うことはできますか?
これが私が使用しているテストの例です。列 84 で始まる文字 (350) (2 バイト) があることは知っています。16 進エディタで表示すると、文字は 197 + 158 で構成されているため、デルファイ コードを使用して 198 を見つけようとしていますが、それを見つけるために
FS1:= TFileStream.Create(ParamStr1, fmOpenRead);
try
FS1.Seek(0, soBeginning);
FS1.Position:= FS1.Position + 84;
FS1.Read(B, SizeOf(B));
if ord(B) = 197 then showMessage('True') else ShowMessage('False');
finally
FS1.Free;
end;