listyp
C LISTYP SOURCE CHAT 06/03/16 21:20:37 5336 C--------------------------------------------------------------------- C RECUPERE A PARTIR DE LA TABLE DES OBJETS TOUS LES TYPES C SORTIE: ITOTO= POINTEUR SUR LE SEGMENT DES TYPES POSSIBLES C APPELLE : C APPELE PAR : PILOBJ SAUV C--------------------------------------------------------------------- IMPLICIT INTEGER(I-N) SEGMENT MTY(0) -INC CCNOYAU -INC TMLCHA8 -INC PPARAM -INC CCOPTIO C M=0 SEGINI MLCHA8 C---- LMNOM est defini dans le COMMON CNOYAU C et contient ??? (nombre total d'objets) I1=LMNNOM DO 1 I = 1,I1 IF(INOOB2(I).EQ.' ') GO TO 1 IF(INOOB2(I).EQ.'ANNULE ') GO TO 1 C------- Si on a trouve qqch different de ' ' ou de 'ANNULE ' C On aggrandit le MLCHA8, on y met le type qu'on a trouve C (c.a.d. INOOB2(I)), C puis on sort de la boucle M=1 SEGADJ MLCHA8 MLCHAR(1)=INOOB2(I) GO TO 2 1 CONTINUE C---- S'il n'y avait que des ' ' et des 'ANNULE ' C on renvoie le MLCHA8 (de longueur nulle et non-desactive ?) et on C s'en va ITOTO=MLCHA8 RETURN C---- Dans cette boucle on met dans MLCHA8 tous ce que contient INOOB2 C (en 1 exemplaire) sauf les 'ANNULE ', par contre les ' ' C peuvent etre dedans - est-ce correct ? 2 CONTINUE DO 10 I=1,I1 DO 4 J=1,M IF(INOOB2(I).EQ.MLCHAR(J)) GO TO 10 4 CONTINUE IF(INOOB2(I).EQ.'ANNULE ') GO TO 10 C------- Ici on augmente la taille du MLCHA8 et on y met la trouvaille M=M+1 SEGADJ MLCHA8 MLCHAR(M)=INOOB2(I) 10 CONTINUE C---- A la fin on desactive le MLCHA8, on le passe comme resultat, C puis on s'en va SEGDES MLCHA8 ITOTO=MLCHA8 RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales