Путь к файлу и параметрам.[Pascal]

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Путь к файлу и параметрам.[Pascal]

Re: Путь к файлу и параметрам.[Pascal]

Medved » 15 фев 2008, 21:48

Цитата: (Stream)
"Можете мне просто написать код чтобы по указанию пути к файлу внутренности скопировались в другой файл мне другого и не надо. =)"


var
fin,fout:text;
data:string;
param1,param2:integer; { Кстати, зачем? 0_o }
c:integer;
begin
Assign(fin,ParamStr(1));
Reset(fin);
Assign(fout,'otvet.txt');
Rewrite(fout);
WHILE NOT EOF(FIN) DO BEGIN {eof([filename]) <=> End Of File (конец файла) filename}
readln(fin,data);
writeln(fout,data);
END;
Close(fin);
Close(fout);
end.

Re: Путь к файлу и параметрам.[Pascal]

Medved » 15 фев 2008, 21:37

Под Debian GNU/Linux и ParamStr работает классно =)

Re: Путь к файлу и параметрам.[Pascal]

Serge_Bliznykov » 15 фев 2008, 11:10

Stream, не примите мои слова как попытку Вас обидеть, но, честное слово, почитайте книжку(и) по Паскалю! Многие вопросы отпадут ;) ))
и ещё, учитесь читать код - там вся понятно ;-) Тем более, что имена переменных "говорящие".

а теперь по сути вопроса. читаем:
Buf - : array[1..2048] of Char - это массив из 2048 символов.
нужен для работы процедур BlockRead/BlockWrite - туда читаются данные и оттуда они записываются в файл.
SizeOf( перменная) - системная функция, которая возращает размер, занимаемый переменной в памяти (в данном случае, SizeOf(Buf), вернётся число 2048)
NumRead - вспомогательная целочисленная переменная, в которую процедура BlockRead возращает число реально прочитанных байт. Потом мы используем эту переменную, чтобы указать процедуре BlockWrite сколько байт из буфера писать в файл.
NumWritten - вспомогательная целочисленная переменная, в которую процедура BlockWrite возращает число реально записанных байт.

ещё вопросы будут? ;-))

Re: Путь к файлу и параметрам.[Pascal]

Stream » 15 фев 2008, 05:12

О спс копирует тока Buf, SizeOf(Buf), NumRead NumWritten вот это что?Просто знать надо а то я понять не могу =(

Re: Путь к файлу и параметрам.[Pascal]

Serge_Bliznykov » 15 фев 2008, 02:13

но никто не отменял и хелп!!
рассказываю - в 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]

Stream » 14 фев 2008, 15:59

Игорь Акопян писал(а):и вапче, никто не отменял BlockRead/BlockWrite
Никто не отменял а кто-то незнал если можно по подробнее.

Re: Путь к файлу и параметрам.[Pascal]

Игорь Акопян » 14 фев 2008, 15:35

и вапче, никто не отменял BlockRead/BlockWrite

Re: Путь к файлу и параметрам.[Pascal]

Игорь Акопян » 14 фев 2008, 15:31

думаю имелось ввиду в параметрах передать полный путь.
Содержимое могло помочь тем, что если ты через строку собирался копировать бинарный файл, то получится полная лажа.

Re: Путь к файлу и параметрам.[Pascal]

Stream » 13 фев 2008, 18:59

У меня первая версия проги так и работает через жесткие пути однако хотел её функциональнее сделать но видимо не дано =(

Re: Путь к файлу и параметрам.[Pascal]

somewhere » 13 фев 2008, 16:28

В том, что код верен - у меня сомнений не возникает. Наверное единственное что могу посоветовать - прописать "жесткие" пути к файлам ввода и вывода. Вполне может быть косяк с текущей директорией.
Например: fin: "C:\input.txt", fout: "C:\otvet.txt"

Вернуться к началу