Форум «Всё о Паскале» _ Задачи _ как использовать прогу
Автор: blackhard 31.10.2007 3:05
var i,j,k,L:integer; s,t:string; f,g:text; One:boolean; begin if ParamCount<>3 then WriteLn('Use 3 parameters: N infile outfile') else begin Val(ParamStr(1),L,i); Assign(f,ParamStr(2)); Reset(f); Assign(g,ParamStr(3)); ReWrite(g);
может кто обьяснит по поводу этого куска че такое ParamCount,ParamStr(1),ParamStr(2),ParamStr(3) и как их задать
Автор: КМА 31.10.2007 3:19
У меня написано ParamStr (Indx: word):string; функция, которая возвращает параметр командной строки номер Indx или пустую строку, если Indx больше чем ParamCount или равен нулю. А ParamCount возвращает число параметров командной строки.
Автор: volvo 31.10.2007 3:24
Цитата
че такое ParamCount,ParamStr(1),ParamStr(2),ParamStr(3) и как их задать
Это - параметры командной строки... Если запускаешь программу из оболочки Паскаля - то Run -> Parameters, и через пробел перечисляешь те параметры, которые хочешь передать программе (в твоем случае - одно число и 2 имени файлов). После запуска по ParamStr(1) получишь значение первого параметра, по ParamStr(2) - второго и т.д.
Автор: КМА 31.10.2007 3:26
Если не понятно, то это параметры командной строки, чтобы их задать, нужно типа такого:
# name_your_prog.exe param1 param2 param3.
В данном случае у тебя и получается, что первый парамет это param1, второй param2. Чтобы получить, скажем второй, необходимо использовать ParamStr(2), я так полагаю, что второй и третий у тебя есть имена файлов. А первая строчка твоего кода обозначает, что если параметров не 3, тогда неверный ввод.
Автор: blackhard 31.10.2007 4:19
Цитата(КМА @ 31.10.2007 0:26)
Если не понятно, то это параметры командной строки, чтобы их задать, нужно типа такого:
# name_your_prog.exe param1 param2 param3.
В данном случае у тебя и получается, что первый парамет это param1, второй param2. Чтобы получить, скажем второй, необходимо использовать ParamStr(2), я так полагаю, что второй и третий у тебя есть имена файлов. А первая строчка твоего кода обозначает, что если параметров не 3, тогда неверный ввод.
спасибо за подсказку может кто еще подскажет как текст из файла вывести на экран
Автор: Lapp 31.10.2007 6:12
Цитата(blackhard @ 31.10.2007 1:19)
как текст из файла вывести на экран
Например, вот так:
while not EoF(f) do begin while not EoLn(f) do begin Read(f,s); Write(s); end; ReadLn(f); WriteLn end;