Lire un fichier morceaux par morceaux

Fermé
KiraX10A Messages postés 230 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 29 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 :)
A voir également:

1 réponse

Je suis pas au top mais je sais que comme sa sa marche chez moi !

char valeur;
file *Readvaleur;
Readvaleur= fopen(".../cgi-bin/valeur.txt","r");
fscanf (Readvaleur, "%c", &valeur);
printf("%c", valeur);

Bonne chance !
0
EDIT : Tu peut le faire en PHP c'est plus simple ^^.
0