私が使用するファイルに何かを書くために、例えばこのコード:
procedure MyProc (... );
const
BufSize = 65535;
var
FileSrc, FileDst: TFileStream;
StreamRead: Cardinal;
InBuf, OutBuf: Array [0..bufsize] of byte;
begin
.....
FileSrc := TFileStream.Create (uFileSrc, fmOpenRead Or fmShareDenyWrite);
try
FileDst := TFileStream.Create (uFileTmp, fmCreate);
try
StreamRead := 0;
while ((iCounter < iFileSize) or (StreamRead = Cardinal(BufSize)))
begin
StreamRead := FileSrc.Read (InBuf, BufSize);
Inc (iCounter, StreamRead);
end;
finally
FileDst.Free;
end;
finally
FileSrc.Free;
end;
end;
また、I / Oファイルの場合、バイトの配列を使用するので、すべて問題ありませんが、文字列を使用する場合、たとえば次のように宣言します。
InBuf, OutBuf: string // in delphi xe2 = unicode string
その後、動作しません。そのファイルは何も書かないという意味で。私はその理由を理解しました、または単にそれを理解したと思います。問題は、文字列に静的構造ではなくメモリへのポインタだけが含まれている理由だと思います。正しい?この場合、それを解決するためのいくつかの解決策がありますか?ある意味で、ベクトルではなく文字列を使用してファイルを書き込むことができるようにするために何かを行うことは可能ですか?または、必要に応じてベクトルを使用する必要がありますか?可能であれば、私はできますか?どうもありがとう。