KiraX10A
Messages postés230Date d'inscriptionjeudi 29 janvier 2009StatutMembreDernière intervention29 décembre 2016
-
14 sept. 2009 à 17:55
Evan -
5 nov. 2009 à 13:12
Bonjour,
Voila, en fait je dois coder un programme en C/C++ afin de lire deux fichiers.csv (que j'ouvre avec Excel) et les comparer colonnes par colonnes.
Les colonnes sont délimitées par des ";", ce que je voudrais faire c'est lire le fichier ligne par ligne et comparé ce que j'ai lu avec l'autre fichier.
En gros, lire une chaine de caractere, m'arreter au ";", sauvegarder cette chaine et faire de meme pr l'autre fichier pour ensuite comparer ces deux chaine et continuer ainsi.
J'en suis pr le moment a ouvrir le premier fichier, a le lire, et a sauvegarder la chaine de caractères située avant le premier ";" dans une variable que j'essaye d'afficher ensuite.
Problème, celà ne fonctionne pas et je ne voit pas ou ca cloche. je pense que c'est dans mon strcpy mais je ne trouve pas :s.
// Comparaison fichiers.cpp : définit le point d'entrée pour l'application console.
//
/////////////////////
/// Bibliothèques ///
/////////////////////
#include <stdafx.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
////////////////////////////////
/// Déclaration de Variables ///
////////////////////////////////
#define TAILLE_MAX 100000
char morceaux_sauvegarde[100000];
///////////////////////////
/// Programme Principal ///
///////////////////////////
int _tmain(int argc, _TCHAR* argv[])
{
///////////////////////////////////////////////
/// Ouverture et lecture du premier fichier ///
///////////////////////////////////////////////
FILE *fichier1 = NULL; // Défini un pointeur sur fichier initialisé à 0.
char ContenuFichier[TAILLE_MAX] = ""; // Défini une variable de type caractère de taille 1000
fichier1 = fopen("C:\\Documents and Settings\\bastien\\Bureau\\Offres - Tables EDI Excel\\20090727-TABLES_EDI.csv", "r"); // Ouvre le fichier en lecture
if(fichier1 != NULL) // Test si le fichier a bien été ouvert
{
printf("Voici le fichier demande: \n\n"); // Confirme l'ouverture
while(fgets(ContenuFichier, TAILLE_MAX, fichier1) != NULL); // Lis le contenu de fichier1 ligne par ligne tant que l'on atteint pas la fin du fichier
{
for(int i = 0; i < 8; i++) // Pour i=0, tant que i est inférieur à 8, on incrémente i
{
do // Tant que ContenuFichier est différent du symbole ";", on sauvegarde ContenuFichier et affiche morceaux_sauvegarde
{
//printf("%s \n", ContenuFichier); // Affiche le contenu de fichier1
strcpy (*morceaux_sauvegarde, *ContenuFichier); // On sauvegarde ContenuFichier dans morceaux_sauvegarde
printf("%s", morceaux_sauvegarde);
}
while(ContenuFichier != ";");
}
}
fclose(fichier1); // Ferme le fichier
}
else // Suite du test de l'ouverture du fichier
{
printf("L'ouverture du fichier a echoue \n"); // Indique que l'ouverture a échouée
}
////////////////////////////////////////////////
/// Ouverture et lecture du deuxième fichier ///
////////////////////////////////////////////////
return 0;
}
J'espere avoir été assez clair et que qqun pourra m'aider. merci :)
5 nov. 2009 à 13:12