для записи чего-либо в файл, который я использую, например, этот код:
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;
А для файла ввода / вывода я использую массив байтов, и так все в порядке, но когда я использую строку, например, объявляя:
InBuf, OutBuf: string // in delphi xe2 = unicode string
тогда не работает. В смысле этот файл не пишите ничего. Я понял почему, или просто думаю, что понял это.
Я думаю, что проблема может быть в том, что строка содержит только указатель на память, а не статическую структуру; правильный?
В этом случае есть какое-то решение для его решения? В смысле, можно ли что-то сделать, потому что я могу написать файл, используя строку, а не вектор? Или мне нужно использовать вектор?
Если возможно, я могу сделать?
Большое спасибо.