0 BEGIN PGM 90351_it MM 1 ;Programma NC per estrarre il nome del file 2 ;dal percorso completo. A tale scopo viene 3 ;dapprima copiato il file di testo in un 4 ;programma NC. In questo programma, al parametro 5 ;stringa QS1 č assegnato il percorso del file. 6 ;Da questa stringa il programma separa il nome del 7 ;file. La stringa dopo la parte fissa viene quindi 8 ;eliminata. Questa scritta viene ripetuta fino a 9 ;quando non si trova pių alcun carattere "\". In 10 ;seguito il controllo numerico elimina anche 11 ;l'estensione del file ".h", lasciando cosė 12 ;invariato soltanto il nome del file. 13 ;Il controllo numerico lo trasferisce quindi in QS1 14 ;del programma originale. 15 ;A fine programma il controllo numerico cancella anche 16 ;il file di testo "FILE.a" e il programma NC "FILE.H". 17 ; 18 ;Copia del file di testo in un programma NC 19 FUNCTION FILECOPY "FILE.a" TO "FILE.H" 20 ; 21 ;Selezione del nome del file dal percorso 22 ;Carattere da cercare QS2 = "\" 23 ; 24 ;Chiamata del programma "FILE.H" per leggere la 25 ;stringa QS1 con il percorso in esso salvato 26 CALL PGM FILE.H 27 ; 28 LBL 1 ;Inizio loop 29 ; 30 ;Ricerca di "\" nella stringa QS1 Q50 = INSTR( SRC_QS1 SEA_QS2 BEG0 ) 31 ;Il risultato in Q50 č la posizione in cui č stato 32 ;trovato il carattere "\" 33 ; 34 ;Incremento di 1 del risultato di Q50 Q52 = Q50 + 1 35 ; 36 ;Lettura della lunghezza totale della stringa salvata 37 ;in Q53 Q53 = STRLEN( SRC_QS1 ) 38 ; 39 ;Lunghezza totale stringa -1 Q55 = Q53 - 1 40 ;Se il comando INSTR non trova il carattere "\", 41 ;restituisce la lunghezza della stringa, a iniziare 42 ;dalla posizione 1. Se il carattere "\" non č pių 43 ;presente in QS1, il controllo numerico salta alla 44 ;LBL "END" 45 FN 9: IF +Q50 EQU +Q53 GOTO LBL "END" 46 ; 47 ;Lunghezza stringa - Tutti i caratteri fino a "\" Q54 = Q53 - Q52 QS1 = SUBSTR( SRC_QS1 BEGQ52 LENQ54 ) 48 ; 49 ;Salto a LBL 1 50 FN 9: IF +0 EQU +0 GOTO LBL 1 51 ; 52 ;Eliminazione dell'estensione del file 53 ;Nome del file estratto con estensione 54 LBL "END" 55 ; 56 ;Eliminazione dell'estensione del file, ad es. .H 57 ;Q56 = lunghezza totale stringa 58 ;(Nome file + Estensione) -2 Q56 = Q53 - 2 59 ;Lettura del nome del file QS1 = SUBSTR( SRC_QS1 BEG0 LENQ56 ) 60 ; 61 ;Cancellazione di file ausiliari 62 FUNCTION FILEDELETE "FILE.a" 63 FUNCTION FILEDELETE "FILE.h" 64 ; 65 ;Fine programma, il nome del file viene trasferito in 66 ;QS1 nel programma chiamante 67 END PGM 90351_it MM