Appareillage de 2 fichiers [Résolu]

cs_radada 488 Messages postés lundi 15 septembre 2003Date d'inscription 21 avril 2009 Dernière intervention - 19 sept. 2005 à 11:44 - Dernière réponse : joe075 3 Messages postés mardi 26 février 2008Date d'inscription 9 mars 2008 Dernière intervention
- 26 févr. 2008 à 14:22
Waza!
J'ai un gros soucis pour le taf, et c'est assez complexe, donc cela risque d'être long, mais si une âme charitable comprends tout, ce serait le top :D:D:D:D

Alors voila : j'ai 2 fichiers donc la structure est identique. Ce sont des fichiers type CSV (champs séparés par des ;). Pour simplifier, on va considérer que chaque ligne de donnée ne contient que 2 champs : un identifiant unique et un autre champ. Les données sont classés suivant l'identifiant unique dans les deux fichiers.

Il faut que je fasse un appareillage des fichiers en trouvant :
1°) les données contenues dans un fichier, mais pas dans l'autre
2°) les données contenues dans l'autre fichier, mais pas dans le premier
3°) les données que je retrouve dans les 2 fichiers, mais avec le 2ème champ différent d'un fichier à l'autre.

Le tout bien sur avec des sauts dans les numéros uniques d'un fichier à l'autre...
Et lorsqu'il y a un écart, il me faut bien entendu les données du fichier 1 et du 2!!!!

Comme un schéma vaut mieux qu'un long discours, voila un exemple avec chaque fichier et le résultat attendu

Fichier 1 Fichier 2 Erreur? Données en retour
1;A (vide) O 1;A;' ';' '
2;A 2.A N
3.B O ' ';' ';3;B
4.Z O ' ';' ';4;Z
5;A 5;E O 5;A;5;E

Vala. J'espère que ce n'est pas trop confus, et j'espère trouver un cador qui me débloquera rapidement lol :D:D:D:D
Merci d'avance.
Afficher la suite 

11 réponses

Répondre au sujet
cs_radada 488 Messages postés lundi 15 septembre 2003Date d'inscription 21 avril 2009 Dernière intervention - 20 sept. 2005 à 12:21
+3
Utile
Nan ben merci à tous, mais on vient de trouver la solution pour parcourir tous les fichiers correctement, sans trop faire de merdier et sans rien oublier...
Si j'ai 2 minutes une fois les devs terminés, je poste l'algo (l'algo hein, pas le code : )) ).
MErci bcp pour votre aide et réactivité en tout cas.
@+
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_radada
ashboody 91 Messages postés samedi 30 mars 2002Date d'inscription 11 octobre 2005 Dernière intervention - 19 sept. 2005 à 12:07
0
Utile
tu file combien ? 100 balle et un mars ?

c'est pas un site pour obtenir des réalisation gratos ici ! c'est pour obtenir de l'aide.
A + et va voir ailleurs si on y est
Commenter la réponse de ashboody
cs_radada 488 Messages postés lundi 15 septembre 2003Date d'inscription 21 avril 2009 Dernière intervention - 19 sept. 2005 à 12:49
0
Utile
T'es con ou quoi???? Va chez un toubib si tu ne te sens pas bien.....

Je n'ai pas demandé de me faire un prog, mais si quelqu'un aurait une
idée d'algorythme puisque ce genre d'algo est un "classique" en
développement et reviens dans pas mal de cas de figure...

Maintenant si tu n'avais aucune idée, il suffisait de le dire au lieu d'envoyer chier les gens comme ça...

A bon entendeur.
Commenter la réponse de cs_radada
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 19 sept. 2005 à 12:54
0
Utile
ashboody > du calme, radada est sur CS depuis un moment déjà et a toujours été correct, il ne fait qu'exposer son problème.

radada > si les fichiers ne sont pas trop gros, charge tout dans 2 buffers et ballade 2 pointeurs dans chaque pour détailler par ligne, y a rien de sorcier là dedans. Si gros fichiers faudra boucler en lecture sur les buffers et repositionner les pointeurs de fichier.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
cs_radada 488 Messages postés lundi 15 septembre 2003Date d'inscription 21 avril 2009 Dernière intervention - 19 sept. 2005 à 13:02
0
Utile
lol salut Brunews :):):)

Content de te voir, ça faisait un bon moment que je n'étais pas passé
par ici... Surtout depuis que je n'ai plus de net au taf lol :D:D:D

Sinon, les fichiers font dans les 80-100 Mo en gros...

Ce qui m'emmerde, c'est comment parcourir les fichiers rapidement, sans
rien oublier, et sans faire une boucle avec 500 milliards de tests. Je
ne vois pas comment faire un algo propre avec un minimum de tests et
qui me gère tous les cas de figure....

Toi qui est un killer, si tu as une idée...

Merci en tout cas et @+ man ;)
Commenter la réponse de cs_radada
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 19 sept. 2005 à 13:16
0
Utile
http://www.cppfrance.com/code.aspx?id=25258
exemple détail par ligne
Par contre il te faudra boucler sur buffer car gros fichiers, exemple ici:
http://www.cppfrance.com/code.aspx?id=19169

en mixant tout cela tu devrais y arriver, fais des test sur de petits fichiers pour mettre au point ton algo.
Désolé mais pas le temps de te le faire complet.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
cs_radada 488 Messages postés lundi 15 septembre 2003Date d'inscription 21 avril 2009 Dernière intervention - 19 sept. 2005 à 13:20
0
Utile
lol merci bcp brunews...

Je ne demandais pas de le faire, mais de me donner des pistes :D:D

Merci bcp, je fais regarder tout ça cet AM au taf, et je repost s'y un soucis.

Merci bcp chef!! :) ))
Commenter la réponse de cs_radada
cs_radada 488 Messages postés lundi 15 septembre 2003Date d'inscription 21 avril 2009 Dernière intervention - 20 sept. 2005 à 08:51
0
Utile
Yo!
Finalement, je ne peux pas faire grand chose avec les sources ci dessus : d'abord parce, j'ai oublié de la préciser, je suis sous UNIX!!! Donc pas de windows.h à ma connaissance....
Et en fait, c'est plutôt la façon d'appareiller les fichiers qui me manque....
En fait, je ne sais pas si je casse le dos à essayer de parcourir simultanément les 2 fichiers en recherchant les différences, ou alors si je fais une passe sur un fichier, je monte les différences en mémoire, et je recommence sur le deuxième.... Finalement, je ne sais pas si ce sera moins rapide que de parcourir les 2 fichiers en même temps en faisant un algo de folie non????
Merci d'avance.
Commenter la réponse de cs_radada
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 20 sept. 2005 à 10:24
0
Utile
Sous Unix et tu ne l'as pas précisé de suite, terroriste...
Je passe donc mon chemin.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
BunoCS 13758 Messages postés lundi 11 juillet 2005Date d'inscription 19 avril 2018 Dernière intervention - 20 sept. 2005 à 11:56
0
Utile
C'est peut-être bête ce que je vais dire (désolé, je ne maîtrise pas unix...) mais t'as pas moyen de faire un diff et de rediriger le résultat dans un fichier?

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Commenter la réponse de BunoCS
joe075 3 Messages postés mardi 26 février 2008Date d'inscription 9 mars 2008 Dernière intervention - 26 févr. 2008 à 14:22
0
Utile
Hello,

Je m'entraîne sur le même type de sujet,  2 fichiers à rapprocher en un fichier final selon un certain critère... Une idée de l'algo? Merci beaucoup... Joe
Commenter la réponse de joe075

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.