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
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.
RmDir ( s ) ;
Procédure qui supprime le sous-répertoire s qui est une variable de type string dans le lecteur et repertoire courant.
ChDir ( s ) ;
Procédure qui change de répertoire courant pour aller dans le répertoire s avec s une variable string.
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.
| Valeur | Lecteur |
|---|---|
| 0 | courant |
| 1 | A: |
| 2 | B: |
| 3 | C: |
Program exemple16 ; Lecteur et répertoire courant:
Uses dos ;
Var s,r,t:String ;
i:integer ;
BEGIN
Writeln('',s) ; Aller dans quel répertoire ?
{$I-}
Write(' -> ') ; n''existe pas, voulez-vous le créer [o/n] ?
ReadLn(r) ;
For i := 1 To Length(r) Do r[i] := UpCase(r[i]) ;
ChDir(r) ;
If IOResult <> 0 Then
-> ') ; Création de
Readln(s) ;
If (s='o') Or (s='O') Then
WriteLn(' ',r) ;
: ',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.
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.
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.
Program exemple17 ; octets
Uses dos ;
BEGIN
') ; kilo octets
Writeln(DiskSize(0) div 1024, ' ') ; méga octets
Writeln(DiskSize(0) div 1048576, ' ') ; giga octets
Writeln(DiskSize(0) div 1073741824, ' ') ;
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.
Program exemple18 ;
Uses dos ;
Var version : word ;
BEGIN
version := DosVersion ;
WriteLn(' MS-DOS version : ', Lo(version), '.', Hi(version)) ;
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.
DosExitCode ;
Fonction qui renvoit le code sortie d'un sous-processus sous la forme d'une variable de type word.
| Valeur | Description |
|---|---|
| 0 | Normal |
| 1 | Ctrl+C |
| 2 | Device error |
| 3 | Procédure Keep (TSR) |
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.
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.
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.
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.
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.
| 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 |
| 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 |
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.
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.
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,'".') ;
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.
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 :
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
MemAvail ;
Cette fonction retourne la mémoire totale libre en octets.
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.