Petit programme en C => les fichiers

Fermé
heroux67 Messages postés 21 Date d'inscription mardi 23 septembre 2008 Statut Membre Dernière intervention 6 novembre 2008 - 24 sept. 2008 à 09:08
heroux67 Messages postés 21 Date d'inscription mardi 23 septembre 2008 Statut Membre Dernière intervention 6 novembre 2008 - 24 sept. 2008 à 13:41
Bonjour,

Voici mon problème :

Je souhaiterais avoir un document excel contenant toutes les villes de france avec leurs codes postaux ainsi que le code que l'INSEE leur attribue.

J'ai quatre fichiers :
Le premier fichier ( que j'ai nommé FRANCE08 ), téléchargé sur le site de l'INSEE contiens les villes + leurs CODE INSEE, mais pas le code postal.

Le second fichier ( nommé villes_INSEE ), téléchargé sur Internet contiens les villes + le code INSEE + le code postal de chaques ville.
Cependant, le fichier 2 contiens des villes erronées ( commune périmée en général ).

Les fichier 3 et fichier 4 sont vierges.

Mes deux fichiers sont présentés sous trois colones : Ville / Code INSEE / Code Postal sous exel.

Afin d'effectuer mon traitement, j'ai modifié mes documents "nom.xls" en "nom.txt".

Les lignes présentes dans le document texte sont sous forme :

nom ville ( tabulation ) code INSEE ( tabulation ) Code Postal ( <= les tabulation sont importantes : à la fin du traitement je veux remettre mon fichier"nom.txt" en format "nom.xls". Les tabulation servent donc à distinguer les trois cellules.

J'ai déjà commencé à réffléchir à la solution et voici ce que je compte entreprendre :

Je souhaite ouvrir le fichier1 pour concatener le nom de la ville avec son code INSEE ( afin d'etre sur qu'elle est unique ).
Ensuite, ouvrir le fichier2 afin de rechercher si l'expression "VILLE+CODE INSEE" existe dans celui ci.

Si on trouve la meme expression, alors on importe la ligne " VILLE + CODE INSEE + CODE POSTAL " trouvée dans le fichier2 dans le fichier 3.

Sinon, si "VILLE + CODE INSEE " du fichier 1 n'éxiste pas dans le fichier 2, alors on l'importe dans le fichier 4, ou je ferais la recherche à la main.

Et on fait ce traitement tant que EOF du fichier 1 n'est pas égale à TRUE.


Ayant une premiere année de BTS IRIS à mon actif, j'ai déjà trouvé comment ouvrir les fichiers.

Ce soir, je compte chercher comment pouvoir les lire lignes a lignes.

Mais je me demande comment faire pour " comparer et copier/coller " les lignes dans les fichiers.

De plus, si l'un de vous trouvais une methode plus simple, je l'écouterais volontier.

Merci d'avoir pri le temps de me lire ainsi que pour votre aide ( sinon je devrais faire les 40 000 villes une a une =/ ) :).

PS : N'ayant pas le droit de programmer sur mon lieu de travail, je ne peux mettre en oeuvre les codes que le soir.

2 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
24 sept. 2008 à 10:14
Salut.
Je penses que tu as presque tout.
Le mieux c'est d'avoir un bon lien :
https://en.cppreference.com/w/cpp/string/byte
tu y trouvera toutes les fonctions pour manipuler des chaines de caractères (comparaison, copie etc.)
Je te recommande de faire attention à la casse pour comparer tes lignes et aux accents (si un fichier utilise des majuscules ou des caractères et l'autre non, tu aura des soucis).
Pour lire une ligne, il suffit d'utiliser scanf :
char *ville,*CP,*INSEE;
scanf("%s\t%s\t%f",ville,CP,INSEE);

Bonne chance
0
heroux67 Messages postés 21 Date d'inscription mardi 23 septembre 2008 Statut Membre Dernière intervention 6 novembre 2008
24 sept. 2008 à 13:41
Merci de ton aide.

Ton lien vas bien m'aider :) .

Je vais continuer à faire mes recherches et je mettrais a jour ce dossier si j'ai un probleme.. ou la solution :D
0