Aide pour ce prog

Aide pour ce prog - C - Programmation

Marsh Posté le 17-02-2012 à 11:41:58    

Salut
 
Je bloque pour l'écriture de ce prog :  
on a 2 fichiers de nombre cf ci-dessous fichier1.txt et fichier2.txt,  
Je souhaite exclure les nombres du premier fichier par rapport
au second fichier en effet si un nombre de fichier1.txt est trouvé dans le fichier2.txt alors il n'est pas écrit dans  
le fichier resultat.txt.
Et je souhaite faire cela pour tous les nombres de fichier1 par rapport à fichier2 et écrire les résultats dans resultat.txt.
 
 
 
fichier1.txt  
------------
2578
1787
8789
 
fichier2.txt  
------------
7612
1787
5556
3322
2578
 
 
resultat.txt
------------
8789

Reply

Marsh Posté le 17-02-2012 à 11:41:58   

Reply

Marsh Posté le 17-02-2012 à 11:47:48    

J'ai oubliais : merci d'avance pour votre aide.

Reply

Marsh Posté le 17-02-2012 à 11:47:50    

Dans fichier 1 et fichier 2, les valeurs sont uniques, ou bien un même nombre peut figurer plusieurs fois dans un même fichier?
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 17-02-2012 à 11:49:54    

Merci pour la réponse rapide : ils sont uniques.

Reply

Marsh Posté le 17-02-2012 à 12:52:21    

De tête, un truc comme ça devrait le faire:
1) tu tries tes fichiers (éventuellement, tu sauves les fichiers triés en fichiers temporaires trié1 et trié2) par ordre croissant.
2) tu avances dans trié1 et trié2 en comparant les valeurs et en faisant en sorte que chaque fois que la valeur courante de l'un des deux dépasse le valeur courante de l'autre, tu avance dans l'autre jusqu’à la dépasser. Si au cours de cette comparaison, une valeur de trié1 est dépassée sans avoir été trouvée dans trié2, on la met dans fichier3. Si on arrive a la fin de trié2, on met toutes les valeurs restantes de trié1 dans fichier3. Quand on arrive a la fin de trié1 on s’arrête.
 
Notes que C est pas très bien adapté pour ce genre de manipulations sur le contenu de fichiers. En Perl, ce serait bien plus simple.
 
A+,


Message édité par gilou le 17-02-2012 à 12:54:24

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 17-02-2012 à 17:09:28    

Merci mais je préfère rester en C (car j'ai de tout petit reste d'un prog fais en 2005 en C).
Voilà, en fait j'ai commencé par faire cela :  
je mets les valeurs de fichier1 dans un tableau tab1 et je fais idem pour fichier2 je mets dans tab2.
Puis je compare le premier contenu de tab1 avec tous les contenus de tab2. Si pas trouver alors écrit dans fichier3.
Je passe au second contenu de tab1 ...
 
Bon voilà le C/perl et moi sa fait deux, je m'y mets en espérant y arrivé dans les temps. C'est à dire avant Samedi midi.
 
 

Reply

Marsh Posté le 17-02-2012 à 19:10:55    

Bien sur que tu peux faire comme cela, c'est juste que tu fais ça de manière complètement inefficace si tu tries pas tes tableaux au départ.
Mais bon, si ça te gène pas de perdre du temps dans l’exécution, pourquoi pas. Tout dépend du nombre de lignes de ton 2e fichier. Plus il est gros, plus tu perdras du temps.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 02-03-2012 à 20:43:19    

Code :
  1. unsigned int Tab1[3];
  2. unsigned int Tab2[5];
  3. unsigned int Tab3[1];
  4. char i,j;
  5. void main (void)
  6. {for(i=0;i<2;i++)
  7.     {for(j=0;j<4;j++)
  8.       {
  9.         if(Tab1[i]!=Tab2[j])
  10.         Tab3[]=Tab1[i];
  11.            else Tab3[]=0;
  12.       }
  13.     }
  14. }


 
J'ai fait sa vite fait j'en sait rien si sa marche et je suis pas un pro du C  

Reply

Marsh Posté le 02-03-2012 à 21:42:46    

Ça se voit puisqu'il y a des erreurs flagrantes et que ça ne répond absolument pas à la question..
Pas le moindre intérêt de poster cela ici.
A+,


Message édité par gilou le 02-03-2012 à 21:43:25

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed