Помощь - Поиск - Пользователи - Календарь
Полная версия: любимые задачи на файлы.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Haba
:o Граждане паскальщики, откликнитесь! Помогите решить детскую задачку по файлам, плизз, а то - мне писец... Я, как говорится, не волшебник, а только учусь, так что, если поможете, буду очень благодарен.

Итак:
__________________________________________________________________
Скопировать содержимое одного файла к другому, при условии, что файл не типизированный.
__________________________________________________________________
trminator
Посмотри в справке по Паскалю слово BlockRead, там есть пример копирования файла.
Werwolf86
:D там ведь элементарно....
trminator
Так вроде и тут не просят чудес творить...

Haba, ты бы название темы изменил, что ли...
Haba
Это где это ваши справки?
trminator
Пишешь 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
Кстати, читать выгоднее блоками по 512 байт, а не по 2048, т.к. файлы хранятся на винте блоками именно по 512.....
HelpAusHeaven
Цитата(Werwolf86 @ 29.05.04 15:59)
:D там ведь элементарно....

Через функцию copy, да? :D
HelpAusHeaven
Кстати, тема этого треда не удволетворяет правилам форума, помимо ещё носит в себе и ругательный характер.... где админы "ходют")))))))))))
APAL
Цитата(HelpAusHeaven @ 29.05.04 19:39)
Кстати, читать выгоднее блоками по 512 байт, а не по 2048, т.к. файлы хранятся на винте блоками именно по 512.....

Насколько я знаю размер кластера зависит от размера диска!
Haba
И ещё: а как данные, содержащиеся в файле, перекопировать в массив?
Haba
Маленькое уточнение: "...в одномерный массив."
Catty
считываешь по одной компоненте из файла и передаешь в масив
Altair
Файлы - ВКУСНЯТИНА!!!!
ТЕМА ПЕРЕИМЕНОВАННА :P :D
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.