begin process at 2012 05 28 18:37:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

comparaison de 2 fichier,AU SECOUUUUURS!!!


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

comparaison de 2 fichier,AU SECOUUUUURS!!!

dimanche 12 juin 2005 à 16:30:34 | comparaison de 2 fichier,AU SECOUUUUURS!!!

ylovechichi

slt tout le monde,je voudrais faire une comparaison entre 2 fichiers.bon je vais vous expliquer cke je veux exactement. j'ai 2 fichiers ville1 et ville2 je lai ouvre en lecture je parcours les valeurs du fichier1 et fichier2 si je trouve une valeur differente je stock ds un autre fichier ke j ouvre en écriture la valeur du fichier1.

par exemple:
fichier ville1 :16y 56 98p 1k
fichier ville2 :78a 9s 2y 56
fichier comp :16y 98p 1k
le fichier comp est le résultat ke je voudrais avoir

merci d'avance

int comparer(char trad_ville1[10],char trad_ville2[10])
{
int i,j;


cout<<"comparaison"<<endl;
ofstream fichier_comp("comparaison.txt",ios::app);
ifstream fichier_ville1("ville1.txt");
if (!fichier_ville1)
{
cerr << "Impossible d'ouvrir le fichier!" << endl;
return (-1);
}

ifstream fichier_ville2("ville2.txt");
if (!fichier_ville2)
{
cerr << "Impossible d'ouvrir le fichier!" << endl;
return (-1);
}



while (!fichier_ville1.eof())
{
fichier_ville1>>trad_ville1;

while (!fichier_ville2.eof())
{
fichier_ville2>>trad_ville2;

if (trad_ville1[i]!=trad_ville2[j])
{
j++;
cout<<trad_ville1[i];
fichier_comp<<trad_ville1;
}

i++;


}
}

fichier_ville1.close();
fichier_ville2.close();
fichier_comp.close();

}

merci d'avance
dimanche 12 juin 2005 à 16:45:29 | Re : comparaison de 2 fichier,AU SECOUUUUURS!!!

luhtor

Je comprend meme pas ce que tu veux faire.
Ton fichier comp, il devrait pas plutot contenir ca:

fichier ville1 :16y 56 98p 1k
fichier ville2 :78a 9s 2y 56
fichier comp :16y 98p 1k 78a 9s 2y

explique toi mieux, ton programme, il a un pb ? j'ai la flemme de regarder, dis nous ce qu'il ne va pas.

Dans tous les cas, c'est étonnant ton code la:
while (!fichier_ville1.eof())
{
fichier_ville1>>trad_ville1;

while (!fichier_ville2.eof())
{
fichier_ville2>>trad_ville2;

if (trad_ville1[i]!=trad_ville2[j]) // <========== tu fais quoi la ? tu veux tester quoi ?
{
j++;
cout<<trad_ville1[i];
fichier_comp<<trad_ville1;
}

i++;

}
}
dimanche 12 juin 2005 à 17:15:10 | Re : comparaison de 2 fichier,AU SECOUUUUURS!!!

ylovechichi

slt , mnt j modifié 1 peu mon code.cki ne marche pas c k il me affiche tout simplement les données ke j'ai stocké ds le fichier ville_1

fichier_ville1 ::16y 56 98p 1k
fichier_ville2 :78a 9s 2y 56
le résultat sera ds fichier comp :16y 98p 1k 
seulement les valeurs différente du fichier_ville1.

j espere ke vous comprenez mieux mon code.merci

int comparer()
{
 int i,j,k;
 cout<<"comparaison"<<endl;
 ofstream fichier_comp("comparaison2.txt",ios::out);
 ifstream fichier_ville1("ville1.txt",ios::in);
 if (!fichier_ville1)
 {
   cerr << "Impossible d'ouvrir le fichier!" << endl;
  return (-1);
 }

 ifstream fichier_ville2("ville2.txt",ios::in);
 if (!fichier_ville2)
 {
  cerr << "Impossible d'ouvrir le fichier!" << endl;
  return (-1);
 }

 while (!fichier_ville1.eof())

 {
       i=0;
        fichier_ville1>>trad_ville1;
        while ( !fichier_ville2.eof() )
        {
        j=0;
       fichier_ville2>>trad_ville2;

    if (trad_ville1[i]!=trad_ville2[j]) /*c ici ke je fais la comparaison entre les valeurs du fichier_ville1 et fichier_ville2*/
       j++;
        }

     cout<<trad_ville1<<"\t";
     fichier_comp<<trad_ville1<<"\t";
        i++;

 }
fichier_comp.close();
fichier_ville1.close();
fichier_ville2.close();

}

dimanche 12 juin 2005 à 18:05:35 | Re : comparaison de 2 fichier,AU SECOUUUUURS!!!

luhtor

Ta la fonction ou tu fais la comparaison ne peux pas marcher.
if (trad_ville1[i]!=trad_ville2[j]) // ici tu compares des caractères et non les chaines comme tu veux le faire.

Personnellement je m'y prendrais autrement.
Déclares un vector ou tu stokes tous les éléments de fichiers 2.

#include <vector>

...

std::vector< std::string > file2;
std::string tmp;
while ( !fichier_ville2.eof() )
        {
             fichier_ville2 >> tmp;
             file2.push_back(tmp);
       }

// apres tu passes en revue chaque élément du fichier 1:
std::vector<std::string>::iterator it;
while (!fichier_ville1.eof() )
       {
             fichier_ville1 >> tmp;
             it = file2.begin();
             while ( (tmp != *it) && (it != file2.end())
                it ++;
            
             if ( it == file2.end()) fichier_comp << tmp <<" "; // si il n'a pas été trouvé.
            // tu mets ce que tu veux comme séparateur
       }

Bon j'ai pas testé, mais ca doit pas etre loin de fonctionner.
Aller ++
dimanche 12 juin 2005 à 19:44:46 | Re : comparaison de 2 fichier,AU SECOUUUUURS!!!

ylovechichi

#include <vector>

...

std::vector< std::string > file2;
std::string tmp;
while ( !fichier_ville2.eof() )
        {
             fichier_ville2 >> tmp;
             file2.push_back(tmp);     //je comprends pas bien cette ligne
       }

// apres tu passes en revue chaque élément du fichier 1:
std::vector<std::string>::iterator it;
while (!fichier_ville1.eof() )
       {
             fichier_ville1 >> tmp;
             it = file2.begin();
             while ( (tmp != *it) && (it != file2.end())
                it ++;
            
             if ( it == file2.end()) fichier_comp << tmp <<" "; // si il n'a pas été trouvé.
            // tu mets ce que tu veux comme séparateur
       }
dimanche 12 juin 2005 à 20:04:14 | Re : comparaison de 2 fichier,AU SECOUUUUURS!!!

luhtor

while ( !fichier_ville2.eof() )
        {
             fichier_ville2 >> tmp;
             file2.push_back(tmp);     //je comprends pas bien cette ligne
       }

quand tu fais fichier_ville2 >> tmp
 il prend la chaine de caratère a partir de la position courante jusqu'au prochain espace.
16y 56 98p 1k
 donc la première fois, fichier_ville2 >> tmp met en fait 16y dans tmp

file2.push_back(tmp) ne fait qu'ajouter la chaine contenu dans tmp dans le vector.


dimanche 12 juin 2005 à 20:27:09 | Re : comparaison de 2 fichier,AU SECOUUUUURS!!!

ylovechichi

merci bcp mais j 'ai 10 erreurs je ne sais pas comment les résoudre .
voici le code:

int comparer()
{
 int i,j;


 cout<<"comparaison"<<endl;
 ofstream fichier_comp("comparaison2.txt",ios::out|ios::app);
 ifstream fichier_ville1("ville1.txt",ios::in);
 if (!fichier_ville1)
 {
   cerr << "Impossible d'ouvrir le fichier!" << endl;
  return (-1);
 }

 ifstream fichier_ville2("ville2.txt",ios::in);
 if (!fichier_ville2)
 {
  cerr << "Impossible d'ouvrir le fichier!" << endl;
  return (-1);
 }

std::vector< std::string > file2;
std::string tmp;
while ( !fichier_ville2.eof() )
        {
             fichier_ville2 >> tmp;  // c ici k il ya erreur
             file2.push_back(tmp);     
       }

std::vector<std::string>::iterator it;
while (!fichier_ville1.eof() )
       {
             fichier_ville1 >> tmp;   // meme ici
             it = file2.begin();
             while ( (tmp != *it) && (it != file2.end())  // ici ossi
                it ++;
            
             if ( it == file2.end()) fichier_comp << tmp <<" ";        }


fichier_comp.close();
fichier_ville1.close();
fichier_ville2.close();

}

merci pr votre aide

dimanche 12 juin 2005 à 21:23:03 | Re : comparaison de 2 fichier,AU SECOUUUUURS!!!

luhtor

Si tu l'as pas mis, il faut
#include <string>
en entete aussi.
dimanche 12 juin 2005 à 21:34:38 | Re : comparaison de 2 fichier,AU SECOUUUUURS!!!

luhtor

En fait, y avait quelques erreurs qui trainaient, voila une version correct:

int comparer()
{
 int i,j;


 cout<<"comparaison"<<endl;
 ofstream fichier_comp("comparaison2.txt",ios::out|ios::app);
 ifstream fichier_ville1("tmp1.txt",ios::in);
 if (!fichier_ville1)
 {
   cerr << "Impossible d'ouvrir le fichier!" << endl;
  return (-1);
 }

 ifstream fichier_ville2("tmp2.txt",ios::in);
 if (!fichier_ville2)
 {
  cerr << "Impossible d'ouvrir le fichier!" << endl;
  return (-1);
 }

std::vector< std::string > file2;
std::string tmp;
while ( !fichier_ville2.eof() )
        {
             fichier_ville2 >> tmp;  // c ici k il ya erreur
             file2.push_back(tmp);    
       }

std::vector<std::string>::iterator it;

fichier_ville1 >> tmp;
while (!fichier_ville1.eof() )
       {
             it = file2.begin();
             while ((it != file2.end()) && (tmp != *it))
                it ++;
           
             if ( it == file2.end()) fichier_comp << tmp <<" ";
             fichier_ville1 >> tmp;
       }


fichier_comp.close();
fichier_ville1.close();
fichier_ville2.close();

}

Change les noms de fichier par contre.


dimanche 12 juin 2005 à 22:46:21 | Re : comparaison de 2 fichier,AU SECOUUUUURS!!!

ylovechichi

mnt bcp mieux 4 erreurs . voici  l 'erreur: c la meme erreur

binary '>>' : no operator defined which takes a right-hand operand of type 'class std::basic_string<char,struct std::char_traits<char>,class st

d::allocator<char> >' (or there is no acceptable conversion)





1 2 3

Cette discussion est classée dans : fichier, comp, trad, ville1, ville2


Répondre à ce message

Sujets en rapport avec ce message

aidez moi c vraiment urgent [ par ylovechichi ] slt tout le monde,je voudrais faire une comparaison entre 2 fichiers.bon je vais vous expliquer cke je veux exactement. j'ai 2 fichiers ville1 et vill ouvrir fichier texte [ par nono777 ] salut tout le mondeVoila, je viens de terminer un programme et j'aimerai lui apporter quelques modif.Lorsque l'utilisateur demande l'aide pour utilise Télécharger un fichier avec URLDownloadToFile() [compilateur dev C++] [ par NumeroXIII ] Salut je debute en programmation et j'aimerais savoir comment je pourrais utiliser URLDownloadToFile() avec dev C++. Merci d'avance. Lire un fichier texte ligne par ligne et copier les éléments dans une combo!!! [ par freepouy18 ] Salut à tous, j'ai un problème avec la copie de données provenant d'un fichier texte dans une combo. Voila mon code : std::ifstream fichier( "monfichi tableau à 2 dimentions ? [ par bboygab ] salut tout le monde en faite je suis sur un projet ou je dois créer un fichier .dat ou dedans je vai pouvoir mettre plusieur société dedans et chaque help chaine de caractère, concaténation... [ par bboygab ] salut tout le monde en faite je suis sur un projet ou je dois créer un fichier .dat ou dedans je vai pouvoir mettre plusieur société dedans et chaque Comparer une ligne d'un fichier avec la précédente [ par boudafc ] Voilà, j'ai un fichier où toutes les lignes sont en double.Ce que je voulais faire, c'est comparer une ligne par rapport à la précédente, mais voilà, VC++6 et fichier XML !!! [ par freepouy18 ] Bonjour,   <SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; m GLUt | devc++ | cygwin [ par themioux ] Salut à tousJe n'arrive pas à comprendre... j'ai fais un programme avec emacs for windows (habitué à Linux à la fac ^^) sur un PC où Cygwin est instal prog en C, ecriture puis lecture de donnees de donnees dans un fichier fichier txt [ par 01472583690 ] Salut a tous ! voici mon probleme : Dans mon programme l'utilisateur doit entrer des donnees ( des char (nom, ville .....) , ainsi que des int ( age,


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,716 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales