SCR/AL1 - TOME III. Les librairies utilitaires
Syntax
char **PC_list(filename, fld_nb, fld_select, fld_vals, maxparms)
char *filename;
int fld_nb, fld_select, maxparms;
char *fld_vals;
Description
Recherche dans le fichier filename toutes les lignes de définition et retourne un tableau de pointeurs vers les champs fld_nb de chaque ligne de définition.
Les paramètres fld_select et fld_vals permettent de sélectionner un nombre d'entrées limitées : fld_select est le numéro du champ sur lequel s'effectue la sélection et fld_vals est un string contenant les valeurs que peut avoir la première lettre de ce champ. Si fld_val est NULL ou vide, ou fld_select est < 0, toutes les lignes sont sélectionnées.
Valeur retournée
un tableau contenant les champs numéro fld_nb de chaque ligne de définition. Ce tableau est nul en cas d'erreur (fichier non trouvé, pas de ligne de définition trouvée)
Exemple
PrintFile(filename)
char *filename;
{
char **descr;
descr = PC_list("printcap", 2, -1, NULL);
if(descr == 0) return(-1);
mn = MN_auto_create(descr, 5, 15, 10, 1, SCR_REVERSE);
SCR_free_tbl(descr);
prnb = MN_edit(mn) - 1;
if(prnb < 0) return(-1);
descr = PC_list("printcap", 0, -1, NULL);
PR_exec("printcap", descr[prnb], filename, NULL, NULL);
SCR_free_tbl(descr);
return(0);
}
Voir également
PC_exec(), PC_infos(), SCR_free_tbl();
Description du fichier
Le fichier contient trois types de lignes :
Par exemple, un fichier de définition des imprimantes installées sur le système peut être du type suivant :
+ps402:PS:1:Agfa P400PS laserprinter 2th floor
net use lpt3: /d
net use lpt3: suncalc:ps402
net print %1 lpt3
net use lpt3: /d
+lw3:PS:1:Apple Laserwriter 3th floor
net use lpt3: /d
net use lpt3: suncalc:lw3
net print %1 lpt3
net use lpt3: /d
+lpt1:HPDJ:1:HP Deskjet 500 on lpt1:
copy %1 lpt1
+psfile:PS:2:Postscript file
copy %1 %2
##+lpt1:FASCII:1:Standard DOS Printer on lpt1:
## copy %1 lpt1
##+lpt2:FASCII:1:Standard DOS Printer on lpt2:
## copy %1 lpt1
Les lignes de définition sont ici découpées en 4 champs :
Les lignes qui suivent sont les commandes à exécuter pour imprimer un fichier.
Le caractère + de début de ligne peut être modifié par l'utilisateur en remplaçant le pointeur PC_BEG par un string au choix.
De même, le séparateur peut être redéfini en plaçant dans la variable PC_SEPS un pointeur vers la liste des caractères acceptés comme séparateurs de champ.
char **PC_list(filename, fld_nb, fld_select, fld_vals, maxparms)
Copyright © 1998-2015 Jean-Marc Paul and Bernard PAUL - Envoyez vos remarques ou commentaires à bernard@xon.be