| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 
 |  
PROCEDURE recup_web IS
   ADRESSE VARCHAR2(255);
   LA_PAGE UTL_HTTP.HTML_PIECES;
   DEBUT NUMBER;
   FIN NUMBER;
   TRAVAIL VARCHAR2(4000);
   LIGNE VARCHAR2(2000);
   TYPE_FICHIER VARCHAR2(10);
   FICHIER UTL_FILE.FILE_TYPE;
   YDDD VARCHAR2(4);
   W_ROOT VARCHAR2(50);
BEGIN
   W_ROOT :='/home/';
   SELECT TO_CHAR(SYSDATE,'YDDD') INTO YDDD FROM dual;
   ADRESSE:='http://www.toto.fr/questions/flux/questionnaire2.php4';
   LA_PAGE := UTL_HTTP.REQUEST_PIECES(ADRESSE);
   FICHIER:=UTL_FILE.FOPEN(W_ROOT,'QUEST_WEB'||YDDD||'.TXT','w');
     IF LA_PAGE.COUNT=1 
   THEN
            DEBUT:=1;
		FIN:=0;
		DEBUT:=INSTR(LA_PAGE(1),'<debut ',DEBUT);
		WHILE debut<>0 LOOP
		   FIN:=INSTR(LA_PAGE(1),'</fin>',DEBUT);
		   LIGNE:=SUBSTR(LA_PAGE(1),debut+11,FIN-(DEBUT+11));
		  TYPE_FICHIER:=SUBSTR(LA_PAGE(1),debut+7,3);
		  IF TYPE_FICHIER='que' 
		  	 THEN UTL_FILE.PUT_LINE(FICHIER,LIGNE); 
		  END IF;
		  DEBUT:=INSTR(LA_PAGE(1),'<debut ',FIN);
		END LOOP;
   ELSE
	   FOR I IN 1 .. LA_PAGE.COUNT-1
	   LOOP
	    TRAVAIL:= LA_PAGE(I) || LA_PAGE(I+1);
	    DEBUT:=1;
		FIN:=0;
		DEBUT:=INSTR(TRAVAIL,'<debut ',DEBUT);
		WHILE debut<>0 AND ((debut<2000 AND i< LA_PAGE.COUNT-1) OR i= LA_PAGE.COUNT-1) LOOP
		  FIN:=INSTR(TRAVAIL,'</fin>',DEBUT);
		  LIGNE:=SUBSTR(TRAVAIL,debut+11,FIN-(DEBUT+11));
		  TYPE_FICHIER:=SUBSTR(LA_PAGE(i),debut+7,3);
		  IF TYPE_FICHIER='que' 
		  	 THEN UTL_FILE.PUT_LINE(FICHIER,LIGNE); 
		  END IF;
		  DEBUT:=INSTR(TRAVAIL,'<debut ',FIN);
		END LOOP;
	   END LOOP;
   END IF;
   	   UTL_FILE.FCLOSE(FICHIER);
   COMMIT;  
   END recup; | 
Partager