* Ouvertures des fichiers

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","PR" TO F.PR ELSE PRINT "OUVERTURE PR" 
OPEN "","PRC" TO F.PRC ELSE PRINT "OUVERTURE PRC" 
OPEN "","TEMPO" TO F.TEMPO ELSE PRINT "OUVERTURE TEMPO" 
OPEN "","_PH_" TO F.PH ELSE PRINT "OUVERTURE PH" 
*********************************************************

* PROGRAMME PRINCIPAL

READ ENR_TEMPO FROM F.TEMPO,"CHERCHECARACT" ELSE ENR_TEMPO=""

W_Deb=""
W_Fin=""
ENR_PH=""
W_Rang=1

   IF ENR_TEMPO<1,1> = "PR" THEN

      EXECUTE 'SELECT PR AVEC @ID # "_]" PAR @ID'

      W_Fini="FAUX"

      LOOP
         READNEXT W_Clepr ELSE W_Fini = "VRAI"
      WHILE W_Fini = "FAUX" DO
         READ ENR_PR FROM F.PR,W_Clepr ELSE ENR_PR=""

         W_Count=DCOUNT(ENR_PR,CHAR(254))

         FOR i = 1 TO W_Count
            FOR j = 3 TO DCOUNT(ENR_TEMPO,CHAR(254))

               IF INDEX(ENR_PR<i>,ENR_TEMPO<j>,1) # 0 THEN
                  ENR_PH<W_Rang> = "PR : ":W_Clepr 
		  W_Rang=W_Rang+1

                  IF ENR_TEMPO<2> = "P" THEN
                     ENR_PH<W_Rang> = "Ligne ":i:" : ":ENR_PR<i>
		     W_Rang=W_Rang+1
		  END ELSE

                    IF ENR_TEMPO<2,1> = "E" THEN
		     IF ENR_TEMPO<2,3>="AVT" THEN
			W_Deb=i-ENR_TEMPO<2,2>
			IF W_Deb<=0 THEN
			   W_Deb=1
                        END
                        FOR k=W_Deb TO i-1
                           ENR_PH<W_Rang> = "Ligne ":k:" : ":ENR_PR<k>
		           W_Rang=W_Rang+1
                        NEXT k
                     END
                     ENR_PH<W_Rang> = "Ligne ":i:" : ":ENR_PR<i>
		     W_Rang=W_Rang+1
		     IF ENR_TEMPO<2,4>="APS" THEN
			W_Fin=i+ENR_TEMPO<2,2>
                        FOR k=i+1 TO W_Fin
                           ENR_PH<W_Rang> = "Ligne ":k:" : ":ENR_PR<k>
		           W_Rang=W_Rang+1
                        NEXT k
                     END
		    END ELSE
			* on ne veut qu'une seule fois le nom du prog...
			i = W_Count
			
		    END
		  END

                  ENR_PH<W_Rang> = ""
		  W_Rang=W_Rang+1
               END
            NEXT j

         NEXT i

      REPEAT
      WRITE ENR_PH ON F.PH,"CherchePR.txt"

   END
   
ENR_PH=""
W_Rang=1

   IF ENR_TEMPO<1,1> = "PRC" OR ENR_TEMPO<1,2> = "PRC" THEN

      EXECUTE 'SELECT PRC PAR @ID'

      W_Fini="FAUX"

      LOOP
         READNEXT W_Cleprc ELSE W_Fini = "VRAI"
      WHILE W_Fini = "FAUX" DO
         READ ENR_PRC FROM F.PRC,W_Cleprc ELSE ENR_PRC=""

         W_Count=DCOUNT(ENR_PRC,CHAR(254))
         FOR i = 1 TO W_Count
            FOR j = 3 TO DCOUNT(ENR_TEMPO,CHAR(254))
               IF INDEX(ENR_PRC<i>,ENR_TEMPO<j>,1) # 0 THEN
                  ENR_PH<W_Rang> = "PRC : ":W_Cleprc 
		  W_Rang=W_Rang+1
                  IF ENR_TEMPO<2> = "P" THEN
                     ENR_PH<W_Rang> = "Ligne ":i:" : ":ENR_PRC<i>
		     W_Rang=W_Rang+1
		  END ELSE
     
                  IF ENR_TEMPO<2,1> = "E" THEN
		     IF ENR_TEMPO<2,3>="AVT" THEN
			W_Deb=i-ENR_TEMPO<2,2>
                        FOR k=W_Deb TO i-1
                           ENR_PH<W_Rang> =  "Ligne ":k:" : ":ENR_PRC<k>
		           W_Rang=W_Rang+1
                        NEXT k
                     END
                     ENR_PH<W_Rang> = "Ligne ":i:" : ":ENR_PRC<i>
		     W_Rang=W_Rang+1
		     IF ENR_TEMPO<2,4>="APS" THEN
			W_Fin=i+ENR_TEMPO<2,2>
                        FOR k=i+1 TO W_Fin
                           ENR_PH<W_Rang> = "Ligne ":k:" : ":ENR_PRC<k>
		           W_Rang=W_Rang+1
                        NEXT k
                     END
		  END ELSE
			i = W_Count
		  END
		  END
                  ENR_PH<W_Rang> = ""
		  W_Rang=W_Rang+1
               END
            NEXT j

         NEXT i

      REPEAT
      WRITE ENR_PH ON F.PH,"CherchePRC.txt"
   END


STOP
