:o Граждане паскальщики, откликнитесь! Помогите решить детскую задачку по файлам, плизз, а то - мне писец... Я, как говорится, не волшебник, а только учусь, так что, если поможете, буду очень благодарен.
Итак:
__________________________________________________________________
Скопировать содержимое одного файла к другому, при условии, что файл не типизированный.
__________________________________________________________________
trminator
29.05.2004 19:58
Посмотри в справке по Паскалю слово BlockRead, там есть пример копирования файла.
Werwolf86
29.05.2004 19:59
:D там ведь элементарно....
trminator
29.05.2004 20:06
Так вроде и тут не просят чудес творить...
Haba, ты бы название темы изменил, что ли...
Это где это ваши справки?
trminator
29.05.2004 20:30
Пишешь BlockRead и жмешь Ctrl-F1.
Код
{Blockrd.PAS}
{Sample code for the BlockRead and BlockWrite procedures.}
uses WinCrt; // вот это в принципе-то не нужно
program CopyFile;
{ Simple, fast file copy program with NO error-checking }
var
FromF, ToF: file;
NumRead, NumWritten: Word;
Buf: array[1..2048] of Char;
begin
Assign(FromF, ParamStr(1)); { Open input file }
Reset(FromF, 1); { Record size = 1 }
Assign(ToF, ParamStr(2)); { Open output file }
Rewrite(ToF, 1); { Record size = 1 }
Writeln('Copying ', FileSize(FromF), ' bytes...');
repeat
BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
BlockWrite(ToF, Buf, NumRead, NumWritten);
until (NumRead = 0) or (NumWritten <> NumRead);
Close(FromF);
Close(ToF);
end.
[s]
HelpAusHeaven
29.05.2004 22:39
Кстати, читать выгоднее блоками по 512 байт, а не по 2048, т.к. файлы хранятся на винте блоками именно по 512.....
HelpAusHeaven
29.05.2004 22:43
Цитата(Werwolf86 @ 29.05.04 15:59)
:D там ведь элементарно....
Через функцию copy, да? :D
HelpAusHeaven
29.05.2004 22:44
Кстати, тема этого треда не удволетворяет правилам форума, помимо ещё носит в себе и ругательный характер.... где админы "ходют")))))))))))
Цитата(HelpAusHeaven @ 29.05.04 19:39)
Кстати, читать выгоднее блоками по 512 байт, а не по 2048, т.к. файлы хранятся на винте блоками именно по 512.....
Насколько я знаю размер кластера зависит от размера диска!
И ещё: а как данные, содержащиеся в файле, перекопировать в массив?
Маленькое уточнение: "...в одномерный массив."
считываешь по одной компоненте из файла и передаешь в масив
Файлы - ВКУСНЯТИНА!!!!
ТЕМА ПЕРЕИМЕНОВАННА :P :D
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.