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 �clair�
    Inscrit en
    Avril 2006
    Messages
    254
    D�tails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    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 �clair�
    Inscrit en
    Avril 2006
    Messages
    254
    D�tails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    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 �clair�
    Inscrit en
    Avril 2006
    Messages
    254
    D�tails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    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 �clair�
    Inscrit en
    Avril 2006
    Messages
    254
    D�tails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    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 �clair�
    Inscrit en
    Avril 2006
    Messages
    254
    D�tails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 254
    Par d�faut
    La m�me chose, toujours: tab_ligne is not defined.

  11. #11
    Invit� de passage
    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
    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 658
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    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 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