Informix-4gl Pętla IF, argumenty programu ARG i wyjście z programu EXIT

Podczas pisania programu czasami zachodzi potrzeba podania parametru podczas jego wywołania. W przedstawionym poniżej przykładzie wykorzystamy funkcję warunkową IF do sprawdzenia czy parametr został podany, oraz czy jest on tylko jeden – przy wykorzystaniu NUM_ARGS. Poniżej znajduje się kompletny program napisany w Informix-4gl oraz wyjaśnienia:

main

define
x_parametr char(1)

if NUM_ARGS()<>1 then
display "BŁĄD: Program oczekiwał jednego parametru"
exit program -1
end if

let x_parametr = ARG_VAL(1)

display "Podany parametr to: ", x_parametr

end main

Wpierw otwieramy ciało naszego programu poprzez słówko main, następnie definiujemy zmienne wykorzystywane w programie poprzez define. Nasza zmienna będzie nazywała się x_parametr i będzie typu CHAR o długości 1 znaku.

Za pomocą funkcji IF oraz NUM_ARGS()<>1 sprawdzamy, czy został podany dokładnie jeden parametr. Jeżeli nie, wyświetlamy komunikat “BŁĄD: Program oczekiwał jednego parametru” za pomocą komendy display i kończymy program: exit program -1.

Jeżeli program nie zakończył się na tym etapie, oznacza to że został podany dokładnie jeden parametr. Zatem możemy przypisać go do zmiennej x_parametr za pomocą słówka let, a następnie wyświetlić i zamknąć ciało programu: end main.

Definiując zmienną x_parametr określiliśmy jej typ jako char(1). Co zatem stanie się w przypadku gdy jako parametr podamy dłuższy ciąg znaków, np: abcdef? Czy program zakończy się błędem?

Program nie zakończy się błędem i wykona się poprawnie. Z podanego ciągu znaku zostanie przypisana tylko pierwsza litera do zmiennej i tak nasza zmienna x_parametr przyjmie wartość: a