home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magazyn Amiga Shareware Floppies
/
ma91.dms
/
ma91.adf
/
Choice
/
Choice.e
< prev
next >
Wrap
Text File
|
1997-07-16
|
2KB
|
61 lines
OPT OSVERSION=37
OPT REG=5
MODULE 'dos/var'
ENUM BAD_ARG=1, MANY_CHAR, MANY_INPUT, ERR_VAR
PROC main() HANDLE
DEF myargs:PTR TO LONG, rdargs=0, znaki[10]:STRING, input[10]:STRING,
loop, pozycja=-1, var[2]:STRING
VOID '$VER: Choice 2.0 (1997.07.15)'
myargs := [0,0] ->lista argumentów
IF (rdargs:=ReadArgs('KEY/A,COM/S', myargs, NIL) ) <> NIL
->czy znaków do rozpoznawania nie za duûo
IF StrLen(myargs[0]) > 10 THEN Raise (MANY_CHAR)
StrCopy(znaki, myargs[0])
IF myargs[1] THEN WriteF('\t\e[33m\e[1mWybierz klawisz - \s\e[0m\n', znaki)
->
->wprowadzenie z klawiatury znaków rozpoznawanych przez komende
WriteF('\t\e[34m')
ReadStr(stdin, input)
WriteF('\e[0m')
->sprawdzenie czy urzytkownik nie wprowadziî wiecej niû jeden znak
IF EstrLen(input) > 1 THEN Raise (MANY_INPUT)
FOR loop := 0 TO EstrLen(znaki) - 1
->
IF (pozycja := InStr(znaki, input) ) <> -1
->WriteF('Pozycja = \d\n', pozycja + 1)
ENDIF
EXIT (pozycja <> -1) ->dalej nie szukaê gdy znak zostal znaleziony
ENDFOR
INC pozycja
StringF(var, '\d', pozycja)
IF ( SetVar ('num', var, 1, GVF_LOCAL_ONLY) ) = NIL THEN Raise(ERR_VAR)
ELSE
Raise (BAD_ARG)
ENDIF
->
EXCEPT DO
IF rdargs THEN FreeArgs(rdargs)
IF exception
SELECT exception
CASE MANY_CHAR
WriteF('Pierwszy argument zawiera za duûo liter\n')
CASE MANY_INPUT
WriteF('Z klawiatury moûesz wprowadziê tylko jeden znak !!!\n')
CASE BAD_ARG
WriteF('Zîe argumenty\n')
CASE ERR_VAR
WriteF('Bîâd funkcji SetVar()\n')
ENDSELECT
ENDIF
ENDPROC