SUBROUTINE/DATUMOVKA_LOADER, PARTNAME = : JMÉNO PROGRAMU, PRODDATE = : DATUMOVKA DÍLU, COILBATCH = : ŠARŽE COILU, COILNO = : ČÍSLO COILU, MSG = 0 : VÝSTUPNÍ ZPRÁVA V PŘÍPADĚ NENALEZENÍ SOUBORU S DATUMOVKOU, = ASSIGN/DATUMOVKA_FILE="X:\\Datumovky\\"+PARTNAME+".txt" FILEOK =FILE/EXISTS,DATUMOVKA_FILE IF/FILEOK==0 ASSIGN/MSG="File does not exist! " + DATUMOVKA_FILE GOTO/HANDLER_DATUMOVKA_LOADER END_IF/ FPTR =FILE/OPEN,DATUMOVKA_FILE,READ ASSIGN/ENDF=0 ASSIGN/PRODDATE=-1 ASSIGN/COILBATCH=-1 ASSIGN/COILNO=-1 ENDF =FILE/READLINE,FPTR,{PRODDATE}+";"+{COILBATCH}+";"+{COILNO} FILE/CLOSE,FPTR,KEEP ASSIGN/HODNOTY=ARRAY(PRODDATE,COILBATCH,COILNO) ASSIGN/TESTHODNOT=MIN(HODNOTY) IF/TESTHODNOT<0 ASSIGN/MSG="Improper values loaded, check file " + DATUMOVKA_FILE END_IF/ HANDLER_DATUMOVKA_LOADER=LABEL/ ENDSUB/ DATELOAD =GROUP/SHOWALLPARAMS=YES ASSIGN/PD=0 ASSIGN/CB=0 ASSIGN/CN=0 ASSIGN/MG=0 ASSIGN/ADD="atest" CS1 =CALLSUB/DATUMOVKA_LOADER,X:\_CMM_Programy\_Subroutines\subroutines_002.PRG:ADD,PD,CB,CN,MG,, IF/MG<>0 COMMENT/OPER,NO,FULL SCREEN=NO,AUTO-CONTINUE=NO,OVC=NO, MG END_IF/ ELSE/ COMMENT/OPER,NO,FULL SCREEN=NO,AUTO-CONTINUE=NO,OVC=NO, PD CB CN END_ELSE/ ENDGROUP/ID=DATELOAD
The problem is that FILEOK returns "1" even if the file does not exist and than instead of quitting the routine the program tries to read the data from file which lead to error, because the file is not there obviously After hours of trying everything the code started to work after this modification:
FILEOK =FILE/EXISTS,DATUMOVKA_FILE ASSIGN/FILEOK=FILEOK IF/FILEOK==0 . . .
Everything else is exactly the same. You know, I can live with that, even if it does not make sense to me. But does anyone have an idea HOW IS THIS F...ING POSSIBLE?