Beruflich Dokumente
Kultur Dokumente
chercher.
Effet
-c
-d
-i
-l
-n
-o
-r
inclut
: a, e, i, o, u, et 0
tout sauf : a, e, i, o, u, et 0
9
9
-u
-v
-w
- Ordre de priorit
Rappelez-vous que toutes les options de GREP sont des bascules. L' tat de
chacune d'elles refl te le dernier positionnement que vous lui avez appliqu .
A tout moment, une option est active ou inactive. Chaque occurrence d'une
option sur la ligne de commande neutralise la d finition ant rieure. Par
exemple, vous pouvez taper la ligne de commande suivante :
grep -r -i- -d -i -r- Procedure (mes*.pas
En utilisant cette ligne de commande, GREP fonctionne sous l'effet de l'option
-d, de l'option -i et sans l'effet de l'option -r.
Gr ce
l'option -u vous pouvez installer votre jeu de configuration pr f r
pour chaque option dans le fichier ex cutable GREP.COM. Si vous voulez par
exemple que GREP g n re toujours une recherche avec tous les affichages actifs
(-z actif), vous pouvez installer ce choix par la commande suivante :
grep -u -z
Comment rechercher du texte avec GREP
------------------------------------La valeur de cha ne_ _rechercher d finit l' l ment
rechercher. Il peut
s'agir d'une cha ne litt rale ou une expression r guli re.
o Dans les expressions r guli res certains caract res ont une signification
particuli re, ce sont des op rateurs influant sur la recherche.
o Les cha nes litt rales ne comportent pas d'op rateurs, chaque caract re est
trait litt ralement.
Une cha ne peut tre d limit e par des guillemets afin de permettre l'emploi
d'espaces ou de tabulations dans la cha ne (qui n'y sont donc pas consid r
comme des d limiteurs. La recherche s'effectue ligne par ligne, en aucun cas
la cha ne trouv e ne peut s' tendre sur plusieurs lignes.
Une expression est un simple caract re ou un ensemble de caract res d limit s
par des crochets. La concat nation d'expressions r guli res est une expression
r guli re.
- Op rateurs des expressions r guli res
Avec l'option -r, la cha ne
rechercher est trait e comme une expression
r guli re et non pas en tant que cha ne litt rale, et les caract res suivants
Le signe dollar
la fin de l'expression correspond
la fin de ligne
(tous les caract res suivant l'expression jusqu'au Retour Chariot).
Le point correspond
Une expression
s quence de 1
pr c dent, fo+
restriction du
[ ]
Tapez:
grep -n function dirdemo.pas
R sultat :
File DIRDEMO.PAS:
51
LessFunc = function(X, Y: DirPtr): Boolean;
60
function NumStr(N, D: Integer): String;
73
function LessName(X, Y: DirPtr): Boolean;
78
function LessSize(X, Y: DirPtr): Boolean;
83
function LessTime(X, Y: DirPtr): Boolean;
Remarques :
Trouve toutes les fonctions dans le fichier DIRDEMO.PAS. Le -n sp cifie
GREP de faire pr c der toutes les lignes trouv es de leur num ro de ligne.
-----------------------------------------------------------------------------Tapez :
grep {\$ dirdemo.pas
R sultat :
File DIRDEMO.PAS:
{$I-,S-}
{$M 8192,8192,655360}
{$F+}
{$F-}
Remarques :
Trouve toutes les directives de compilation dans DIRDEMO.PAS. Le \ (backslash)
pr c dant le $ est n cessaire. Autrement, le $ indiquerait la fin de la ligne.
Toutes les lignes avec '{' comme dernier caract re v rifieraient la condition
et seraient imprim es.
----------------------------------------------------------------Tapez :
grep -i "^ *function.*).*real" *.pas
R sultat :
File WORKERS.PAS:
function RoundPay(Wages: Real): Real;
Remarques :
Trouve toutes les lignes commen ant avec 0 ou plus d'espaces, suivis du
mot 'function', suivi de 0 ou plus caract res, suivi d'une parenth se, une
autre cha ne, le mot 'Real', et ignore les diff rences MAJ/min.
L'effet voulu est la recherche de toutes les fonctions renvoyant un r el.
Essayez d'y parvenir d'une autre fa on !
Les guillemets sont n cessaires du fait des espaces dans la cha ne de
recherche. Ils indiquent au processeur de ligne de commande de DOS que les
caract res suivants sont un seul argument. Sans eux, ils repr senteraient
plusieurs arguments, et GREP penserait que tout ce qui suit ^ est des noms
de fichiers, et exprimerait son d saccord de la fa on suivante :
No files matching: *FUNCTION.*).*.
3. L'UTILITAIRE BINOBJ
---------------------Le programme utilitaire BINOBJ permet de convertir un fichier binaire
en un fichier au format .OBJ, utilisable ensuite par Turbo Pascal lors de
l' dition des liens, comme Proc dure.
Ceci est particuli rement utile si vous disposez d'un fichier binaire que
vous voulez int grer au segment de code ou s'il s'agit
d'une constante typ e de taille trop importante. Vous pouvez, par exemple,
utiliser BINOBJ pour ins rer un pilote graphique ou des polices de caract res
graphiques directement dans le fichier ex cutable. Vous vous lib rez ainsi
l'avenir de la n cessit de disposer de ceux-ci sous forme de fichiers
accessibles au programme lors de son ex cution. Reportez-vous
l'exemple
BGILINK.PAS livr avec votre exemplaire du produit.
BINOBJ n cessite 3 param tres :
BINOBJ <source[.BIN]> <destination[.OBJ]> <nom public>
<source> est le fichier binaire
convertir, et <destination> le nom du
fichier objet r sultant. <Nom public> est le nom que portera la proc dure dans
votre programme Turbo Pascal.
L'exemple suivant, la proc dure AfficheEcran, prend un pointeur comme
param tre et d place 4000 octets de m moire cran. Le fichier nomm MENU.DTA
contient l'image du menu principal (80 * 25 = 4000 octets).
Note : aucune v rification n'est effectu e dans cet exemple.
PROGRAM Jaffiche;
USES Crt;
PROCEDURE AfficheEcran(VAR DataEcran : POINTER);
{ Affichage d'un cran complet sans contr le d'erreurs }
VAR
SegmentEcran : WORD;
BEGIN
IF (Lo(LastMode) = 7) THEN
SegmentEcran := $B000
{ Zone RAM pour cran Mono }
ELSE
SegmentEcran := $B800;
{ Zone RAM pour cran Couleur }
Move(DataEcran^, Ptr(SegmentEcran, 0)^, 4000);
END;
{ Version classique de JAFFICHE lisant le masque cran sur disque }
VAR
MenuP : POINTER;
MenuF : File;
BEGIN
Assign(MenuF, 'MENU.DTA');
{ Ouverture fichier }
Reset(MenuF, 1);
GetMem(MenuP, 4000);
{ Demande de 4000 octets dans le Tas }
BlockRead(MenuF, MenuP^, 4000); { Recopie de disque
m moire }
Close(MenuF);
{ Fermeture fichier disque }
AfficheEcran(MenuP);
{ Appel de proc dure }
END.
Le contenu du fichier de masque d' cran MENU.DTA est charg dans un tampon du
segment de tas. Le fichier disque correspondant doit tre accessible au moment
du d marrage du programme. BINOBJ vous permet de transformer ce fichier de
donn es en un fichier au format .OBJ que vous associez ensuite
un
identificateur de proc dure externe, par exemple MenuData. Lorsque vous lancez
l' dition des liens en mentionnant ce fichier .OBJ
l'aide d'une directive
{$L}, les 4000 octets de donn es repr sentant l' cran MENUDATA sont incorpor s
au fichier ex cutable.
Notez que la proc dure AfficheEcran n'a pas t modifi e et que nous
transmettons pr sent l'adresse de notre pseudo-proc dure
MenuData.
L'avantage est vident : vous n'avez plus besoin de fichiers additionnels
pour que le programme fonctionne. En outre, vous acc dez l' cran
par nom symbolique (MenuData). Voici les inconv nients:
4. UTILISATION DE TPUMOVER
-------------------------Quand vous crivez des unit s, vous souhaitez qu'elles soient facilement
accessibles aux programmes que vous d veloppez. Cette section illustre
l'utilisation de TPUMOVER, utilitaire permettant d'ajouter et d'enlever des
unit s de TURBO.TPL. Les unit s peu ou pas utilis es seront extraites tandis
que de nouvelles unit s destin es
un usage fr quent seront introduites dans
la librairie.
On distingue deux types de fichiers unit s, les fichiers .TPU et les fichiers
.TPL. Quand vous compilez une unit , Turbo Pascal g n re un fichier .TPU
(Turbo Pascal Unit) contenant le code objet. Ce fichier ne peut contenir
qu'une seule unit .
En revanche, plusieurs unit s peuvent tre rassembl es dans un fichier .TPL
(Turbo Pascal Library). Par exemple, toutes les unit s livr es avec Turbo
Pascal sont plac es dans le fichier TURBO.TPL. Ce fichier est actuellement le
seul fichier librairie partir duquel Turbo Pascal chargera des unit s.
Vous avez pu constater, cependant, que vous pouvez utiliser la librairie
standard de Turbo Pascal sans pr ciser de nom. C'est parce que ces unit s sont
stock es dans le fichier d'unit s standard de Turbo Pascal : TURBO.TPL.
la librairie .TPL.
-NomUnit
*NomUnit
5. L'UTILITAIRE MAKE
-------------------Cette section fournit une documentation compl te traitant de la cr ation des
fichiers de reconstruction s lective, dits fichiers make et de l'utilisation
du programme de m me nom qui fonde son travail sur leur contenu.
La cr ation de fichiers make
============================
Un fichier make est une liste de d finitions et de descriptions des relations
entre les diff rents modules constituant un projet de programme. L'utilitaire
MAKE puise dans ce fichier les renseignements qui lui permettent d'effectuer
la mise jour automatique de vos programmes. Vous pouvez cr er autant de
fichiers Make que vous voulez. En l'absence de sp cification de nom de fichier
make, l'utilitaire MAKE (si vous le lancez avec l'option -f) utilise le nom de
fichier MAKEFILE par d faut.
Vous pouvez cr er un fichier make avec n'importe quel diteur de texte ASCII,
tel que l' diteur int gr de Turbo Pascal. Toutes les r gles, d finitions et
directives se terminent par un Retour chariot. Si une ligne est trop longue,
vous pouvez la prolonger sur la ligne suivante en pla ant une barre oblique
inverse (\) en tant que dernier caract re de la ligne.
Les espaces et les tabulations sont utilis s pour s parer les identificateurs
juxtapos s (tels que les d pendances) et pour distinguer les commandes de la
r gle dans un
nonc de r gle.
les commentaires
les r gles explicites
les r gles implicites
les d finitions de macros
les directives : inclusion de fichiers, ex cution conditionnelle,
d tection d'erreurs, annulation de d finition de macro
l'aide des fichiers source sp cifi s. Quand MAKE rencontre une r gle
explicite, il v rifie d'abord si les fichiers source qui lui sont propos s ne
sont pas eux-m mes des fichiers cible dans une r gle situ e plus loin dans le
fichier make. S'il en est ainsi, ces r gles sont valu es d'abord, suspendant
ainsi l' valuation de la premi re r gle.
Une fois que tous les fichiers source ont t cr s ou mis
jour au moyen
d'autres r gles explicites (ou implicites), MAKE v rifie si le fichier cible
existe. Si ce n'est pas le cas, chaque commande est appel e selon l'ordre de
lecture. Si le fichier cible existe, son heure et date de g n ration sont
compar es avec celles de chaque fichier source. Si l'un de ceux-ci est plus
r cent, la liste des commandes est ex cut e comme si le fichier cible
n'existait pas.
Un m me fichier ne peut tre mentionn qu'une seule fois dans la partie gauche
d'une r gle explicite, c'est- -dire en tant que fichier cible.
Chacune des lignes de commande d'une r gle explicite commence par au moins un
espace ou une tabulation. MAKE consid re que toutes les lignes qui suivent une
r gle explicite font partie de la liste des commandes de cette r gle, et ce
jusqu' la prochaine ligne comportant un caract re autre qu'un espace ou une
tabulation dans la premi re colonne (ou, a fortiori, jusqu' la fin du
fichier). Les lignes vides sont ignor es.
Une r gle explicite inerte (non suivie de lignes de commandes) est trait e
diff remment d'une r gle explicite active (suivie de lignes de commande) :
S'il existe une r gle explicite active, les seuls fichiers dont d pend le
fichier cible sont ceux list s dans cette r gle.
S'il n'existe qu'une r gle explicite inerte, le fichier cible d pend des
fichiers source sp cifi s dans cette r gle explicite, mais galement de ceux
concern s par l'application d'une r gle implicite au fichier cible.
Voici quelques exemples de r gles explicites :
monutil.obj: monutil.asm
tasm monutil.asm,monutil.obj;
monapp.exe: monapp.pas magloba.tpu mesutil.tpu
tpc monapp /Tc:\tp\bin
La premi re r gle explicite indique que MONUTIL.OBJ d pend de MONUTIL.ASM, et
que MONUTIL.OBJ est cr au moyen du macro-assembleur TASM. (La construction
/T chemin_d'acc s_fichier de ces exemples sera d crite plus loin).
La deuxi me r gle indique que MONAPP.EXE d pend de MONAPP.PAS,
MAGLOBA.TPU et de MESUTIL.TPU ; ce fichier ex cutable est g n r
commande TPC (compilateur Turbo Pascal) sp cifi e.
par la
Si vous modifiez l'ordre des r gles, en sorte que celle concernant MONAPP.EXE
se retrouve plac e avant les autres, MAKE ne recompilera (ou ne r assemblera)
que les fichiers dont la mise
jour lui semblera n cessaire. En effet, MAKE
a, avant toute chose, besoin d'un pr texte : un fichier cible ex cutable
valuer. L'ordre de lecture doit donc tre soigneusement tudi pour que les
d ductions que MAKE fera soient les plus riches.
R gles implicites
-----------------MAKE vous permet aussi de d finir des r gles implicites. Elles peuvent
tre
extension_source.extension_cible:
[commande]
[commande]
...
Comme dans le cas des r gles explicites, les commandes sont facultatives et
doivent tre indent es. .extension_source (attention au point), qui doit
commencer en premi re colonne, est l'extension du nom du fichier source.
Autrement dit, cette r gle s'appliquera
tout fichier de format
nom_fichier.extension_source
De m me, extension_cible d signe le fichier :
nom_fichier.extension_cible
nom_fichier tant le m me pour la source et la cible. Cette r gle
implicite peut donc effectivement remplacer toutes les r gles explicites ayant
le format :
nom_fichier.extension_cible: nom_fichier.extension_source
[commande]
[commande]
...
pour tout fichier de nom nom_fichier.
Les r gles implicites sont utilis es, si pour une cible donn e, aucune r gle
explicite n'est trouv e, ou s'il n'existe qu'une r gle explicite inerte (sans
commandes).
L'extension du nom de fichier permet de d terminer la r gle implicite
utiliser. La r gle implicite est appliqu e quand il existe un fichier de m me
nom que la cible mais avec l'extension du fichier source. Par exemple,
supposons que vous ayez un fichier make nomm MAKEFILE, dont le contenu est :
.asm.obj:
tasm $*.asm,$*.obj;
Si vous disposez d'une routine en langage d'assemblage, nomm e RATIO.ASM, que
vous voulez compiler en RATIO.OBJ, vous pouvez utiliser la commande :
make ratio.obj
La cible de MAKE est dans ce cas RATIO.OBJ. Puisqu'il n'y a aucune r gle
explicite pour cr er RATIO.OBJ, MAKE applique la r gle implicite ; il g n re
donc la commande :
tasm ratio.asm,ratio.obj;
Celle-ci accomplit bien l'action n cessaire pour cr er RATIO.OBJ.
Les r gles implicites s'utilisent aussi quand une r gle explicite est inerte
(donn e sans commandes). Supposons que vous ins riez la r gle implicite
suivante au d but de votre fichier make :
.pas.tpu:
tpc $<
Vous pourriez alors r crire les deux r gles explicites mentionn es plus haut
sous forme de deux r gles inertes :
magloba.tpu: magloba.pas
mesutil.tpu: mesutil.pas magloba.tpu monutil.obj
Puisque vous n'avez pas sp cifi explicitement comment cr er ces fichiers
.TPU, MAKE applique la r gle implicite applicable, d finie plus haut.
Vous pouvez ins rer plusieurs r gles implicites concernant la m me extension
de nom de fichier cible mais une seule r gle peut s'appliquer
la fois. S'il
existe plus d'une r gle implicite pour une extension cible donn e, chaque
r gle est v rifi e en respectant l'ordre naturel de lecture jusqu' ce que
toutes les r gles applicables aient t v rifi es.
MAKE utilise la premi re r gle implicite applicable. Si les commandes de cette
r gle chouent, MAKE ne tente pas d'utiliser les autres r gles implicites qui
seraient applicables.
Toutes les lignes qui suivent une r gle implicite sont consid r es comme
faisant partie de la liste des commandes de cette r gle, jusqu' la prochaine
ligne commen ant par un caract re autre qu'un espace ou une tabulation, ou
jusqu' la fin du fichier. Les lignes vides sont ignor es. Le mod le de
syntaxe des lignes de commande est fourni dans la prochaine section.
Dans le cas des r gles implicites, et
la diff rence des r gles explicites,
MAKE ne conna t pas le nom complet du fichier. Pour cette raison, des macros
sp ciales fournies avec MAKE vous permettent d'inclure le nom que portera le
fichier
construire par une r gle implicite (les d finitions de macro sont
d taill es plus loin).
Les listes de commandes
-----------------------Les commandes d'une liste de commandes doivent tre indent es, c'est- -dire,
pr c d es par au moins un espace ou une tabulation, et doivent se conformer au
format suivant :
[ prefixe ... ] bloc_de_commandes
Chaque ligne de commande dans une liste de commandes comporte une liste
(facultative) de pr fixes, suivie d'un bloc de commandes.
Les pr fixes autoris s dans une commande modifient la mani re dont MAKE traite
la commande. Le pr fixe est soit le signe @, soit le tiret - (ou signe moins)
imm diatement suivi d'un chiffre.
@
-num
Lorsque vous sp cifiez un tiret non suivi d'un nombre, MAKE ne v rifie
tout simplement pas le code de sortie ; quelle que soit sa valeur,
MAKE poursuit son action.
CD
MKDIR
SET
VOL
CHDIR
PATH
TIME
CLS
PROMPT
TYPE
COPY
REN
VER
l'algorithme de recherche
mentionn e pour
Cette macro est remplac e par un nom de fichier sans chemin ni extension, de
la fa on suivante :
Si le nom du fichier est A:\P\FICTEST.PAS,
$& est remplac e par FICTEST.
Les directives
-------------L'utilitaire MAKE fourni avec Turbo Pascal (contrairement
d'autres versions
de MAKE) supporte un jeu de directives conditionnelles similaires
celles de
Turbo Pascal. Ces directives sont utilis es pour inclure d'autres fichiers
make, pour rendre conditionnelles les r gles et les commandes, pour imprimer
des messages d'erreur et pour annuler (undefine) des d finitions de macro.
Dans un fichier make, les directives commencent par un point d'exclamation
(!). Ce doit tre le premier caract re de la ligne. Voici la liste compl te
des directives de MAKE :
!include
!if
!else
!elif
!endif
!error
!undef
Une directive d'inclusion de fichier (!include) sp cifie le nom d'un fichier
devant tre inclus dans le fichier make et imm diatement interpr t
l'emplacement de l'insertion. Elle a la forme suivante :
include "nom_fichier"
ou
!include <nom_fichier>
Les directives de ce type peuvent tre ind finiment imbriqu es. Si une
directive d'inclusion essaie d'inclure un fichier qui est d j inclus
un
niveau sup rieur (pr parant ainsi les conditions d'une boucle infernale), MAKE
d tecte cette situation dangereuse et refuse de r aliser la directive
d'inclusion la plus interne.
Les directives conditionnelles fournissent une souplesse accrue dans la
construction des fichiers make. Les r gles et les macros peuvent tre rendues
sensibles
des conditions variables. Ainsi, une d finition de macro dans la
ligne de commande ( l'aide de l'option -D) peut activer ou d sactiver
certaines parties du fichier make.
Le format de ces directives est similaire
celui des directives
conditionnelles de Turbo Pascal, mais elles offrent ici un plus grand nombre
de possibilit s :
!if expression
[ lignes ]
!endif
#SI
#ACTIONS-SI
#FIN-SI
!if expression
#SI
[ lignes ]
!else
[ lignes ]
!endif
#ACTIONS-SI
#SINON
#ACTIONS-SINON
#FIN-SI
!if expression
[ lignes ]
!elif expression
[ lignes ]
!endif
#SI
#ACTIONS-SI
#SINON-SI
#ACTIONS-SINON-SI
#FIN-SI
n gation
compl ment de bit
n gation logique
Une expression peut utiliser les op rateurs binaires (bi-op randes) suivants :
+
*
/
%
>>
<<
&
|
^
&&
||
>
<
>=
<=
==
!=
addition
soustraction
multiplication
division
reste de la division
d calage
droite
d calage
gauche
ET binaire
OU binaire
OU exclusif binaire
ET logique
OU logique
sup rieur
inf rieur
sup rieur ou gal
inf rieur ou gal
galit
in galit
?:
comme un test.
s'effectue
-Diden=cha ne
-Ir pertoire
Indique
MAKE de rechercher galement les fichiers
inclure (Include) dans le r pertoire indiqu (il
recherche dans le r pertoire courant au pr alable).
-Uidentificateur
-s
-n
-fnom_fic
-? ou -h
MAKE des
la syntaxe .ext.ext:.