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

C++Builder Discussion :

problème parsing csv


Sujet :

C++Builder

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Points : 288
    Points
    288
    Par défaut problème parsing csv
    bonjour,
    je sais que le problème a été déja posé mais:
    dans mon fichier csv les données sont séparé par des tabulatiosn, donc je ne sais pas quoi faire dans le séparateur de la fonction qui m'a été déja donnée par Sat83.

    voici une capture de mon fichier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    Cluster 1                  Score:1.66                           P_value
                                       Cellular differentiation        8.1E-3
                                       ProcessA                               7.6E-3
    ....
    ....
    Cluster 2                  Score:1.43                            P_value
                                        amine metabolic                4.5E-1
    ...
    ...

    merci de votre aides.

    Rq:

    La fonction proposée par Sat83 est: ( sachant que le séparateur est la virgule)

    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
     
    StringList *fichier = new TStringList();
    fichier->LoadFromFile( "file.csv" ) ;
     
      TStringList *ligne ;
      for( int i=0; i< fichier->Count; i++ )
     
      {
    	ligne = new TStringList() ;
    	ligne->Text = StringReplace(fichier->Strings[i], ';' , "\n", TReplaceFlags()<< rfReplaceAll );
    	Savecount=ligne->Count ;
    	for(int j=0; j < ligne->Count; j++)
     
    	{
    	  //....... traiter ()
     
    	}
    	delete ligne ;
      }
      delete fichier ;

  2. #2
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Salut,
    je dirai plus que le séparateur de ta fonction est le point virgule

    sinon le caractère tabulation est '\t'

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Points : 288
    Points
    288
    Par défaut
    salut poittiez,
    merci pour la réponse,
    j'ai déja essayé le '\t' mais mon programme entre dans une boucle infinie!!!
    une idée?

  4. #4
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Il faudrait savoir quel boucle est infini (j'en vois deux dans le code présenté) et connaitre le traitement total que fait la boucle

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Points : 288
    Points
    288
    Par défaut
    ok,
    voici la fonction telle qu'elle est dans mon projet,

    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
     
    // matching des clusters.
     
    int RowCount; AnsiString ligne ;
    TStringList *fichier = new TStringList();
    fichier->LoadFromFile(File_name ) ;
      RowCount = fichier->Count ;
      ShowMessage(String(RowCount));//nbre lignes
      for( int j=0; j< RowCount; j++ )
     
      {    ligne=fichier->Strings[j];
     
           TStringList *tocken=new TStringList();
           tocken->Text=  StringReplace( ligne,'\t', "\n",TReplaceFlags()<<rfReplaceAll);
           AnsiString result="";
           ShowMessage(   tocken->Count);//nbre mot dans la ligne j
           int i=0;
           while(i< tocken->Count){
           result=tocken->Strings[i];
           result.Trim();
           ShowMessage(result);//tocker i
           // ----ici je vais implémenter une fonction matching
                }// while
     
            delete tocken;
             }
      delete fichier ;
     
    ShowMessage("Mattching");

    le fichier à parser est en pièce jointe.

    merci d'avance
    Fichiers attachés Fichiers attachés

  6. #6
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Dans ta boucle while tu as oublié d'incrémenter ta variable i

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Points : 288
    Points
    288
    Par défaut
    merci infiiiiiiiiniment pottiez

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

Discussions similaires

  1. [PHP 5.3] Problème curieux de parsing .csv
    Par aurelien22 dans le forum Langage
    Réponses: 12
    Dernier message: 27/01/2012, 12h21
  2. [JAXB] Problème parsing XML avec XSD validant
    Par vano dans le forum Persistance des données
    Réponses: 2
    Dernier message: 26/08/2008, 09h59
  3. Problème parsing xml
    Par eidole62 dans le forum PL/SQL
    Réponses: 1
    Dernier message: 14/08/2008, 13h11
  4. Réponses: 9
    Dernier message: 06/12/2006, 00h41
  5. [CSV] Problème avec CSV et point virgules
    Par Lotz dans le forum Langage
    Réponses: 6
    Dernier message: 09/03/2006, 15h11

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