Appareillage de 2 fichiers

Résolu
cs_radada Messages postés 488 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 21 avril 2009 - 19 sept. 2005 à 11:44
joe075 Messages postés 3 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 9 mars 2008 - 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.

11 réponses

cs_radada Messages postés 488 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 21 avril 2009 1
20 sept. 2005 à 12:21
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.
@+
3
ashboody Messages postés 91 Date d'inscription samedi 30 mars 2002 Statut Membre Dernière intervention 11 octobre 2005
19 sept. 2005 à 12:07
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
0
cs_radada Messages postés 488 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 21 avril 2009 1
19 sept. 2005 à 12:49
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.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 sept. 2005 à 12:54
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++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_radada Messages postés 488 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 21 avril 2009 1
19 sept. 2005 à 13:02
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 ;)
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 sept. 2005 à 13:16
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++
0
cs_radada Messages postés 488 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 21 avril 2009 1
19 sept. 2005 à 13:20
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!! :) ))
0
cs_radada Messages postés 488 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 21 avril 2009 1
20 sept. 2005 à 08:51
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.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
20 sept. 2005 à 10:24
Sous Unix et tu ne l'as pas précisé de suite, terroriste...
Je passe donc mon chemin.

ciao...
BruNews, MVP VC++
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
20 sept. 2005 à 11:56
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...
0
joe075 Messages postés 3 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 9 mars 2008
26 févr. 2008 à 14:22
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
0
Rejoignez-nous