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

Java Discussion :

Compter les lignes du fichier CSV


Sujet :

Java

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 48
    Points : 17
    Points
    17
    Par défaut Compter les lignes du fichier CSV
    Bonjour,

    J'aimerais savoir comment compter le nombre de lignes de données contenues dans un fichier CSV.

    Voici un peu plus de détails:

    J'ai un fichier SVI dont le chemin est le suivant /SVI.csv (c'est du linux)

    dedans il y a 6 colonnes ... sur un certain nombre de lignes

    mon objectif serait de compter ce nombre de lignes, et de mettre la valeur (du nombre de ligne donc) dans une variable comme par exemple nombreDeLigneCSV

    j'ai lu ceci :

    http://java.developpez.com/sources/?...iers#LineCount

    mais j'avoue ne pas tous saisir.

    merci de votre aide

    EDIT: Question subsidiaire

    Est-il possible de compter uniquement certaines lignes?

    Par exemple dans mon fichier SVI.CSV j'ai des lignes avec "OK" et d'autres avec "NOK" inscrit dans la première colonne! Je souhaiterai ne compter que les lignes avec OK dans la première colonne.

  2. #2
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 48
    Points : 17
    Points
    17
    Par défaut
    Je me permet un petit up
    Au moins une indication pour compter toutes les lignes, cela serai déjà bien.

    Seulement après, uniquement celles avec OK en première colonne.

    merci

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 290
    Points : 426
    Points
    426
    Par défaut
    Salut,

    Il est bizarre le bout de code de ton lien : pour chaque ligne du fichier, count est écrasé avec le numéro de ligne.

    tu peux changer ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    FileInputStream fis = new FileInputStream(fl[j].getCanonicalFile());
    LineNumberReader l = new LineNumberReader(new BufferedReader(new InputStreamReader(fis)));
    en ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    FileInputStream fis = new FileInputStream(fl[j].getCanonicalFile());
    BufferedReader br = new BufferedReader(new InputStreamReader(fis)));
    puis faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int count = 0;
    while(br.readLine()) { count++;}
    enfin un truc comme ça (j'ai pas testé ).

    Pour les lignes OK, il suffir de récupérer la ligne, parser avec un split et faire un test sur le champ que tu veux pour incrémenter le compteur.

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 48
    Points : 17
    Points
    17
    Par défaut
    yop, merci de ta réponse j'ai testé ce 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
    import java.io.*;
     
    public class Compteur
    {
         static public void main(String args[]) throws Exception
         {
     
        	 int count = 0;
        	 String str = "";
     
        	 FileInputStream fis = new FileInputStream("c:\\SVI.csv");
        	 LineNumberReader l = new LineNumberReader(       
        	        new BufferedReader(new InputStreamReader(fis)));
        	               while ((str=l.readLine())!=null)
        	              {
        	                 count = l.getLineNumber();
        	              }
        	             System.out.println(count);
     
    }
    }
    il fonctionne parfaitement Il me reste plus qu'a réussir à compter les lignes avec "OK" dans la première colonne, mais c'est déjà un bon début

    mon fichier fait entre 300 et 500 lignes... Le temps d'exécution pour compter les lignes qui commencent par "OK" ne sera t-il pas trop important?

    Car si j'ai bien compris JAVA liste les ligne une à une pour les compter...

  5. #5
    Membre éclairé Avatar de unknow0
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 452
    Points : 676
    Points
    676
    Par défaut
    Citation Envoyé par miniRoshan Voir le message
    il fonctionne parfaitement Il me reste plus qu'a réussir à compter les lignes avec "OK" dans la première colonne, mais c'est déjà un bon début
    tu peu faire un truc comme sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        	 int count = 0;
        	 String str = "";
     
        	 FileInputStream fis = new FileInputStream("c:\\SVI.csv");
        	 BufferedReader br = new BufferedReader(new InputStreamReader(fis)));
        	 while ((str=br.readLine())!=null)
        	              {
        	              if(str.startsWith("OK;"))
        	                 count++;
        	              }
        	 System.out.println(count);
    mon fichier fait entre 300 et 500 lignes... Le temps d'exécution pour compter les lignes qui commencent par "OK" ne sera t-il pas trop important?

    Car si j'ai bien compris JAVA liste les ligne une à une pour les compter...
    oui comme n'importe quelle autre langage..
    pour conaitre le nombre de ligne tu n'a d'autre choix de lire le fichier complet.
    (a moins d'avoir cette info en debut de fichier)

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 48
    Points : 17
    Points
    17
    Par défaut
    Bah écoute ça fonctionne nikel merci.
    Rien autre à ajouter mise à part Résolu.

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

Discussions similaires

  1. Compter les lignes d'un fichier CSV à partir d'une ligne
    Par miniRoshan dans le forum Général Java
    Réponses: 6
    Dernier message: 03/06/2010, 11h16
  2. Réponses: 4
    Dernier message: 02/06/2010, 17h23
  3. Programme pour compter les lignes d'un fichier texte?
    Par codon21 dans le forum Windows
    Réponses: 1
    Dernier message: 19/03/2009, 07h36
  4. Réponses: 3
    Dernier message: 04/03/2009, 11h50
  5. [CSV] Compter les lignes d’un fichier csv
    Par sam01 dans le forum Langage
    Réponses: 3
    Dernier message: 24/01/2007, 11h16

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