- Код: Выделить всё
assign(f, '.....');
rewrite(f, 1);
blockwrite(fd, buf^, size);
Но оптимально ли это?
Пишется ли это одним буфером или побайтно?
Модератор: Модераторы
assign(f, '.....');
rewrite(f, 1);
blockwrite(fd, buf^, size);
zub писал(а):Имхо лучше использовать вариант с хэндлами файлов, а не с файловыми переменными.
zub писал(а):Еще лучше наверно потоки.
...
var
fd:file;
...
program Project1;
uses sysutils;
var
fh:THandle;
something:integer;
begin
fh:=FileCreate('test.test');
FileWrite(fh, something, sizeof(something));
FileClose(fh);
end.
Снег Север писал(а):Вообще-то первые два способа доступа к файлу - это, всего лишь, обертки над TFileStream.
function THandleStream.Write(const Buffer; Count: Longint): Longint;
begin
Result:=FileWrite (FHandle,Buffer,Count);
If Result=-1 then Result:=0;
end;
....
constructor TFileStream.Create(const AFileName: string; Mode: Word; Rights: Cardinal);
begin
FFileName:=AFileName;
If (Mode and fmCreate) > 0 then
FHandle:=FileCreate(AFileName,Mode,Rights)
else
FHAndle:=FileOpen(AFileName,Mode);
If (THandle(FHandle)=feInvalidHandle) then
If Mode=fmcreate then
raise EFCreateError.createfmt(SFCreateError,[AFileName])
else
raise EFOpenError.Createfmt(SFOpenError,[AFilename]);
end;
mirk писал(а):Но оптимально ли это?
Пишется ли это одним буфером или побайтно?
var
Stream: TFileStream;
BufStr: TWriteBufStream;
M: array{1..300] of byte;
...
begin
.........
if SaveDialog1.Execute then begin
try
Stream:=TFileStream.Create(SaveDialog1.FileName, fmCreate or fmOpenWrite);
BufStr:=TWriteBufStream.Create(Stream);
BufStr.Write(M, 300);
Result:=false;
finally
BufStr.Free;
Stream.Free;
end;
end;
end;
mirk писал(а):Но оптимально ли это?
zub писал(а):Если выбирать из file и thandle - в последнем набор функций побогаче
zub писал(а):Если выбирать из file и thandle - в последнем емнип набор функций побогаче
mirk писал(а):Пишу в файл довольно просто:
- Код: Выделить всё
assign(f, '.....');
rewrite(f, 1);
blockwrite(fd, buf^, size);
Но оптимально ли это?
Пишется ли это одним буфером или побайтно?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19