Petit programme en C => les fichiers
heroux67
Messages postés
21
Date d'inscription
Statut
Membre
Dernière intervention
-
heroux67 Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
heroux67 Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
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.
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.
A voir également:
- Petit programme en C => les fichiers
- Renommer des fichiers en masse - Guide
- Programme demarrage windows - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Fichiers epub - Guide
- Mettre en veille un programme - Guide
2 réponses
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
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