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 :

Calcul du nombre de lignes dans un fichier texte en JavaScript


Sujet :

JavaScript

  1. #1
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Points : 80
    Points
    80
    Par défaut Calcul du nombre de lignes dans un fichier texte en JavaScript
    Bonjour,

    Après avoir résolu le problème de lecture des fichiers en javascript, je voudrais récupérer chaque ligne à part avec une fonction ReadLine, comme celle de Java, j'ai commencé en première étape par compter le nombre de ligne, normalement ça marche, mais, une alerte indiquant que mon script ne répond pas est affiché, et dans la console d'erreur, j'ai une erreur au niveau du script StrinTokenizer.js, comme suit:" this.str has no propreties", donc si vous voulez bien m'aider à résoudre ce problème, Merci bien
    çi dessous vous trouverez mon script, StringTokenizer.js et ma page html qui fait appel à ce script afin de calculer le nombre de ligne dans mon fichier texte:

    StringTokenizer.js
    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
    65
    66
    67
    68
    function StringTokenizer (str, delim) {
       this.str = str;
       this.delim = delim;
     
       this.getTokens = getTokens;
       this.hasMoreTokens = hasMoreTokens;
       this.nextToken = nextToken;
       this.countTokens = countTokens;
     
       this.tokens = this.getTokens();
       this.actuel = 0;
     }
    function getTokens() {
       var tokens = new Array();
       var nt;
       var st= new String();
       st=this.str;
        if (st.indexOf(this.delim) < 0) {
     
        // if (this.str.indexOf(this.delim) < 0) {
         tokens[0] = this.str;
         return tokens;
       }
     
       start = 0;
       end = this.str.indexOf(this.delim, start);
     
       var i = 0;
     
       while (this.str.length - start >= 1) {
         nt = this.str.slice(start, end);
         start = end + 1;
         if (this.str.indexOf (this.delim, start + 1) < 0) 
           end = this.str.length;
         else
           end = this.str.indexOf (this.delim, start + 1);
     
         nt = trim (nt);
     
         while (nt.slice(0, this.delim.length) == this.delim) 
           nt = nt.slice(this.delim.length);
     
         nt = trim(nt);
     
         if (nt == "") continue;
         tokens[i++] = nt;
       }
     
       return tokens;
     }
    function trim (strToTrim) {
       return(strToTrim.replace(/^\s+|\s+$/g, ''));
     }
    function nextToken() {
       if (this.actuel >= this.tokens.length)
         return null;
       else {
         var r = this.tokens[this.actuel];
         this.actuel++;
         return r;
       }
     }
    function hasMoreTokens() {
       return this.actuel < this.tokens.length;
     }
    function countTokens(){
       return this.tokens.length;
     }
    CalculNbreLigne.html

    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
    <html>
    <title>FONCTION QUI CALCULE LE NBRE DE LIGNE DANS LE FICHIER TEXTE</title>
    <head><script language='JavaScript' src='js/SringTokenizerVendredi.js' ></script>
    </head>
    <body><script>
     
            var xhr_object = null; 
     
    	if(window.XMLHttpRequest) // Firefox 
    	   xhr_object = new XMLHttpRequest(); 
    	else if(window.ActiveXObject) // Internet Explorer 
    	   xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
    	else { // XMLHttpRequest non supporté par le navigateur 
    	   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    	  // return; 
    	} 
     
    	xhr_object.open("GET", "foo.txt", true); 
     
    	xhr_object.onreadystatechange = function() { 
    	   if(xhr_object.readyState == 4) 
     
             var g=xhr_object.responseText;
             var i=0;
     
    	 tnz = new StringTokenizer(g,"\n");
     
    	 while(tnz.hasMoreTokens()){
    		i++;
    	 }
     
            document.write("Nombre de ligne dans le fichier foo.txt est:"+i);
     
    	} 
     
    	xhr_object.send(null); 
    </script>
    </body>
    </html>

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Si en parlant de lignes, tu parles bien de retours chariot, tu peux utiliser :
    qui te renvoie un tableau contenant chaque ligne de ton texte
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    Merci Bovino, peut etre que je me suis trompé dans la syntaxe, mais ça ne marche pas non plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var texte=xhr_object.responseText;
    	 var tab_ligne=new Array();
             tab_ligne= texte.split('\n');
    document.write("Nombre de ligne dans le fichier foo.txt est:"+ tab_ligne.length);

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Essaye peut-être avec \r ...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Non, ça ne marchera pas non plus, \n et \r sont des codes js, si tu récupères responseText, il faut prendre en compte le code retour chariot ASCII je pense...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    en fait le problème n'est pas dans /r ou /n, j'ai déjà travaillé avec /n et c'est bon de ce coté, mais ce que j'ai affiché comme erreur dans la console d'erreur, c'est tab_ligne is not defined, c'est a dire peut être, une mauvaise déclaration ou affectation, je ne sais pas.

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Oui ,bien sûr :
    var tab_ligne=new Array();

    est erroné, la bonne syntaxe :
    var tab_ligne=new Array;
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    Non, même avec "new Array;", ça donne la même erreur.

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Et en essayant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var tab_ligne=texte.split('\n');
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  10. #10
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    La même chose, toujours: tab_ligne is not defined.

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Septembre 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour à tous

    Le sujet est ancien, mais la commande la plus simple passe par une expression régulière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function test() {
    		var text=document.getElementById('text').value.split(/\n/g);
    		alert(text.length);
    	}
    En espérant que ça servira à d'autres

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    Tu splittes sur le success de ton ajax ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

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

Discussions similaires

  1. Compter le nombre de ligne dans un fichier text
    Par nekcorp dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/06/2018, 14h10
  2. nombre de lignes dans un fichier texte
    Par fv18100 dans le forum Général Python
    Réponses: 8
    Dernier message: 03/11/2013, 16h10
  3. [VBS] Fonction qui compte le nombre de lignes dans un fichier texte
    Par ProgElecT dans le forum Vos Contributions VBScript
    Réponses: 0
    Dernier message: 03/05/2012, 13h48
  4. [Fichier] Nombre de ligne dans un fichier texte
    Par NewSer dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 10/11/2004, 16h58
  5. Réponses: 2
    Dernier message: 02/03/2004, 19h38

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