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

Модераторы: Duncon, Naeel Maqsudov, Хыиуду, Игорь Акопян

Stream
Сообщения: 26
Зарегистрирован: 05 фев 2008, 13:09

05 фев 2008, 13:19

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

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

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.
Но тока во второй текстовик мне записывает не то что в файле а путь к файлу который я ввёл.
В чём может быть проблема?
Аватара пользователя
Игорь Акопян
Сообщения: 1419
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

05 фев 2008, 15:23

в приведённом примере открывается на чтение файл, указанный параметром командной строки при запуске программы, и на запись файл в текущем каталоге. Потом из первого читается строка, даже не до конца, а так - в текущий размер переменной и записывается во второй.
Вопрос что же нужно вам?

Если ваша программа принимает из командной строки ряд параметров - то доступ к ним через функцию ParamStr(номер_параметра), причём ParamStr(0) - имя запустившей проги. Их количество - ParamCount.
Изображение
Stream
Сообщения: 26
Зарегистрирован: 05 фев 2008, 13:09

05 фев 2008, 15:27

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

всё что я буду вводить это к примеру
с:\1.txt 555 777
тоесть paramstr(2) = 555
paramstr(3) = 777
Но паскаль не хочет это принимать
напишите хотяб код чтобы вводиш путь к текстовику а потом тебе создаёт другой тектовик с тем же что в первом это я хотел показать в данном коде который был написан в первом посте.
MOTOCoder
Сообщения: 542
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

05 фев 2008, 15:51

Вот так у меня сработало:
[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]
Ни что так не ограничивает фантазию программиста, как компилятор...
Stream
Сообщения: 26
Зарегистрирован: 05 фев 2008, 13:09

05 фев 2008, 15:54

Не катит компилил на FreePascale 2.0.4
MOTOCoder
Сообщения: 542
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

05 фев 2008, 15:56

Ну за FPC не ручаюсь, возможно в нем что-то подругому.
А какую ошибку выводит?
Ни что так не ограничивает фантазию программиста, как компилятор...
Stream
Сообщения: 26
Зарегистрирован: 05 фев 2008, 13:09

05 фев 2008, 16:18

ошибок не выдаёт просто сую всё как надо а в итоге не делает и пишет надпись err то биш ошибка не смог он записать.А вы на каком делали?
MOTOCoder
Сообщения: 542
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

05 фев 2008, 16:23

Если пишет "err", значит количество параметров равно 0(это прописано в коде программы).
Компилил я компилятором от TurboPascal 7.0, но запускал его из своей оболочки под windows. Советую скомпилить екзешник и запустить его из коммандной строки с параметрами.
Ни что так не ограничивает фантазию программиста, как компилятор...
Stream
Сообщения: 26
Зарегистрирован: 05 фев 2008, 13:09

05 фев 2008, 17:53

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

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.

но всё равно в другой файл он копирует путь к файлу а не то что в файле.
MOTOCoder
Сообщения: 542
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

05 фев 2008, 19:00

У меня этот код переписывает то что в файле.
Похоже, глюк FP.
Ни что так не ограничивает фантазию программиста, как компилятор...
Ответить