listyp
C LISTYP SOURCE OF166741 24/12/18 21:15:24 12090 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) -INC PPARAM -INC CCOPTIO -INC CCNOYAU -INC TMLCHA8 SEGMENT MTY(0) M = 100 SEGINI,MLCHA8 ML8 = 0 C---- LMNOM est defini dans le COMMON CNOYAU C et contient ??? (nombre total d'objets) IDEB = 0 IFIN = LMNNOM DO I = 1, IFIN IF (INOOB2(I).EQ.' ') GOTO 1 IF (INOOB2(I).EQ.'ANNULE ') GOTO 1 C------- Si on a trouve qqch different de ' ' ou de 'ANNULE ' C On met dans MLCHA8 le type qu'on a trouve (c.a.d. INOOB2(I)). ML8 = ML8 + 1 MLCHAR(ML8) = INOOB2(I) IDEB = I + 1 GO TO 2 1 CONTINUE ENDDO C---- S'il n'y avait que des ' ' et des 'ANNULE ' GOTO 900 2 CONTINUE C---- Dans cette boucle on met dans MLCHA8 tout ce que contient INOOB2 C (en 1 exemplaire) sauf les 'ANNULE ', par contre les ' ' C peuvent etre dedans - est-ce correct ? DO I = IDEB, IFIN IF (INOOB2(I).EQ.'ANNULE ') GOTO 10 DO J = 1, ML8 IF (INOOB2(I).EQ.MLCHAR(J)) GOTO 10 ENDDO C---- On augmente la taille du MLCHA8 si besoin et on y met la trouvaille ML8 = ML8 + 1 IF (ML8.GT.M) THEN M = M + 100 SEGADJ,MLCHA8 ENDIF MLCHAR(ML8) = INOOB2(I) 10 CONTINUE ENDDO C---- Ajustement final du segment MLCHA8 900 CONTINUE IF (ML8.NE.M) THEN M = ML8 SEGADJ,MLCHA8 ENDIF C---- On desactive le MLCHA8, on le passe comme resultat, puis fin SEGDES,MLCHA8 ITOTO = MLCHA8 RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales