» G1Script.Com » Les Langages » Le Javascript » Les Cours » [Les bases du Javascript]
Javacript

  • Au travers de ces différentes pages, nous essayerons de vous familiariser avec le Javascript.

    Nous vous souhaitons une bonne lecture, mais surtout une bonne programmation :)
    Chapitre 21.5.2 Encodage de type variable

    Le principe est d'ajouter un séparateur entre chaque champ. On demandera à Javascript de retirer les caractères compris entre deux séparateurs.

    Avec le séparateur *, les données deviennent :

    str="Van Lancker*Luc*Rue des brasseurs, 22*7700*Mouscron*Belgium*"

    soit 60 positions au lieu de 80 soit un gain de 25 % (mais l'échantillon n'est pas représentatif).

    Pour lire ces différentes données, on va procéder en plusieurs étapes :

    Par pos=str.indexOf("*"), on note la position dans le string du premier séparateur rencontré.

    Par str.substring(0,pos), on aura la première donnée comprise entre le début du string (position 0) et la position moins 1 du séparateur soit ici Van Lancker.

    Par str=str.substring(pos+1,str.length), on recrée un string correspondant au string de départ moins la donnée partielle que l'on vient d'extraire moins un séparateur. Ce qui donne :
    str="Luc*Rue des brasseurs, 22*7700*Mouscron*Belgium*"

    Et ceci, par une boucle, autant de fois qu'il y a de séparateurs mois 1.

    Pour stocker des données, le moyen le plus pratique pour stocker des données est le contrôle de formulaire Hidden (caché) plutôt que le string.

    Pourquoi, me direz vous ? Bien qu'avec des string cela fonctionne, on risque de buter sur la limitation de longueur des strings en Javascript de, selon la littérature, 50 à 80 caractères. Ce qui entraîne l'emploi de signes + et de la concatenation des données pour qu'elles soient acceptées par le compilateur Javascript.

    Le contrôle de formulaire Hidden n'est quand à lui pas sujet à cette limitation de caractères. On peut y stocker 30 K (et plus) de données. Il suffira alors d'entrer dans de contrôle de formulaire Hidden l'attribut value="les données à stocker".

    Le script complet sera quelque chose du genre :
    <HTML>
    <BODY>
    <FORM name="form">
    <INPUT type=hidden name="data" value="Van Lancker*Luc*Rue des brasseurs, 22*7700*Mouscron*Belgium*">
    </FORM>
    <SCRIPT LANGUAGE="Javascript">
    str=document.form.data.value; // on extrait le string du contrôle caché
    nsep=6 // nombre de séparateurs
    for (var i=0;i<nsep;i++){
    pos=str.indexOf("*");
    document.write(str.substring(0,pos)+ "<BR>");
    str=str.substring(pos+1,str.length);
    }
    </SCRIPT>
    </BODY>
    </HTML>
    [précédent] - [suivant]


  • Devenir partenaire | Faire connaître cette page | On travail...
    Liste de diffusion : déjà 10897 Inscrits

    Nos partenaires :
    www.stvalentin.be - La liste est en cours de production -