LINUX.ORG.RU

[Pascal] Как нормально реализовать аргументы в паскале?

 


0

1

Приходится потихоньку изучать паскаль. Недавно начал осваивать аргументы для программ. Нагуглил, нашел что-то по функциям paramcount и paramstr. Но как я не бьюсь не могу организовать аргументы. case видимо такое нечто как '--help': не понимает, ему цифры подавай. Это значит программе, надо цифрами аргументы давать?
Подскажите, как прикрутить к ней аргументы, вроде "--help", "-h" и подобных

★★★★
Ответ на: комментарий от nexfwall

>Тоесть, паскаль - не торт? Пора значит его закапывать.

А зачем вы его откопали?

А тут получается, что нормально организовать аргументы нельзя..


Можно, но через if-ы или костыль с ord и преобразованием.

AlexCones ★★★
()
Ответ на: комментарий от AlexCones

А зачем вы его откопали?

Информатика в Колледже заставила его откопать. Думал нормальный язык, а оказывается

Можно, но через if-ы или костыль с ord и преобразованием.

Вот это вот и плохо

nexfwall ★★★★
() автор топика
Ответ на: комментарий от nexfwall

Да, можно еще вот так изголяться:

Command := ParamStr(1);
C := Command[2];
Case C Of
 'w': (* Это '-w' *)
 'h': (* Это '-h' *)
 '-' : (* Здесь делаем еще одно такое же вложение для --help --write. *)

AlexCones ★★★
()
Ответ на: комментарий от AlexCones

Все равно, вот как я сделал:

for	num := 1 to paramcount
		do	begin
			  if	(paramstr(num)='--help') or (paramstr(num)='-h')
			  then	begin
				  {help(); не реализовано еще}
				  halt(0);
				end;
			  if	(paramstr(num)='--calc-count') or (paramstr(num)='-c')
			  then	begin
				  mode:=1;
				  N:=paramstr(num+1);
				  continue
				end;
			  if	(paramstr(num)='--calc-num') or (paramstr(num)='-n')
			  then	begin
				  mode:=2;
				  N:=paramstr(num+1);
				  continue
				end;
			end;
Мне кажется что все правильно. Но компилятор арет:
calc_fibonacci.pas(73,10) Error: Incompatible types: got "ShortString" expected "SmallInt"
calc_fibonacci.pas(79,10) Error: Incompatible types: got "ShortString" expected "SmallInt"
Ну да, N имеет тип integer, так что плохая это была идея. Буду лучше откапывать перл или питон

nexfwall ★★★★
() автор топика
Ответ на: комментарий от nexfwall

Ну, как-то так. Тока сперва я бы проверил тип.

И, да,

uses sysutils;

Axel
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.