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

SCR/AL1 - TOME III. Les librairies utilitaires

5. Le groupe s_strs

5.117 FI_file (file s_file.c:113)

Syntax

int FI_file(tbl, inname, cmt, lg)
char **tbl;
char *inname, *cmt;
int lg;

Description

Analyse le fichier inname et retourne son type en fonction des paramètres passés dans tbl. Un commentaire de longueur maximum lg peut être retourné dans cmt si cette variable n'est pas nulle.

Le tableau passé comme premier paramètre indique les différents formats de fichiers reconnus. Le format de chaque ligne du tableau est déterminé par le premier caractère:

Si le type ne peut être déterminé par les données de tbl, la fonction recherche elle-même des indications dans le fichier. Dans ce cas, une valeur négative est retournée par la fonction, valeur correspondant à des define du fichier s_file.h.

Valeur retournée

numéro de l'entrée dans tbl si une entrée correspond ou valeur prédéfinie sinon

Valeurs prédéfinies

    #define FI_DIR         -1
#define FI_DATA -2
#define FI_EMPTY -3
#define FI_A2M -4
#define FI_FORTRAN -5
#define FI_ASCII -6

#define FI_C -10
#define FI_FORT -11
#define FI_MAKE -12
#define FI_PLI -13
#define FI_MACH -14
#define FI_ENG -15
#define FI_PAS -16
#define FI_MAIL -17
#define FI_NEWS -18

#define FI_UNKNOWN -100
#define FI_UNFOUND -101

Exemple

    char **MAGIC_DATA =  {
"1 string MakerFile FrameMaker document ",
"1 string MIFFile FrameMaker MIF file ",
"1 string MakerDic FrameMaker Dictionary ",
"1 string Book FrameMaker Book file ",
"0 string MZ DOS executable (EXE) ",
"0 string \037\213 gzip compressed data ",
"0 string \037\235 compressed data",
"0 string %! PostScript document ",
"1 string HTML HTML document ",
"1 string html HTML document ",
"2 string rtf RTF document ",
"0 string KOBJS IODE ",
">19 short 0 CMT file ",
">19 short 1 EQS file ",
">19 short 2 IDT file ",
">19 short 3 LST file ",
">19 short 4 SCL file ",
">19 short 5 TBL file ",
">19 short 6 VAR file ",
".obj Object Module ",
".lib Library ",
".xls Excel file ",
".doc Word File ",
".mdb Access Database ",
".scr SCR/AL1 objects ",
".cmt SCR/AL1 data ",
".f SCR/AL1 source ",
0
};

CalcFileType(fname)
char *fname;
{
return(FI_file(MAGIC_DATA, fname, 0L, 0));
}

En Unix, de nombreuses définitions de formats peuvent être trouvées dans le fichier /etc/magic.

5.117.1 File s_file.c

int FI_file(tbl, inname, cmt, lg)

Copyright © 1998-2015 Jean-Marc Paul and Bernard PAUL - Envoyez vos remarques ou commentaires à bernard@xon.be