Lecture chaines de caractères dans un fichier

cs_sandy27 Messages postés 20 Date d'inscription lundi 10 octobre 2005 Statut Membre Dernière intervention 6 août 2008 - 19 nov. 2005 à 15:37
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 - 20 nov. 2005 à 18:56
je veux lire dans un fichier des chaines de caractères qui vont contenir d'autres fichiers dont je devrai lire les données par la suite. Exemple:


nom_fichier_entree1 nom_fichier_sortie1
nom_fichier_entree2 nom_fichier_sortie2

j'arrive à lire mon fichier ligne par ligne mais après j'arrive pas dire que telle partie de la ligne c'est mon fichier de sortie et telle partie c'est le fichier d'entrée. Et si je ne met chaque nom de fichier sur une ligne différente, je n'arrive pas à faire une lecture correcte des noms. En plus, le programme va boucler sur les noms de fichiers et à chaque appel du programme il lui faudra le fichier d'entrée à traiter et le fichier de sortie. Je m'arrache les cheveux !! help svp !!!

5 réponses

yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
19 nov. 2005 à 16:59
Voilà du code qui devrait te convenir :



#define TAILLEBUFFER 1024

#define ZERO_FIN 1

static char Texte[TAILLEBUFFER + ZERO_FIN];

static char NomFichierEntree[TAILLEBUFFER + ZERO_FIN];

static char NomFichierSortie[TAILLEBUFFER + ZERO_FIN];
FILE * Fichier = fopen(CheminFichier, "r");
while(fgets(Texte, TAILLEBUFFER, Fichier))
{

i = 0;

while (Texte[i] != ' ') i++;

//1ère ligne

strcpy(NomFichierEntree, Left(Texte, i));

strcpy(NomFichierSortie, Right(Texte, strlen(Texte) - i - 1));



//etc...



}
fclose(Fichier);



char * Left(char * Texte, int Nb_Caract)

{

static char Resultat[] = "";

if (Nb_Caract >= 0 && Nb_Caract <= strlen(Texte) )

{

strncpy (Resultat, Texte, Nb_Caract);

Resultat[Nb_Caract] = '\0';

}

return Resultat;

}



char * Right(char * Texte, int Nb_Caract)

{

static char Resultat[] = "";

int Longueur = strlen(Texte);

if (Nb_Caract >= 0 && Nb_Caract <= Longueur )

{

strncpy(Resultat, Texte + (Longueur - Nb_Caract), Nb_Caract);

Resultat[Nb_Caract] = '\0';

}

return Resultat;

}



Tiens moi au courant.


YOYO, @+.
YOYO
0
Hylvenir Messages postés 364 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 octobre 2006 2
19 nov. 2005 à 19:50
Salut,

comme pas de langage précisé, voici une version C++ sous réserver du bon

formattage du fichier, une utilisant un buffer pourrait être utilisé pour validé

le format du fichier (présence de deux colonnes )




ifstream fileConfig( "fichier.txt" );



string filenameIn, filenameOut;

while( fileConfig >> filenameIn >> filenameOut )

    cout << "Fichier Entr&#233;e : " << filenameIn << " - "

           << "Fichier Sortie : " << filenameOut << endl;




Ma participation à la saturation du net:
http://hylvenir.free.fr
0
cs_sandy27 Messages postés 20 Date d'inscription lundi 10 octobre 2005 Statut Membre Dernière intervention 6 août 2008
20 nov. 2005 à 14:40
en effet, j'ai oublié de préciser que je codais en C !!
0
cs_sandy27 Messages postés 20 Date d'inscription lundi 10 octobre 2005 Statut Membre Dernière intervention 6 août 2008
20 nov. 2005 à 15:10
yoyo269, ton code marche super, pile ce qu'il me fallait ! merci !
0

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

Posez votre question
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
20 nov. 2005 à 18:56
Merci sandy27, ça fait plaisir.
Juste clique sur le bouton "réponse acceptée" sur le (ou les) post(s) qui t'a (ont) aidée.

YOYO, @+.
YOYO
0
Rejoignez-nous