begin process at 2012 05 29 22:59:27
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

Fichier & Disque

 > 

Lecture dans un fichier texte


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Lecture dans un fichier texte

jeudi 30 juillet 2009 à 16:06:28 | Lecture dans un fichier texte

Hyperpenguin



Bonjour,

J'ai un problème avec une fonction qui doit me servir à lire des infos dans un fichier de configuration pour une application que je développe. C'est probablement une erreur bête mais je ne la vois pas. J'ai crée un fichier conf.txt, qui contient:

Reader0=1
Reader1=0
Reader2=0
Reader3=0
Reader4=0
Reader5=0
Reader6=0
Reader7=0
Reader8=0
Info1=1
Info2=1
POLLINGTIME=50000



Pour l'instant je cherchais juste à lire le fichier ligne par ligne:

Code C/C++ :
uint32_t ParseConfigFile(void)

{
FILE *safe;
char toto[50];
if((safe=fopen("conf.txt","r"))!=NULL)
{
while( NULL != (fgets(toto, 32, safe)) )
{

printf("config: %s",toto); //affichage de la ligne lue
}
fclose(safe);
}
return 0;
}


mais en sortie j'obtiens ça:

config: Reader0=1
config: Reader1=0
config: Reader2=0
config: Reader3=0
config: Reader4=0
config: Reader5=0
config: Reader6=0
config: Reader7=0
config: Reader8=0
config: Info1=1config:
config: Info2=1config:
config: POLLINGTIMEconfig: =50000



Les 3 dernières lignes comportent des erreurs!
J'ai l'impression qu'il y a des caractères qui trainent dans mon fichier texte mais j'ai beau le réécrire l'erreur reste la même...
Si vous pouviez m'orienter sur la bonne voie ça m'aiderais beaucoup!
Merci d'avance!


jeudi 30 juillet 2009 à 16:18:13 | Re : Lecture dans un fichier texte

katerson

Réponse acceptée !

Bizarre...
Tu as le même soucis si tu vides ton buffer après avoir affiché?
memset (toto, '\0', sizeof(toto));

jeudi 30 juillet 2009 à 16:36:44 | Re : Lecture dans un fichier texte

Hyperpenguin



Bon bin j'ai vu le problème envolé lorsque j'ai avancé dans mon algorithme:

Code C/C++ :
uint32_t ParseConfigFile(void)

{
int dwIndex=0;
int nbLigne=0;
FILE *fichier;
char ligne[64];
char champ[16];
if((fichier=fopen("conf.txt","r"))!=NULL)
{
while( NULL != (fgets(ligne, sizeof(ligne), fichier)) )
{
nbLigne++;
printf("config line %d: %s",nbLigne,ligne);
while(ligne[dwIndex]!='=')
{
dwIndex++;
if(dwIndex>sizeof(ligne)) break;
}
if(!(dwIndex>sizeof(ligne)))
{
memcpy(champ,ligne,dwIndex);
champ[dwIndex]='\0';
printf("champ: %s\n",champ);
}
}
fclose(fichier);
}
return 0;
}


Mais effectivement Katerson avec ta ligne en plus après chaque printf ça m'enlève effectivement l'erreur d'avant...Je trouves pas ça logique, puisque si on à une ligne court suivi d'une ligne longue, la ligne longue écrase la ligne courte et donc lors d'un printf il ne reste plus qu'un seul caractère de fin de ligne... alors qu'au contraire si on à une ligne longue suivie d'une ligne courte, on pourra avoir deux caractère de fin de ligne dans le buffer mais le premier, celui de la ligne courte, sera vu, et l'autre non, et la encore aucun problème.

Dans tout les cas merci de ta réponse, j'en tiendrais compte!



Cette discussion est classée dans : fichier, texte, config, safe, quote


Répondre à ce message

Sujets en rapport avec ce message

Ecrire ds un fichier dans un fichier texte ce ki apparait ds une console dos [ par BennyB ] Es-ca possible ???J'ai essayé gets(string); fwrite( stdout, sizeof( char ), 250, OutFile ); fclose( OutFile );ms ca marche pas :( Compter les lignes d un fichier texte [ par DeepThroat ] Bonjour a tous !J'aimerai trouver une fontion simple qui retourne le nombre de lignes dans un fichier , ou bien qui affiche ce nombre de lignes.j'imag ouvrir un fichier texte [ par kawazaki ] Salut Je voudrais ouvrir un fihier texte et ecrire a l'interieur puis faire la sauvegarde sur le disque.comment je procéde?merci pour la réponse recuperation de donnees d un fichier texte. [ par coyotedef ] j'aimerai recuperer des donnees presente dans fichier texte et les classer dans un tableau. ces donnees sont toutes du meme format mais se trouve au m config.msi [ par coockiesch ] Hello! J'ai créé un exe et créé avec visual studio un installateur. Je peux installer mon prog sans problême mais lorsque je veux le désinstaller j'ob lire/ecrire fichier texte a plusieurs colonnes [ par denini ] voilà, j'aimerais ecrire et lire sur un fichier texteJe voudrais stocker une date, une valeur et un nbet ce pour N clients.Je voudrais que le fichier ecrire et lire un fichier texte [ par denini ] voilà, j'aimerais ecrire et lire sur un fichier texteJe voudrais stocker une date, une valeur et un nbet ce pour N clients.Je voudrais que le fichier Acquisition de Données a partir d'un fichier texte [ par madcow41 ] 'lutBon j'ai un fichier qui contient des lignes formées ainsi :123.145.569.188 - - [12/Apr/2001:00:08:49 +0200] "GET /pagehtml.htm HTTP/1.x" et le res gestion de fichier [ par franc015 ] salut !!!voila je débute et je dois faire un prog. je dispose d'un fichier texte ( en fait une liste de fichier avec des retours chariot entre chaque Ecriture de fichier texte & Séparateur !! [ par Misutsu ] bonjour :)C'est la première fois que j'ai à utiliser des fichiers en C++, et je vois que l'espace sert de séparateur.Dans mon cas, j'ai besoin d'enreg


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,499 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales