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

VC++ .NET Discussion :

Probl�me de comparaison de cha�nes de caract�res


Sujet :

VC++ .NET

  1. #1
    Membre averti
    Inscrit en
    Ao�t 2008
    Messages
    9
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2008
    Messages : 9
    Par d�faut Probl�me de comparaison de cha�nes de caract�res
    J'�cris un code pour lire dans un fichier et r�cuperer les lignes dans des tableaux par exemple.
    voici le 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
    #include <string>
    #include <iomanip>
    #include <iostream>
    #include <fstream>
    #include <cstdlib>
    #include "ctype.h"
     
     
    int main()
    {
        int i;
        char buf[256];
        sprintf(buf,"D:\\Test\\table.txt");
        FILE *fp=fopen(buf,"r");
     
        if (fp==0) {exit(0); std::cout<<"Impossible d'ouvrir le fichier"<<std::endl;}
        else
        { 
          int j=1;
          while ( !feof(fp) )
               { fgets(buf,sizeof(buf),fp);
    	 std::cout <<"nom tab "<<j<<":"<< buf << std::endl;
    	 int a=0;
     
                  while ((strncmp(buf, ";\0",2)!=0)&&(!feof(fp)))
    	    {
    	       a++;
    	       fgets(buf,sizeof(buf),fp);
    	       std::cout <<"attribut "<<a<<":"<< buf << std::endl;
    	       int k=3;
     
    	       while (k!=0)
    	         {
    	            fgets(buf,sizeof(buf),fp);
    	            std::cout<< buf << std::endl;
    	            k--;	
    	          }
     
    	    }
     
    	}
         }
     
         fclose(fp);
         std::cout<<"c'est fini"<<std::endl;
    	char c = getchar();
    	return 0;
    }

    La boucle
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    while ((strncmp(buf, ";\0",2)!=0)&&(!feof(fp)))
    ne fonctionne car la valeur de la ligne n'est pas compar�e avec le ";". Je ne sais pas si j'utilise mal la fonction "strncmp" ou pas.
    J'ai besoin de votre aide!
    Fichiers attach�s Fichiers attach�s

  2. #2
    Membre �m�rite
    Avatar de Spout
    Profil pro
    Ing�nieur syst�mes et r�seaux
    Inscrit en
    F�vrier 2007
    Messages
    904
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : France, Val d'Oise (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur syst�mes et r�seaux

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 904
    Par d�faut
    Citation Envoy� par Ayelve Voir le message
    Je ne sais pas si j'utilise mal la fonction "strncmp" ou pas.
    Tu n'as pas besoin de placer un '\0' dans ta cha�ne de caract�res � comparer.
    De plus, comme j'ai du mal � comprendre ce que tu veux faire, je ne suis pas s�r que l'utilisation de cette fonction soit tr�s appropri�e ici.
    Enfin, ce n'est pas avec strncmp que l'on compare un seul caract�re.

  3. #3
    Membre averti
    Inscrit en
    Ao�t 2008
    Messages
    9
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2008
    Messages : 9
    Par d�faut
    Au fait, je voulais comparer la ligne lue du fichier avec ";". je voulais passer � la table suivante � chaque rencontre du caract�re ";".
    Voici le fichier que je suis entrain de lire:
    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
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
    VENTE
    numpro
    varchar2(10)
    not null
    oui, codepro(Produit)
    1
    nummag
    varchar2(10)
    not null
    oui, codemag(Magasin)
    1
    cletemps
    varchar2(10)
    not null
    oui, numtemps(Temps)
    1
    qtevend
    number(6)
    not null
    non
    1
    CA
    number(10)
    not null
    non
    1
    ;
    TEMPS
    numtemps
    varchar2(10)
    not null
    oui
    1
    jour
    int
    null
    non
    1
    mois
    int
    not null
    non
    12, (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
    annee
    int
    not null
    non
    3, (2007, 2008, 2009)
    ;
    Produit
    codepro
    varchar2(10)
    not null
    oui
    1
    libpro
    varchar2(10)
    not null
    non
    1
    marque
    varchar2(10)
    null
    non
    4, (française, chinoise, autres)
    categorie
    varchar2(10)
    not null
    non
    4, (boisson, épicerie, crêmerie, autres)
    ;
    Magasin
    codemag
    varchar2(10)
    not null
    oui
    1
    libmag
    varchar2(10)
    not null
    non
    1
    ville
    varchar2(10)
    not null
    non
    5, (Poitiers, Paris, Nantes, Lille, autres)

  4. #4
    Membre �m�rite
    Avatar de Spout
    Profil pro
    Ing�nieur syst�mes et r�seaux
    Inscrit en
    F�vrier 2007
    Messages
    904
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : France, Val d'Oise (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur syst�mes et r�seaux

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 904
    Par d�faut
    devrait suffire.
    Est-ce que �a fonctionne mieux?

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [MySQL] Probl�me de comparaison de cha�ne de caract�res
    Par Laurent64 dans le forum PHP & Base de donn�es
    R�ponses: 4
    Dernier message: 15/05/2007, 19h04
  2. R�ponses: 2
    Dernier message: 23/03/2006, 12h39
  3. R�ponses: 11
    Dernier message: 22/03/2006, 21h57
  4. [Configuration] probl�me de taille de cha�nes de caract�res
    Par Wormus dans le forum EDI, CMS, Outils, Scripts et API
    R�ponses: 8
    Dernier message: 21/10/2005, 14h55
  5. Probl�me pour ex�cuter une cha�ne de caract�res
    Par Pongo dans le forum MS SQL Server
    R�ponses: 3
    Dernier message: 02/09/2005, 10h34

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