NEO ::: TEAM
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

NEO ::: TEAM

New Evolution Owner
 
AccueilRechercherDernières imagesS'enregistrerConnexion
-23%
Le deal à ne pas rater :
(Adhérents Fnac) Kit de démarrage 3 ampoules connectées Philips ...
99.99 € 129.99 €
Voir le deal

 

 XVII : Commandes systèmes

Aller en bas 
AuteurMessage
hou$$am
Fondateur
Fondateur
hou$$am


Nombre de messages : 386
Localisation : Tlemcen-Algeria
Date d'inscription : 04/01/2007

XVII : Commandes systèmes Empty
MessageSujet: XVII : Commandes systèmes   XVII : Commandes systèmes Icon_minitimeLun 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.
Revenir en haut Aller en bas
 
XVII : Commandes systèmes
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
NEO ::: TEAM :: Informatique :: Languages de programmation :: Turbo Pascal-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser