0 BEGIN PGM 90401_NL MM 1 ;NC-programma om de bestandsnaam uit het 2 ;volledige pad te extraheren. 3 ;De besturing slaat het pad op in het 4 ;oproepende programma in QS1 en verzendt 5 ;het aan dit programma. 6 ;Uit deze string neemt het programma de 7 ;bestandsnaam. Daarvoor wordt de string 8 ;op "\" doorzocht en het daarvoor staande 9 ;deel in de string wordt verwijderd. Deze 10 ;stap wordt herhaald totdat er geen "\" meer 11 ;wordt gevonden. Aansluitend verwijdert de 12 ;besturing nog de bestandsextensie ".h”, 13 ;zodat alleen de bestandsnaam resteert. 14 ;Deze geeft de besturing dan terug in QS1 aan 15 ;het oproepende programma. 16 ; 17 ;Bestandsnaam uit pad selecteren 18 ;Te zoeken teken QS2 = "\" 19 ; 20 LBL 1 ;Begin lus 21 ; 22 ;String QS1 doorzoeken op teken "\" Q50 = INSTR( SRC_QS1 SEA_QS2 BEG0 ) 23 ;Resultaat in Q50 is de plaats op het teken "\" 24 ;dat als eerste gevonden is 25 ; 26 ;Resultaat van de Q50 met 1 verhogen Q52 = Q50 + 1 27 ; 28 ;Uitlezen totale lengte string, opslaan in Q53 Q53 = STRLEN( SRC_QS1 ) 29 ; 30 ;Totale lengte string -1 Q55 = Q53 - 1 31 ;Als het commando INSTR het teken "\" niet kan 32 ;vinden, wordt de lengte van de string 33 ;geretourneerd, beginnend bij plaats 1. 34 ;Indien het teken "\" niet meer in QS1 aanwezig 35 ;is, springt de besturing naar de LBL "END". 36 FN 9: IF +Q50 EQU +Q53 GOTO LBL "END" 37 ; 38 ;Lengte string - alle tekens tot "\" Q54 = Q53 - Q52 QS1 = SUBSTR( SRC_QS1 BEGQ52 LENQ54 ) 39 ; 40 ;Sprong naar LBL 1 41 FN 9: IF +0 EQU +0 GOTO LBL 1 42 ; 43 ;Bestandsextensie verwijderen 44 ;Bestandsnaam met extensie geëxtraheerd 45 LBL "END" 46 ; 47 ;Bestandsextensie, bijv. .H verwijderen 48 ;Q56 = totale lengte string 49 ;(Bestandsnaam+extensie)-2 Q56 = Q53 - 2 50 ;Bestandsnaam uitlezen QS1 = SUBSTR( SRC_QS1 BEG0 LENQ56 ) 51 ; 52 ;Bestandsnaam wordt in QS1 naar het oproepende 53 ;programma verzonden. 54 END PGM 90401_NL MM