IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Java script et dictionary


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de hugoclo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 615
    Par défaut Java script et dictionary
    Bonsoir,
    J'ai développé une petite appli en vb qui permet via un dictionnary de transformer dans un texte des abréviation par leur version longue exemple chm pour chemin.
    Mon dico est chargé depuis un fichier texte du type
    chm;chemin
    gde;guide

    Maintenant on me demande de faire la meme chose en JAVA SCRIPT langage que je ne connait pas du tout.
    Pouvez vous me dire par ou commencer?
    Cordialement.

  2. #2
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    Salut

    J'ai développé une petite appli en vb
    Si tu as sû le faire en vb, tu saura le faire en javascript.
    Avance pas à pas, recherche les équivalents, et demande si tu bloque mais là, on peut pas t'aider...

    Par contre, si t'as question concerne la philosophie de programmation en javascript, là, il n'y a pas de miracle, faut coder pour se forger une opinion...
    Puis lire les tutos et astuces de développez.com.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 354
    Par défaut
    salut !

    Alors je serais toi, je procéderais en quatre étapes.

    La première, charger le fichier texte (tu trouveras plein d'exemple sur l'utilisation d'ajax et XMLHttpRequest)

    Deuxième étape, transformer le fichier texte en objet javascript. (tu comprenderas pourquoi par la suite)
    Ça ce fait avec une expression régulière, et l'utilisation de replace (fonction du prototype de String). Dans ton cas ça devrait donner quelque chose comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    var dictionnaireAbreviation= {};
     
    monFichierTexteCharger.replace(/([\w-]+);([\w-]+)(?:\n|$)/g, function(match, abreviation, remplacement){
        dictionnaireAbreviation[abreviation] = remplacement;
    });
    On peut procéder autrement, comme découper le fichier en ligne, boucler sur les lignes, et ensuite découper le ligne par le délimiteur ";" et remplir l'objet, mais c'est plus lourd a faire.

    La troisième étape c'est de créer l'expression régulière qui va servir à remplacer les abréviations.
    Pour ce faire on va ce servir de l'objet nouvellement créer en bouclant dessus pour remplir un tableau, que l'on va ensuite transformer en String,pour enfin la passer au constructeur RegExp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    var tabToReg = [];
     
    for(var abreviation in dictionnaireAbreviation){
        tabToReg.push(abreviation );
    }
     
    var abreviationReg = new RegExp('(^|\\s|\\.)(' + tabToReg.join('|') + ')(\\s|\\.|$)', 'g', 'g');
    Et enfin, il suffit de remplacer le texte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var monTexteSansAbreviation = monTexteAvecAbreviation.replace(abreviationReg, function(match, before, abreviation, after){
        return  before + dictionnaireAbreviation[abreviation] + after;
    });
    Et voilà le tour est joué

  4. #4
    Membre éclairé Avatar de hugoclo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 615
    Par défaut
    Merci pour vos réponses.
    Voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    <html>
    <head>
    <title>Salut</title>
    </head>
    <body>
    <p align="center">&nbsp;
    </p>
    <form name="form1" enctype="multipart/form-data" method="post" action="">
      <input type="file" name="file" id="file">
    </form>
    <input name="button" type="button" onClick="document.getElementById('montexte').value=ligneparligne();" value="Charger le Message">
    <input name="button" type="button" onClick="document.getElementById('montexte').value=dicoo();" value="De long vers ABVR">
    <p align="center">
      <textarea name="montexte" rows="50" cols="100" wrap="PHYSICAL" id="montexte" > </textarea>
     
    </p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>  <script>
     
    //var montexte = document.getElementById('montexte').value=ligneparligne();
    function dicoo() {
    var fso = new ActiveXObject("Scripting.fileSystemObject");
    var ts=fso.OpenTextFile("d:\abr.txt",1,false);
    var lu,titi,liste;
    var tab;
    var dico;
    dico = new ActiveXObject("Scripting.Dictionary");
    while (!ts.AtEndOfStream)
    { lu=ts.ReadLine();
    tab = lu.split(";");
    dico.add(" " + tab[1] + " "," " + tab[0] + " ");
     }
    ts.close();
    elements = (new VBArray(dico.Items())).toArray();
             liste = "";
     
             for (i in elements) //Parcourir le dictionnaire.
             {
     
               //liste += elements[i] + "\r\n";
             }
    return (liste);
    }
    function ligneparligne(){
    var monchm = document.getElementById('file').value;
    alert(monchm)
    var fso = new ActiveXObject("Scripting.fileSystemObject");
    var ts=fso.OpenTextFile(monchm,1,false);
    var lu,titi;
    while (!ts.AtEndOfStream)
    { lu=ts.ReadLine();
    titi += " " + lu + " " + "\r\n";
     }
    ts.close();
    return (titi);
    }
     
     
    </script>
     
    </p>
    </body>
    </html>
    Je n'arrive toujours pas modifier mon texte qui se trouve dans mon textarea.

  5. #5
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    tu as essayé la solution de kimjoa ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var monTexteSansAbreviation = monTexteAvecAbreviation.replace(abreviationReg, function(match, before, abreviation, after){
        return  before + dictionnaireAbreviation[abreviation] + after;
    });

  6. #6
    Membre éclairé Avatar de hugoclo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 615
    Par défaut
    J'ai essayé mais je ne vois pas ou le mettre dans le code.
    Donc je suis parti sur ce que tu m'avais conseillé.
    Si tu as sû le faire en vb, tu saura le faire en javascript

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. IE et restriction des Java Script
    Par /dev/null dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/04/2006, 14h30
  2. [Info] java script dans eclipse
    Par bf83 dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 29/03/2006, 14h19
  3. [Java Script] Lien avec infobulle...
    Par greg1386 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 09/02/2006, 21h15
  4. Java script + JSP : Passage de données
    Par Rastapwalu dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 12/12/2005, 15h58
  5. info bulles en java script
    Par romjel dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 24/08/2005, 01h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo