0 BEGIN PGM 90401_FR MM 1 ;Programme CN permettant d'extraire le 2 ;nom du fichier du chemin complet. 3 ;La CN mémorise le chemin dans le programme 4 ;appelant, dans QS1, et le transmet au 5 ;programme. 6 ;A partir de ce string, le programme isole 7 ;le nom du fichier. Pour cela, la partie 8 ;précédant la barre oblique inversée "\" 9 ;du string est supprimée. Cette étape se 10 ;répète jusqu'à ce qu'il n'y ait plus de 11 ;barre oblique inversée "\". La CN ôte 12 ;ensuite la terminaison du fichier ".h" pour 13 ;que seul le nom du fichier subsiste. La CN 14 ;transmet alors le nom du fichier au programme 15 ;appelant, de nouveau via le paramètre QS1. 16 ; 17 ;Sélection du nom du fichier dans le chemin 18 ;Caractère à rechercher QS2 = "\" 19 ; 20 LBL 1 ;Début de la boucle 21 ; 22 ;Recherche de la barre oblique inversée "\" dans le string QS1 Q50 = INSTR( SRC_QS1 SEA_QS2 BEG0 ) 23 ;Le résultat de Q50 correspond à la première barre oblique 24 ;inversée "\" trouvée 25 ; 26 ;Incrémentation de 1 du résultat de Q50 Q52 = Q50 + 1 27 ; 28 ;Lecture de la longueur totale du string, sauvegarde dans Q53 Q53 = STRLEN( SRC_QS1 ) 29 ; 30 ;Longueur totale du string -1 Q55 = Q53 - 1 31 ;Si l'instruction INSTR ne trouve pas le caractère "\", elle 32 ;retourne la longueur à partir de la position 1. 33 ;Si le caractère "\" ne figure plus au paramètre QS1, la CN 34 ;saute au LBL "END". 35 FN 9: IF +Q50 EQU +Q53 GOTO LBL "END" 36 ; 37 ;Longueur de string - tous les caractères jusqu'à "\" Q54 = Q53 - Q52 QS1 = SUBSTR( SRC_QS1 BEGQ52 LENQ54 ) 38 ; 39 ;Saut à LBL 1 40 FN 9: IF +0 EQU +0 GOTO LBL 1 41 ; 42 ;Suppression de la terminaison du fichier 43 ;Le nom du fichier est extrait, avec sa terminaison 44 LBL "END" 45 ; 46 ;Suppression de la terminaison du fichier, par ex. .H 47 ;Q56 = Longueur globale du string 48 ;(nom du fichier + terminaison) -2 Q56 = Q53 - 2 49 ;Lecture du nom du fichier QS1 = SUBSTR( SRC_QS1 BEG0 LENQ56 ) 50 ; 51 ;Le nom du fichier est transmis au programme appelant via 52 ;QS1. 53 END PGM 90401_FR MM