Страница 3 из 4
Re: Путь к файлу и параметрам.[Pascal]
Добавлено: 13 фев 2008, 15:30
Stream
В файле написано 32.59.1.0-32.59.1.127 тока не имею представления чем это вам поможет т.к даже просто скопировать содержимое из файла в файл не получается.
Re: Путь к файлу и параметрам.[Pascal]
Добавлено: 13 фев 2008, 16:28
somewhere
В том, что код верен - у меня сомнений не возникает. Наверное единственное что могу посоветовать - прописать "жесткие" пути к файлам ввода и вывода. Вполне может быть косяк с текущей директорией.
Например: fin: "C:\input.txt", fout: "C:\otvet.txt"
Re: Путь к файлу и параметрам.[Pascal]
Добавлено: 13 фев 2008, 18:59
Stream
У меня первая версия проги так и работает через жесткие пути однако хотел её функциональнее сделать но видимо не дано =(
Re: Путь к файлу и параметрам.[Pascal]
Добавлено: 14 фев 2008, 15:31
Игорь Акопян
думаю имелось ввиду в параметрах передать полный путь.
Содержимое могло помочь тем, что если ты через строку собирался копировать бинарный файл, то получится полная лажа.
Re: Путь к файлу и параметрам.[Pascal]
Добавлено: 14 фев 2008, 15:35
Игорь Акопян
и вапче, никто не отменял BlockRead/BlockWrite
Re: Путь к файлу и параметрам.[Pascal]
Добавлено: 14 фев 2008, 15:59
Stream
Игорь Акопян писал(а):и вапче, никто не отменял BlockRead/BlockWrite
Никто не отменял а кто-то незнал если можно по подробнее.
Re: Путь к файлу и параметрам.[Pascal]
Добавлено: 15 фев 2008, 02:13
Serge_Bliznykov
но никто не отменял и хелп!!
рассказываю - в IDE Pascal пишем BlockRead (можно и BlockWrite)
подводим курсор к написанному слову, нажимаем Ctrl-F1 внимательно читаем ;-))
идём в самый низ, там "Sample Code:" - нажимаем на Blockrd.pas и получаем код (скопировано ПОЛНОСТЬЮ из хелпа):
Код: Выделить всё
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.
внимание! Программа копирования файла простейшая - обработки ошибок нет.
Только проблема у Вас не в этом (это решение проблемы, если файл не текстовый).
А Вам нужно в командной строке задавать ПОЛНЫЙ путь к файлу.
Re: Путь к файлу и параметрам.[Pascal]
Добавлено: 15 фев 2008, 05:12
Stream
О спс копирует тока Buf, SizeOf(Buf), NumRead NumWritten вот это что?Просто знать надо а то я понять не могу =(
Re: Путь к файлу и параметрам.[Pascal]
Добавлено: 15 фев 2008, 11:10
Serge_Bliznykov
Stream, не примите мои слова как попытку Вас обидеть, но, честное слово, почитайте книжку(и) по Паскалю! Многие вопросы отпадут

))
и ещё, учитесь читать код - там вся понятно ;-) Тем более, что имена переменных "говорящие".
а теперь по сути вопроса. читаем:
Buf - : array[1..2048] of Char - это массив из 2048 символов.
нужен для работы процедур BlockRead/BlockWrite - туда читаются данные и оттуда они записываются в файл.
SizeOf( перменная) - системная функция, которая возращает размер, занимаемый переменной в памяти (в данном случае, SizeOf(Buf), вернётся число 2048)
NumRead - вспомогательная целочисленная переменная, в которую процедура BlockRead возращает число реально прочитанных байт. Потом мы используем эту переменную, чтобы указать процедуре BlockWrite сколько байт из буфера писать в файл.
NumWritten - вспомогательная целочисленная переменная, в которую процедура BlockWrite возращает число реально записанных байт.
ещё вопросы будут? ;-))
Re: Путь к файлу и параметрам.[Pascal]
Добавлено: 15 фев 2008, 21:37
Medved
Под Debian GNU/Linux и ParamStr работает классно =)