Un parseur en Cpp

Un parseur en Cpp - C++ - Programmation

Marsh Posté le 03-04-2003 à 15:37:22    

Bonjour,
 je voudrais faire un parseur, comme j'en ai deja fais en Delphi.
par contre mes soucis en C, comment ouvrir un fichier, lire une ligne car par car? (ou genre explode de php?)
 
et ecrire dans un autre?
 
merci ;)

Reply

Marsh Posté le 03-04-2003 à 15:37:22   

Reply

Marsh Posté le 03-04-2003 à 15:38:43    

utilise flex, il est parfait pour ça


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 03-04-2003 à 15:46:17    

AGA a écrit :

Bonjour,
 je voudrais faire un parseur,  


pourquoi?

AGA a écrit :


par contre mes soucis en C, comment ouvrir un fichier,  


fopen (pense à faire fclose)

AGA a écrit :


lire une ligne car par car? (ou genre explode de php?)


fscanf (f/read)

AGA a écrit :


et ecrire dans un autre?


fprintf (f/write)

Reply

Marsh Posté le 03-04-2003 à 17:23:40    

ok merci :)
 
Pourquoi un parseur?
C'est pour des reprises de données d'une vieille base vers une toute neuve.

Reply

Marsh Posté le 03-04-2003 à 17:30:28    

gloups, j'ai crû comprendre que tu voulais écrire un parser de C et pas en C ...  
Je pense qu'il y a des libs qui facilitent ton travail ... freshmeat.net, google, sourceforge, ...

Reply

Marsh Posté le 11-04-2003 à 10:48:14    

salut,
 
comment lire une ligne?
 
 
EN fait j'ai un fichier
où les séparateurs sont plus ou moins des tabulations :/
 
bref je penses ramener ligne par ligne et traiter la ligne ds une boucle (car par car)
 
donc j'arrive à ouvrir le fichier, lire, ecrire
mais apparement fscanf s'arrete au premier espace,
 
donc je en sais pas comment ramener une seule ligne ?
 
une idée?

Reply

Marsh Posté le 11-04-2003 à 11:01:39    

une recherche sur le forum

Reply

Marsh Posté le 11-04-2003 à 11:05:35    

oui fgets ;)
 
jdevrais y arriver  :o  :sweat:

Reply

Marsh Posté le 11-04-2003 à 11:16:18    

j'ai char string[256];
donc je devrais pouvoir faire  
 
printf(%c, string[i]);
 
non??

Reply

Marsh Posté le 11-04-2003 à 11:16:23    

C++ ou C tout court ??

Reply

Marsh Posté le 11-04-2003 à 11:16:23   

Reply

Marsh Posté le 11-04-2003 à 11:19:30    

AGA a écrit :

j'ai char string[256];
donc je devrais pouvoir faire  
 
printf(%c, string[i]);
 
non??


une ligne dans un fichier peut être beaucoup plus grande que 255 caractères (le dernier est '\0';)
tu fais malloc de 256
tu parcours tant que pas lu '\n' (avec fgetc)
si < 256,  
 tu ajoute,  
sinon
 realloc (+256)
 tu ajoute

Reply

Marsh Posté le 11-04-2003 à 11:20:32    

j'y pense: tu fais du C++ (parser Cpp)? getline de la classe ...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed