begin process at 2012 05 30 00:08:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript Orienté objet (POO)

 > 

Divers

 > 

simplification procédure


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

simplification procédure

vendredi 1 septembre 2006 à 09:04:36 | simplification procédure

tonytruand

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><body>


Mots à chercher : <INPUT TYPE="text" id=S value="" style=display:block>
retour recherche<INPUT TYPE="text" id=E style=display:block>

<INPUT TYPE="text" id=fic2 value="C:/nouveau/ambule.html" style=display:block>

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


éclatement chaîne<input type=text value='' id=eclat style=display:block>

compteur1<input type=text value='0' id=compte1 style=display:block>

nbre de mots<input type=text id=NbMots style=display:block>

<input type=button value=Lancer onClick="recupfic(document.getElementById('fic2').value);">

<input type=text value='1' id=compteur1 style=display:none>

</body></html>

[:D][:)]

samedi 2 septembre 2006 à 18:21:18 | Re : simplification procédure

tonytruand

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 += "<input type=text id=y"+i+" value="+a+" style=display:none><br>";
  recupfic(f1.item());
document.getElementById('adresse').innerHTML = "<input type=text id=y"+i+" value="+document.getElementById('ref').value+" style=display:none><br>";


       }

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

document.getElementById('adresse').innerHTML += "<input type=text id=y"+i+" value="+a+"  style=display:none><br>";
       }


///////// 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 += "<input type=text id=lien"+l+++"  style=display:none value ="+document.getElementById('chemin2').value+""+dedans+">"+"<br>";

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 = "<input type=text id=liendefb  style=display:none value="+trier2+">"+"<br>";
}

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 = "<input type=text id=adrref style=display:none value="+trier3+">"+"<br>";
}
else{

document.getElementById('retour5').innerHTML = "<input type=text id=adrref style=display:none value="+document.getElementById('ref').value+""+trier3+">"+"<br>";}
     }

 

 

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("<body.*?</body>", "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<b.length; i++) {
document.getElementById('acces').innerHTML += "<table><tr onmouseover='changeto(\"#FFFFCC\")' onmouseout='changeback(\"#ffcc99\")' bgColor=#ffcc99><td width=180px align=center><div onClick=\"OpenFichier(\'fen.html\',\'"+b[i]+"\');\">"+b[i].replace(reg, "$1")+"<\/div></td></tr></table>";
}}
</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><body onLoad="ret();" style="FILTER:progid:DXImageTransform.Microsoft.GRADIENT(startColorstr=#99ccff ,endColorstr=#555555 ,gradientType=0)" bgColor=#ffffff >
<font size=4 color=navy><b>

 

<FORM METHOD=POST NAME="form1">
Mots à chercher : <INPUT TYPE="text" id=DEBS value="" onClick="document.getElementById('acces').innerHTML='';document.getElementById('result').value='';" onKeyUp="changer(document.getElementById('DEBS').value);cumulM();">

<INPUT TYPE="text" id=DEBS2 value="" style=display:none><INPUT TYPE="text" id=S value="" style=display:none><INPUT TYPE="text" id=E style=display:none>

<input type=text value="" id=cumul style=display:none><input type=text value="" id=coock NAME="texte2" style=display:none>
<INPUT TYPE="text" id=fic2 style=display:none>
<INPUT TYPE="text" id="NOM1" VALUE="yoyo" style=display:none>

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

<input type=text value='0' id=com1 style=display:none><input type=text value='1' id=com2 style=display:none>

<input type=text value='' id=eclat style=display:none><input type=text value='0' id=compte1 style=display:none><input type=text id=NbMots style=display:none>

<input type=text id=fi style=display:none>

<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>

<input type=button value=Lancer  onClick="changer(document.getElementById('DEBS').value);recupfic(document.getElementById('ref').value);ret();fin();efface();" style="background:'#FFFFCC';color:navy;" onmouseover="this.style.backgroundColor='#00FF00';this.style.color='red';" onmouseout="this.style.backgroundColor='#FFFFCC';this.style.color='navy';">

<input type=text id=ref value="C:/nouveau/" style=display:block><input type=text id=chemin2 value="" style=display:none>

 

<table style=display:none><tr><td><div id=adresse></div></td><td>
<div id=retour2></div></td>
<td><div id=retour4></div></td>
<td><div id=retour5></div></td>
<td><div id=retour6></div></td>
<td><div id=retour7></div></td>
<td><div id=adresse2></div></td></tr></table>


<input type=text value='1' id=compteur1 style=display:none>

</form>

 

<center><table border=0 bgcolor=pink style=width:300px><tr><td align=center><font size=4 color=navy><b>résultat(s) ci-dessous)</b></font></td><tr>
<td><div id="acces" name="acces" align=center style=background:yellow;width:300px></div></td></tr></table></center>

<input type=text id=paramrecu style=display:none><input type=text id=cle style=display:none>

</body></html>


[:D][:)]



Cette discussion est classée dans : document, value, xhr, object, getelementbyid


Répondre à ce message

Sujets en rapport avec ce message

XMLHttpRequests qui ne fonctionnent pas très bien... [ par thomvaill ] Bonjour tout le monde,  Pour mon client IRC en PHP/JavaScript, j'ai un petit problème avec deux XMLHttpRequest (que j'appellerai par la suite xmlh, ça Encore des erreurs ! [ par nicomilville ] Salut,Et oui, c'est encore moi, vous devez vous dire que je suis un nul, c'est peut être vrai, lol J'ai encore des erreurs sur mon code... Si ça co Problème de Popup-Tooltip [ par whiteange ] Bonjour à tous,Voilà, j'ai un petit problème avec un simili poup-tooltip. Sur une page, l'utilisateur clique sur une image, ceci appel alors une fonct Variable POST [ par ghota ] Bonjour, j'aurais une question dans mon code. [code=js]function goAjaxPost(module,action,variables,id) { var xhr_object = null; var position = id; if Comment verifier ces champs ? [ par StevenL86 ] Hello. Bon voilà,j'ai élaborer un formulaire dont je n'arrive pas à recuperer les valeurs des champs via ma fonction javascript (qui est bien appelée, Problème de script faisant ralentir ie [ par gregusse ] Bonjour ! J'ai un problème sur un script que j'ai codé. J'ai le message de IE "un script fait ralentir internet explorer ...". Apparemment c'est à ca Problème de compatibilité avec Firefox [ par Sniark ] Bonjour à tous, Je suis débutant en javascript. J'ai un script qui récupère des valeurs sélectionnées dans des menus déroulants et retourne une liste envois de formulaire ajax [ par Annadrill ] bonjour,voilà, j'aimerais modifier la fonction que je vous mets la dessous, de manière a pouvoir l'utiliser avec n'importe quel formulaire, en précisa Champ inactif [ par nicoferra ] Bonjour,je chercher à rendre un champ inactif (initial_compo2) mais cela ne fonctionne pas.Merciwindow.onload=function desactive(){document.getElement probleme controle de saisie avec du javascript dans un formulaire html.php [ par suethi75 ] BonjourJe controle les champs obligatoires dans mon formulaire cependant cela ne marche pas.Voici mon code javascript: function verifForm(){  if (docu


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales