hou$$am Fondateur
Nombre de messages : 386 Localisation : Tlemcen-Algeria Date d'inscription : 04/01/2007
| Sujet: XVII : Commandes systèmes Lun 15 Jan - 9:03 | |
| Tous comme sous Dos ou Windows, il est quelquefois nécessaire pour certains types de programmes (cryptage, installation, setup, etc.) de créer des répertoires, de dépacer des fichiers... Turbo Pascal 7.0 propose un certains nombre de commandes permettant ces manipulations. Certaines d'entre elles seront discutées au cours de ce chapitre. Les instructions suivantes nécessitent l'unité Dos
1. Répertoires et lecteurs 2. Environnement MS-DOS 3. Fichiers 4. Mémoire vive
1. Répertoires et lecteurs
- Code:
-
MkDir ( s ) ; Procédure qui crée le sous-répertoire s qui est une variable de type string dans le lecteur et repertoire courant.
- Code:
-
RmDir ( s ) ; Procédure qui supprime le sous-répertoire s qui est une variable de type string dans le lecteur et repertoire courant.
- Code:
-
ChDir ( s ) ; Procédure qui change de répertoire courant pour aller dans le répertoire s avec s une variable string.
- Code:
-
GetDir ( b, s ) ; Procédure qui renvoit le répertoire courant dans la variable s de type string du lecteur lui-même spécifié en byte.
Code des lecteurs Valeur 0 : courant 1 : A:\ 2 : B:\ 3 : C:\
- Code:
-
Program exemple16 ; Uses dos ; Var s,r,t:String ; i:integer ; BEGIN GetDir(0,s) ; Writeln('Lecteur et répertoire courant: ',s) ; {$I-} Write('Aller dans quel répertoire ? -> ') ; ReadLn(r) ; For i := 1 To Length(r) Do r[i] := UpCase(r[i]) ; ChDir(r) ; If IOResult <> 0 Then Begin Write(r,' n''existe pas, voulez-vous le créer [o/n] ? -> ') ; Readln(s) ; If (s='o') Or (s='O') Then Begin MkDir(r) ; WriteLn('Création de ',r) ; End ; End Else Writeln('Ok : ',r,' existe !') ; ReadLn ; ChDir(s) ; END. Ce programme exemple16 affiche le répertoire courant du disque courant et propose à l'utlisateur de changer de répertoire. Si le répertoire choisi n'existe pas, il le crée.
- Code:
-
DiskFree ( b ) ; Fonction qui retourne dans une variable de type longint la taille libre en octets du disque se trouvant dans le lecteur b spécifié avec b une variable de type byte.
- Code:
-
DiskSize ( b ) ; Fonction qui retourne dans une variable de type longint la capacité totale exprimée en octets du disque spécifié b, avec b de type byte.
- Code:
-
Program exemple17 ; Uses dos ; BEGIN Writeln(DiskSize(0), ' octets') ; Writeln(DiskSize(0) div 1024, ' kilo octets') ; Writeln(DiskSize(0) div 1048576, ' méga octets') ; Writeln(DiskSize(0) div 1073741824, ' giga octets') ; END. Ce programme exemple17 affiche à l'écran la capacité totale du disque dur sous différents formats, en utilisant la propriété binaire du mode de stockage.
2. Environnement MS-DOS
DosVersion ; Fonction qui retourne le numéro de version du système d'exploitation MS-DOS présent dans le système sous la forme d'une variable de type word.
- Code:
-
Program exemple18 ; Uses dos ; Var version : word ; BEGIN version := DosVersion ; WriteLn('MS-DOS version : ', Lo(version), '.', Hi(version)) ; END. Ce programme exemple18 affiche le numéro de la version résidante de MS-DOS correctement formatée avec les fonctions Lo et Hi qui renvoient respectivement le byte inférieur et suppérieur de l'information contenue dans la variable version.
- Code:
-
DosExitCode ; Fonction qui renvoit le code sortie d'un sous-processus sous la forme d'une variable de type word. Valeurs de DosExitCode Valeur Description 0 Normal 1 Ctrl+C 2 Device error 3 Procédure Keep (TSR)
- Code:
-
EnvCount ; Fonction qui renvoit sous la forme d'une variable de type integer le nombre de chaînes de caractères contenues dans l'environnement MS-DOS.
- Code:
-
EnvStr ( i ) ; Fonction qui renvoit sous la forme d'une variable de type string la chaînes de caractères contenue dans l'environnement MS-DOS à la position dans l'index spécifiée par la variable i de type integer.
- Code:
-
Program exemple19 ; Uses dos ; Var i : integer ; BEGIN For i := 1 To EnvCount Do WriteLn(EnvStr(i)) ; END. Ce programme exemple19 affiche l'intégralité des chaînes d'environnement MS-DOS à l'aide d'une boucle.
- Code:
-
GetCBreak ( break ) ; Procédure qui permet de connaître la valeur (vrai ou fausse) de la variable break de MS-DOS. Avec break de type boolean.
- Code:
-
SetCBreak ( break ) ; Procédure qui permet de donner la valeur vrai ou fausse à la variable break de MS-DOS. Avec break de type boolean.
3. Fichiers
SetFAttr ( f, attr ) ; Procédure qui attribut au fichier f de type file la variable attr de type word.
GetFAttr ( f, attr ) ; Procédure qui renvoit dans la variable attr de type word, la valeur de l'attribut du fichier f déclaré en file. Code des attributs de fichiers Valeur Nom Description $01 ReadOnly Lecture seule $02 Hidden Caché $04 SysFile Système $08 VolumeID VolumeID $10 Directory Répertoire $20 Archive Archive $3F AnyFile tous
Code des DosError Valeur Description 2 Fichier non trouvé 3 Répertoire non trouvé 5 Accès refusé 6 Procédure non valable 8 Pas assez de mémoire 10 Environnement non valable 11 Format non valable 18 Plus de fichiers
- Code:
-
FExpand ( fichier ) ; Fonction qui rajoute le chemin d'accès du fichier spécifié dans le nom de ce fichier. La variable fichier doit être de type PathStr mais vous pouvez entrer directement une chaîne de caractère.
- Code:
-
FSplit ( fichier, dir, name, ext ) ; Procédure qui sépare un nom de fichier (fichier) de type PathStren ses trois composantes : chemin (dir) de type DirStr, nom (name) de type NameStr, son extention (ext)de type ExtStr.
- Code:
-
Program exemple20 ; Uses dos ; Var P : PathStr ; D : DirStr ; N : NameStr ; E : ExtStr ; BEGIN Write('Entrez un nom de fichier : ') ; Readln(P) ; FSplit(P, D, N, E) ; Writeln('Son chemin : "',D,'", son nom : "',N, '" et son extention : "',E,'".') ; END. Ce programme exemple20 demande à l'utilisateur d'entrer un nom de ficher avec son chemin, et il affiche séparément toutes les informations : le chemin, le nom et l'extention.
- Code:
-
FileSize ( f ) ; Fonction qui renvoit sous la forme d'une variable longint la taille du fichier f déclaré en file.
Il est possible de rechercher des fichiers selon certains critères de nom, d'attribut, d'extention avec les commandes FindFirst et FindNext. Regrouper ces commandes permet de simuler aisément la commande DIR de MS-DOS ou l'option RECHERCHER de Windows. Syntaxe :
- Code:
-
Program exemple21 ; Uses dos ; Var fichier : SearchRec ; BEGIN FindFirst('*.PAS', Archive, fichier) ; While DosError = 0 Do Begin WriteLn(fichier.Name) ; FindNext(fichier) ; End ; END. Ce programme exemple21 permet de rechercher et d'afficher le nom de tous les fichiers correspondants aux critères de recherche, c'est-à-dire les fichiers d'extention PAS et d'attribut archive.
Voir chapitre 10 pour l'utilisation des fichiers externes, voir aussi chapitre 16 pour la gestion des dates et heures.
4. Mémoire vive
- Code:
-
MemAvail ; Cette fonction retourne la mémoire totale libre en octets.
- Code:
-
MaxAvail ; Cette fonction retourne la longueur en octets du bloc contigu le plus grand de la mémoire vive. Très utile pour connaître la taille allouable à un pointeur en cours d'exécution. | |
|