Ответ : 1
Среда : Lazarus, FreePascal
Операционная система : любая
Зависимости : -
Источник : http://freepascal.ru/forum/viewtopic.php?f=5&t=613
Теги : копирование, файлы
* медленный способ
- Код: Выделить всё
- var
 src,dst:file of byte;
 b:byte;
 begin
 AssignFile(src,'srcfile'); // источник
 AssignFile(dst,'dstfile'); // приемник
 reset(src);
 rewrite(dst);
 while not(eof(src)) do
 begin
 read(src,b);
 write(dst,b);
 end;
 CloseFile(src);
 CloseFile(dst);
 end;
Это самый медленный способ. Копировать надо не по-байтно, а использовать буфер, можно даже сначала весь файл в память считать, а потом записать.
Ответ : 2
Среда : Lazarus, FreePascal
Операционная система : любая
Зависимости : -
Источник : http://freepascal.ru/forum/viewtopic.php?f=5&t=613
Теги : копирование, файлы
- Код: Выделить всё
- var Source, Dest: TStream;
 begin
 Source:=TFileStream.Create...
 Dest:=TFileStream.Create...
 Dest.CopyFrom(Source, Source.Size);
 ...
 end;
 // если маленький файл:
 var F: TMemoryStream;
 begin
 F:=TMemoryStream.Create;
 F.LoadFromFile(SourceFileName);
 F.SaveToFile(DestFileName);
 end;



