Présentation
Documentation
L'équipe
Sérialisation
 
Programmes
Objets
Libs Utilitaires
Libs Internes
   
 
Editeur
Syntaxes
Windows
Versions
   

SCR/AL1 - TOME III. Les librairies utilitaires

16. Le groupe s_cpp

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