![]() |
||||||
SCR/AL1 - TOME III. Les librairies utilitaires
Le groupe s_cpp a été implémenté pour simplifier la lecture de fichiers plats contenant des directives comme #define, #ifdef ou encore #include. Il se limite à quelques fonctions de base qui remplacent en fait les fonctions de librairie standard comme fgetc(), fopen() ou fungetc(), mais rend transparent pour l'utilisateur le traitement fichiers inclus et autres directives classiques en programmation C.
Des fonctions supplémentaires rendent plus aisée l'interprétation d'un fichier en lisant un mot, un entier, un double, etc.
Fonctions d'ouverture, de fermeture et d'erreur
Fonctions de lecture de base
Fonctions de lecture élaborées
Définition de variables
Variables globales
Trois variables permettent d'adapter le comportement du programme en modifiant les caractères spéciaux. Ces variables peuvent être fixées à tout moment.
Ces caractères peuvent être fixés à 0 auquel cas les fonctionnalités associées sont annulées.
Exemple de traitement simple
Les fichiers test1 et test2 suivants:
Fichier test1
-------------
#define A
#define B 123
1:Début fichier 1
#ifdef A
1:Valeur de B : &B
#endif
#include test2
1:Fin du fichier 1
Fichier test2
-------------
2:Début fichier 2
2:&B
2:&B
2:Fin fichier 2
lus par le programme :
Readfile(filename)
char *filename;
{
CPPFILE *cpp;
int ch;
cpp = CppOpen(filename, 0)
if(cpp == 0) return(-1);
while(1) {
ch = CppGetc(cpp);
if(ch == EOF) break;
putchar(ch);
}
CppClose(cpp);
}
fourniront à la lecture le texte:
1:Début fichier 1
1:Valeur de B : 123
2:Début fichier 2
2:123
2:&B
2:Fin fichier 2
1:Fin du fichier 1
16.1 CppOpen (file s_cpp.c:115)
16.2 CppClose (file s_cpp.c:162)
16.3 CppError (file s_cpp.c:755)
16.4 CppPrintError (file s_cpperr.c:17)
16.5 CppGetc (file s_cpp.c:445)
16.6 CppUngetc (file s_cpp.c:351)
16.7 CppRecord (file s_cpp.c:224)
16.8 CppRecordLILO (file s_cpp.c:280)
16.9 CppSkipSpaces (file s_cppfns.c:15)
16.10 CppSkipToChars (file s_cppfns.c:42)
16.11 CppSkipToEol (file s_cppfns.c:123)
16.12 CppReadToChars (file s_cppfns.c:68)
16.13 CppReadLine (file s_cppfns.c:100)
16.14 CppReadOnlyChars (file s_cppfns.c:161)
16.15 CppReadWord (file s_cppfns.c:211)
16.16 CppReadLong (file s_cppfns.c:245)
16.17 CppReadDbl (file s_cppfns.c:270)
16.18 CppReadString (file s_cppfns.c:314)
16.19 CppReadQuotedString (file s_cppfns.c:363)
16.20 CppDefine (file s_cpp.c:649)
Copyright © 1998-2015 Jean-Marc Paul and Bernard PAUL - Envoyez vos remarques ou commentaires à bernard@xon.be