Страница 1 из 4

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

Добавлено: 05 фев 2008, 13:19
Stream
Наверное таких тема тут уже куча но в поиске немного пашарившить ничего не нашел.
Мне надо чтобы из окна я мог вводить путь к файлу(тесктовику) и кое какие параметры.
Вот просто обычный код которые из одного текстовика зыписывает это же самое в другой так для примера чтобы было понятно.

Код: Выделить всё

var a,b:text; c,v:integer;   be:string;
begin
assign(a,paramstr(1));
reset(a);
assign(b,'otvet.txt');
rewrite(b);
read(a,be);
write(b,be);
close(a); close(b);
end.
Но тока во второй текстовик мне записывает не то что в файле а путь к файлу который я ввёл.
В чём может быть проблема?

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

Добавлено: 05 фев 2008, 15:23
Игорь Акопян
в приведённом примере открывается на чтение файл, указанный параметром командной строки при запуске программы, и на запись файл в текущем каталоге. Потом из первого читается строка, даже не до конца, а так - в текущий размер переменной и записывается во второй.
Вопрос что же нужно вам?

Если ваша программа принимает из командной строки ряд параметров - то доступ к ним через функцию ParamStr(номер_параметра), причём ParamStr(0) - имя запустившей проги. Их количество - ParamCount.

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

Добавлено: 05 фев 2008, 15:27
Stream
Мне нужно чтобы в проге можно было указать путь к тектовику и параметры (их 2)
по идее должно же быть так.
assign(a,paramstr(1));
тобиш это будет первый параметр и путь к текстовику

всё что я буду вводить это к примеру
с:\1.txt 555 777
тоесть paramstr(2) = 555
paramstr(3) = 777
Но паскаль не хочет это принимать
напишите хотяб код чтобы вводиш путь к текстовику а потом тебе создаёт другой тектовик с тем же что в первом это я хотел показать в данном коде который был написан в первом посте.

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

Добавлено: 05 фев 2008, 15:51
MOTOCoder
Вот так у меня сработало:
[syntax='delphi']
program params;

var
fin,fout:text;
data:string;
param1,param2:integer;
c:integer;

begin
writeln('File: ',paramstr(1));
readln;
if ParamCount>0 then
begin
Assign(fin,ParamStr(1));
Reset(fin);
Assign(fout,'otvet.txt');
Rewrite(fout);
val(ParamStr(2),param1,c);
val(Paramstr(3),param2,c);
readln(fin,data);
writeln(fout,data);
Close(fin);
Close(fout);
writeln('Parameters ',param1,' ',param2);
end
else
writeln('err');
readln;
end.

[/syntax]

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

Добавлено: 05 фев 2008, 15:54
Stream
Не катит компилил на FreePascale 2.0.4

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

Добавлено: 05 фев 2008, 15:56
MOTOCoder
Ну за FPC не ручаюсь, возможно в нем что-то подругому.
А какую ошибку выводит?

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

Добавлено: 05 фев 2008, 16:18
Stream
ошибок не выдаёт просто сую всё как надо а в итоге не делает и пишет надпись err то биш ошибка не смог он записать.А вы на каком делали?

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

Добавлено: 05 фев 2008, 16:23
MOTOCoder
Если пишет "err", значит количество параметров равно 0(это прописано в коде программы).
Компилил я компилятором от TurboPascal 7.0, но запускал его из своей оболочки под windows. Советую скомпилить екзешник и запустить его из коммандной строки с параметрами.

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

Добавлено: 05 фев 2008, 17:53
Stream
Мне просто надо чтобы я сам указал путь к файлу и он увидел файл и записал в другой файл содердимое код должен быть такой

var
fin,fout:text;
data:string;
param1,param2:integer;
c:integer;
begin
Assign(fin,ParamStr(1));
Reset(fin);
Assign(fout,'otvet.txt');
Rewrite(fout);
readln(fin,data);
writeln(fout,data);
Close(fin);
Close(fout);
end.

но всё равно в другой файл он копирует путь к файлу а не то что в файле.

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

Добавлено: 05 фев 2008, 19:00
MOTOCoder
У меня этот код переписывает то что в файле.
Похоже, глюк FP.