Simplification procédure

tonytruand Messages postés 175 Date d'inscription samedi 23 octobre 2004 Statut Membre Dernière intervention 8 mars 2015 - 1 sept. 2006 à 09:04
tonytruand Messages postés 175 Date d'inscription samedi 23 octobre 2004 Statut Membre Dernière intervention 8 mars 2015 - 2 sept. 2006 à 18:21
bonjour à tous,


J'ai construit un support qui permet, à partir d'une arborescence de récupérer les fichiers du premier niveau puis les répertoires de ce niveau et enfin les fichiers de ces derniers répertoires. Ensuite, à l'aide du xmlhttprequest je récupère chaque source pour vérifier si des mots"clés" sont dans un document; si oui je conserve le chemin d'accès audit document dans un cookie, et à la fin du passage de tous les documents par le xmlhttprequest, je récupère les chemins d'accès stockés dans le cookie pour afficher le nom de chaque document contenant le mot clé dans un tableau (voici pour comprendre).
ceci fonctionne parfaitement, mais j'aimerai gagner en rapidité d'exécution, c'est pourquoi je vous demande votre avis.
Serait il possible de simplifier la méthode peut être en évitant l'affichage des sources dans un textarea pour recherche du ou des mots clés et de faire cette procédure directement dans le xmlhttprequest????????????
je suis pas un spécialiste et peut être que quelqu'un aura une approche différente de la question.

merci pour toutes vos propositions

voici la partie de source à améliorer (pour tester il suffit d'adapter le chemin d'accès à un de vos documents .html, mais bien sûr vous l'avez compris)

<html><head><title>fichtmtransf2</title>


<script>
function recupfic(url){
      


////////////////PARTIE CPOUR LA REQUETE DE RECUPERATION DES FICHIRES/////////////////////////////////////////////////////////////////////////////


 var xhr_object = null;  
 if(window.XMLHttpRequest) // Firefox
    xhr_object = new XMLHttpRequest();
 else if(window.ActiveXObject) // Internet Explorer
  try {
    xhr_object = new ActiveXObject("Msxml2.XMLHTTP");
   } catch (e) {
    xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
  }
  function onreadystatechangeFunction(){   if (xhr_object.readyState 4 && xhr_object.status 200){
    reponse=xhr_object.responseText;


   
   }
  }//function onReaydy


  xhr_object.onreadystatechange = onreadystatechangeFunction;
  xhr_object.open('GET', document.getElementById('fic2').value, true);


  xhr_object.send(null);




   if ( xhr_object.readyState == 4 ) {
  
  document.getElementById('propre').value = xhr_object.responseText;}


 


 


if(document.getElementById('S').value==""){
alert('inscrire un mot à rechercher');}else{


var text = document.getElementById('propre').value;
var motdeb = document.getElementById('S').value;
var chaine = motdeb.split(" ");


var formcontent=document.getElementById('S').value;
 formcontent=formcontent.split(" ");
 document.getElementById('NbMots').value=formcontent.length;


 for (var j=0; j<chaine.length; j++) {
document.getElementById('eclat').value = chaine[j];


var resultat = text.search(chaine[j]);
 if(resultat != -1)
{
document.getElementById('E').value = true ;}


            }
   }


}
 
</script>


 


</head>




Mots à chercher :
retour recherche




<textarea id="propre" name="propre" cols="30" rows="5" style=display:block></textarea>




éclatement chaîne


compteur1


nbre de mots






</html>

[:D][:)]

1 réponse

tonytruand Messages postés 175 Date d'inscription samedi 23 octobre 2004 Statut Membre Dernière intervention 8 mars 2015
2 sept. 2006 à 18:21
bon j'ai trouvé un début de solution en extrayant que le body des pages interrogées avant la recherche des mots clés

voici

<html><head><title>fichtmtransf2</title>


<style>td {color: BLUE;font-family: Arial;font-size: 12pt;cursor:hand}
</style>


<SCRIPT language=JavaScript1.2>
function changeto(highlightcolor){


////////////////////////////////////////////CLIGNOTEMENT DES LIGNE TABLE RESULTATS//////////////////////////////////////////////////////////////


source=event.srcElement
if (source.tagName=="TR"||source.tagName=="TABLE")
return
while(source.tagName!="TD")
source=source.parentElement
if (source.style.backgroundColor!=highlightcolor&&source.id!="ignore")
source.style.backgroundColor=highlightcolor
      }
function changeback(originalcolor){
if (event.fromElement.contains(event.toElement)||source.contains(event.toElement)||source.id=="ignore")
return
if (event.toElement!=source)
source.style.backgroundColor=originalcolor
}
</SCRIPT>
<script>
function recupfic(url){


///////////RECUPERATION A PARTIR D UN REPERTOIRE SES DOCUMENTS PLUS SES REPERTOIRES ET LEUR DOCUMENT SANS LES EXT / JPG  JS  GIF ////////////////


document.getElementById('retour2').innerHTML = "";


if(document.getElementById('S').value==""){
alert('inscrire un mot à rechercher');}else{


var i=0;


fso = new ActiveXObject("Scripting.FileSystemObject");
 
f = fso.GetFolder(url);
 var f1 = new Enumerator(f.SubFolders);


 for (; !f1.atEnd(); f1.moveNext()){
a = f1.item().Name;


document.getElementById('adresse').innerHTML += "
";
  recupfic(f1.item());
document.getElementById('adresse').innerHTML = "
";




       }


c = fso.GetFolder(url);
 var c1 = new Enumerator(c.files);
 
 for (; !c1.atEnd(); c1.moveNext()){
 a = c1.item().Name; 


document.getElementById('adresse').innerHTML += "
";
       }




///////// PARTIE CONCERNANT LES ECLUSIONS PAR EXTENSION DE FICHIERS ///////////////////////////////////////////////////////////////////////////////////



var l 1;var k 1;
for ( var i=0;i<frm.y0.length;i++ )
      {
 var conteneur = frm.y0[i].value;
 var resultat = conteneur.search(/htm/);


var dedans = frm.y0[i].value;


 


 if(resultat != -1){
document.getElementById('retour2').innerHTML += ""+"
";


document.getElementById('com1').value=l;




var comptcom1 = document.getElementById('com1').value;




}
else{
var chem = frm.y0[i].value+"/";
var conteneur12 = frm.y0[i].value;
 var resultat12 = conteneur12.search(/jpg|gif|js/);
if(resultat12 != -1){
document.getElementById('chemin2').value +="";}else{document.getElementById('chemin2').value = chem.replace(/\/\//g,"/");}
         }
     }
  }


var com1 document.getElementById('com1').value ;var y 1;var z = 1;var l = 1;




  while (document.getElementById("lien"+z)!=null)
        {




 var conteneur2 = document.getElementById("lien"+z).value;
var resultat3 = conteneur2.search(/gif/);
var trier2 = document.getElementById("lien"+z).value;



if(resultat3 !-1){document.getElementById('retour4').value "";
}


else{document.getElementById('retour4').innerHTML = ""+"
";
}


z++;


var y 1;var q 1;var f = 1;var r = 1;var k = 1;var s = 1;


 var conteneur3 = document.getElementById("liendefb").value;
var resultat3 = conteneur3.search(/jpg/);
var trier3 = document.getElementById("liendefb").value;



if(resultat3 !-1){document.getElementById('retour4').value "";
}


else{


if(document.getElementById('ref').value == document.getElementById('chemin2').value){
document.getElementById('retour5').innerHTML = ""+"
";
}
else{


document.getElementById('retour5').innerHTML = ""+"
";}
     }


 


 


document.getElementById('compte1').value =0;


document.getElementById('fic2').value = document.getElementById('adrref').value;


{




////////////////PARTIE CPOUR LA REQUETE DE RECUPERATION DES FICHIRES/////////////////////////////////////////////////////////////////////////////


 var xhr_object = null;  
 if(window.XMLHttpRequest) // Firefox
    xhr_object = new XMLHttpRequest();
 else if(window.ActiveXObject) // Internet Explorer
  try {
    xhr_object = new ActiveXObject("Msxml2.XMLHTTP");
   } catch (e) {
    xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
  }
  function onreadystatechangeFunction(){   if (xhr_object.readyState 4 && xhr_object.status 200){
    reponse=xhr_object.responseText;


   
   }
  }//function onReaydy


  xhr_object.onreadystatechange = onreadystatechangeFunction;
  xhr_object.open('GET', document.getElementById('fic2').value, true);


  xhr_object.send(null);




   if ( xhr_object.readyState == 4 ) {


var str = xhr_object.responseText.replace(/""/gi,"").replace(/\s*/gi,"");
var reg = new RegExp("", "ig");


  
  document.getElementById('propre').value = str.match(reg);}


 


if(z==comptcom1){document.getElementById('retour2').innerHTML ="";}




if (document.getElementById('S').value == "")
return false;}


document.getElementById("E").value = "";


 


////////////////PARTIE POUR LA RECHERCHE DES MOTS CLES DANS CHAQUE FICHIER RECUPERE ///////////////////////////////////////////////////////////////


{




if(document.getElementById('S').value==""){
alert('inscrire un mot à rechercher');}else{


 


var text = document.getElementById('propre').value;
var motdeb = document.getElementById('S').value;
var chaine = motdeb.split(" ");


var formcontent=document.getElementById('S').value;
 formcontent=formcontent.split(" ");
 document.getElementById('NbMots').value=formcontent.length;


 for (var j=0; j<chaine.length; j++) {
document.getElementById('eclat').value = chaine[j];


var resultat = text.search(chaine[j]);
 if(resultat != -1)
{
document.getElementById('compte1').value = eval(document.getElementById('compte1').value)+1 ;}


 


if(document.getElementById('compte1').value == document.getElementById('NbMots').value)
{document.getElementById('E').value = "true";
document.getElementById('compte1').value =0;
document.getElementById('eclat').value="";
document.getElementById('NbMots').value="";




               }


        }
  }


//////////////PARTIE CONCERNANT LE STOCKAGE EN COOKIES ET RECUP DU COOKIE//////////////////////////////////////////////////////////////////////////




if(document.getElementById("E").value == "true")
{document.getElementById('texte2').value += document.getElementById('adrref').value +"|";


 


var nom=document.form1.NOM1.value;
var valeur=document.form1.texte2.value;
if (nom!="")
 {
 if (valeur!="")
  {
  EcritCookie(nom,valeur,date_exp);document.getElementById('retour4').innerHTML ="";    document.getElementById('retour5').innerHTML ="";
}}
else{alert('rien');}


 


 




var nom=document.form1.NOM1.value;
if (nom!="")
 {
 var valeur=LitCookie(nom);
 if (valeur!=null)
  {document.form1.result.value= valeur;
  
}
  
 else document.getElementById('acces').innerHTML="il n'y a aucun résultat pour cette recherche";
 }
 else alert("Il n'y a pas de nom !");


   




               }




           }
 
 }


}
</script>


<script language="Javascript">
<!--
////////////////////////////////////////////COOKIE//////////////////////////////////////////////////////////////////////////////////////////////
/* Contenu d'un cookie :
 nom=valeur[;expires=DATE_EXPIRATION;path=CHEMIN;domain=DOMAINE;SECURE]
 (entre crochets : les parties facultatives)*/


/* LitCookie retourne la valeur du cookie qui suit "nom="
- nom est l'objet String qui contient le nom du cookie
- la fonction retourne un objet String contenant la valeur du cookie
- ou null si le cookie n'existe pas */
function LitCookie(nom)
{
    var mon_cookie = document.cookie;
    var debut = mon_cookie.indexOf(nom+"=");
    var taille = debut + nom.length + 1;
    if ((!debut) && (nom != mon_cookie.substring(0,nom.length))) return null;
    if (debut == -1) return null;
    var fin = mon_cookie.indexOf(";",taille);    if (fin -1) fin mon_cookie.length;
    return unescape(mon_cookie.substring(taille, fin));
}


/* CreeCookie crée un cookie.
- nom : objet String contenant le nom du cokkie
- valeur : objet String contenant la valeur du cokkie
- [expire] : objet Date contenant la date d'exdpiration du cookie. S'il est absent ou égal à null, le cookie expire à la fin de la session courante
- [chemin] : objet String indiquant le chemin pour lequel le cookie est valide.S'il est absent ou égal à null, il utilise le chemin du document appelant.
- [domaine] : objet String indiquant le domaine pour lequel le cookie est valide.S'il est absent ou égal à null, il utilise le domaine du document appelant.
- [secure] : Valeur booléenne indiquant si la transmission du cookie nécessite un canal sécurisé.
Les deux premiers arguments sont obligatoires. Les autres doivent être mensionnés dans l'ordre. Pour en omettre un on utilise null à sa place, par exemple :
   EcritCookie("mon cookie","ma valeur",null,"/"); */
  
function EcritCookie(nom, valeur, expire, chemin, domaine, secure)
{
    document.cookie = nom + "=" + escape(valeur) +
        ( (expire) ? ";expires=" + expire.toGMTString() : "") +
        ( (chemin) ? ";path=" + chemin : "") +
        ( (domaine) ? ";domain=" + domaine : "") +
        ( (secure) ? ";secure" : "");
}


// Détruit un cookie en l'antidatant au 1er janvier 1970
// Les arguments "chemin" et "domaine" sont facultatifs
function DetruitCookie(nom, chemin, domaine)
{
    if (LitCookie(nom)) //si le cookie existe (LitCookie=null sinon)
 {
 document.cookie = nom + "=" +( (chemin) ? ";path=" + chemin : "") +( (domaine) ?";domain=" + domaine : "") + ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
 }
}
 
//-->
</script>  




<script language="Javascript">
<!--
// Définition de la date d'expiration et du domaine
  var monChemin=location.pathname;
  var monDomaine=monChemin.substring(0,monChemin.lastIndexOf('/')) +'/';
  var date_exp = new Date (); //aujourd'hui
  FixeDateCookie (date_exp);  //correction pour le Mac
  date_exp.setTime (date_exp.getTime() + (24 * 60 * 60 * 1000)); // expire dans 24H


/*  Fonction pour corriger un bug de date du Mac. 
Appeler cette fonction pour fixer un objet Date avant de le passer dans
EcritCookie.
IMPORTANT:  Cette fonction ne doit être appelée qu'une fois pour chaque objet Date ! */
function FixeDateCookie (date) {
  var base = new Date(0);
  var ecart = base.getTime(); // début du temps Unix - devrait valoir 0
  if (ecart > 0)  // sauf sur le Mac qui a une base de temps antèrieure
    date.setTime (date.getTime() - ecart);
}
//-->
</script>


 




<script language="Javascript">
function ret(){
/////////////NETTOYAGE DU NOM DES FICHIERS RESULTAT AVANT PRESENTATION DANS TABLE ///////////////////////////////////////////////////////////


var test = document.getElementById("result").value;
x = test.replace(/\\/g,"/");
a= x.replace(/\s/gi," ");
var b = a.split("|");
var reg = new RegExp("^.*/(.*?)\\.[^.]+$", "i");
 for (var i=0; i
";
}}
</script>
<script language="Javascript">
function efface(){
/////////////////////////NETTOYAGE DES INPUTS COMPTEURS ET DIV AVANT NOUVELLE RECHERCHE//////////////////////////////////////////////////////


var nom=document.form1.NOM1.value;


document.getElementById('propre').value='';
document.getElementById('texte2').value='';
document.getElementById('fic2').value='';
document.getElementById('compteur1').value=1;
document.getElementById('compte1').value='0';
document.getElementById('eclat').value='';
document.getElementById('NbMots').value='0';
document.getElementById('com1').value='1';
if (nom!="")
 {
 DetruitCookie(nom);history.go(0);
 }
 else alert("Il n'y a pas de nom d'indiqué !");
}
</script>


<script language=javascript>
function SelectionneLignes(idListe, val)
{


/////////////////SELECTION DU CHEMIN DU REPERTOIRE A ANALYSER/////////////////////////////////////////////////////////////////////////////////


var objListe=document.getElementById(idListe);
for (i=objListe.length-1;i>=0;i--)
objListe.options.selected=(objListe.options[i].value==val)?true:false;
}
</script>


<script>
function cumulM(){
/////////////////TRANSFORMATION MOT CLE EN MINUSCULES//////////////////////////////////////////////////////////////////////////////////////////


{document.getElementById('S').value = document.getElementById('DEBS2').value.toLowerCase();}}
</script>


<script>
function fin(){
///////////////////////////////////////////////NETTOYAGE DUE LA TABLE////////////////////////////////////////////////////////////////////////


if(document.getElementById("result").value ==""){document.getElementById('acces').innerHTML='AUCUN RESULTAT';}}
</script>


<SCRIPT type=Text/JavaScript>function changer(MOT){


//////////////TRANSPOSITION DES MOTS CLES EN CODAGE HTML///////////////////////////////////////////////////////////////////////////////////////
document.getElementById('DEBS2').value = (document.getElementById('DEBS').value).replace(/é/g,"&eacute;").replace(/è/g,"&egrave;").replace(/ê/g,"&ecirc;").replace(/ë/g,"&euml;").replace(/à/g,"&agrave;").replace(/â/g,"&acirc;").replace(/ä/g,"&auml;").replace(/î/g,"&icirc;").replace(/^ï/g,"&iuml;").replace(/ç/g,"&ccedil;").replace(/ô/g,"&ocirc;").replace(/ô/g,"&ucirc;").replace(/ù/g,"&ugrave;").replace(/ë/g,"&euml;") ;


document.getElementById('cle').value = document.getElementById('DEBS').value;
document.getElementById('paramrecu').value= document.getElementById('DEBS').value;


}</SCRIPT>




 




<script>
function OpenFichier( url_,cont){
var envoi1 = "rien";
var envoi2 = document.getElementById('paramrecu').value;
if (document.getElementById('paramrecu').value==""){
window.open(""+url_+"?param1="+cont+"&amp;param2="+envoi1+"");}else{
window.open(""+url_+"?param1="+cont+"&amp;param2="+envoi2+"");}}</script>




</head>


 


<FORM METHOD=POST NAME="form1">
Mots à chercher :






<textarea id=result style=display:none></textarea>
<textarea id="propre" name="propre" cols="30" rows="5" style=display:none></textarea>
</FORM>








<form name=frm>
Choisir un domaine :
<select id='monselect'  onChange=frm.ref.value=this.value>
<option value='C:/nouveau/' selected>Légis. globale</option>
<option value='C:/nouveau2/'>AAH</option>
<option value='C:/caf2/'>AEEH</option>
</select>






 







</form>


 


<center>résultat(s) ci-dessous)
</center>





</html>




[:D][:)]
0
Rejoignez-nous