C'est une liste non exhaustive de près de 40 procédures et fonctions très utiles en Delphi.
function IntToStr(Value:integer):string;
Permet d'afficher un nombre entier dans une chaîne de caractères.
Exemple
uses SysUtils, Dialogs; begin ShowMessage(IntToStr(50)); end.
function StrToInt(Value:string):integer;
Permet de convertir une chaîne de caractères en son nombre entier écrit dedans.
Exemple
uses SysUtils, Dialogs; begin if StrToInt('50')=50 then ShowMessage('C''est vrai'); end.
function Round(Value:real):integer;
Permet d'arrondir un nombre flottant de manière à le convertir en nombre entier par l'arrondi le plus proche.
Exemple
uses Dialogs; begin if Round(3.78)=4 then ShowMessage('C''est vrai'); end.
function Trunc(Value:real):integer;
Permet d'arrondir un nombre flottant de manière à le convertir en nombre entier par troncature.
Exemple
uses Dialogs; begin if Trunc(3.78)=3 then ShowMessage('C''est vrai'); end.
procedure Inc(var Value:integer);
Permet d'incrémenter la valeur d'un entier.
Exemple
uses Dialogs; var i : integer; begin i:=50; inc(i); if i=51 then ShowMessage('C''est vrai'); end.
REMARQUE : l'utilisation de INC est strictement équivalente à faire i:=i+1;
procedure Dec(var Value:integer);
Permet de désincrémenter la valeur d'un entier.
Exemple
uses Dialogs; var i : integer; begin i:=50; dec(i); if i=49 then ShowMessage('C''est vrai'); end.
REMARQUE : l'utilisation de DEC est strictement équivalente à faire i:=i-1;
procedure Random(Value:integer);
Génère un nombre aléatoire compris entre 0 et Value-1.
Exemple
uses Dialogs; var i : integer; begin //Randomize; i:=Random(50); if i<50 then ShowMessage('C''est toujours vrai'); end.
REMARQUE : l'utilisation de Random doit être précédée d'une initialisation unique (au lancement de votre programme le plus souvent) via la fonction Randomize qui n'a pas de paramétrage
REMARQUE : Pour générer un nombre entre 2 et 10, vous faîtes : i:=Random(10-2+1)+2;
function Odd(Value:integer):boolean;
Dit si le nombre proposé est impair.
Exemple
uses Dialogs; begin if not Odd(50) then ShowMessage('Ce nombre est pair'); end.
function FloatToStr(Value:real):string;
Permet d'afficher un nombre à virgule dans une chaîne de caractères.
Exemple
uses SysUtils, Dialogs; var s : string; begin s:=FloatToStr(50.12); ShowMessage(s); end.
REMARQUE : une notation scientifique peut être à prévoir si le nombre est trop grand
function StrToFloat(Value:string):real;
Permet de convertir une chaîne de caractères en son nombre flottant écrit dedans.
Exemple
uses SysUtils, Dialogs; var f : real; begin f:=StrToFloat('50,49'); if f=50.49 then ShowMessage('C''est vrai'); end.
function Int(Value:real):real;
Permet de garder la partie entière d'un nombre flottant.
Exemple
uses SysUtils, Dialogs; var f : real; begin f:=Int(50.49); if f=50 then ShowMessage('C''est vrai'); end.
REMARQUE : le résultat n'est pas de type entier compte tenu de l'étendue énorme des nombres flottants par rapport aux entiers (même int64 qui ne supporterait pas)
function Power(Base,Exponent:real):real;
Permet de calculer une puissance : Base^Exponent.
Exemple
uses Math; var f : real; begin f:=Power(2, 1.4); end.
REMARQUE : Power utilisera diverses fonctions selon que l'exposant est entier, négatif, nul... afin d'éviter l'usage systématique de LN et EXP.
function Length(Value:string):integer;
Renvoie la longueur de la chaîne.
Exemple
uses SysUtils, Dialogs; begin ShowMessage(IntToStr(Length('Vaut 6'))); end.
function Pos(SubChain,Chain:string):integer;
Renvoie la position d'une sous-chaîne dans une chaîne.
Exemple
uses Dialogs; begin if Pos('alu','Salut')=2 then ShowMessage('C''est vrai'); end.
REMARQUE : si la chaîne n'est pas trouvée dans l'autre, le résultat est 0.
function Copy(Chain:string; Pos,Len:integer):string;
Extrait une sous-chaîne d'une chaîne.
Exemple
uses Dialogs; begin ShowMessage(Copy('Salut les amis !',11,4)); //='amis' end.
function UpperCase(Chain:string):string;
Convertit les lettres de l'alphabet en majuscule dans la chaîne considérée.
Exemple
uses Dialogs; begin ShowMessage(UpperCase('Amitié')); //='AMITIé' end.
function LowerCase(Chain:string):string;
Convertit les lettres de l'alphabet en minuscules dans la chaîne considérée.
Exemple
uses Dialogs; begin ShowMessage(LowerCase('MAJUSCULES')); //='majuscules' end.
function AnsiUpperCase(Chain:string):string;
Convertit en majuscule lettres et accents d'une chaîne donnée.
function AnsiLowerCase(Chain:string):string;
Convertit en minuscules lettres et accents d'une chaîne donnée.
REMARQUE : dans la plupart des cas, les Ansi* sont exagérées pour un simple test de conditions
NOT
Donne le booléen opposé.
Exemple
var b : boolean; begin b:=false; b:=not b; if b=true then ShowMessage('C''est vrai'); end.
AND
Combine deux booléens de manière à savoir si les deux sont vrais.
Exemple
var b1, b2 : boolean; begin b1:=true; b2:=false; if b1 and b2 then ShowMessage('Vous ne verrez pas ce message'); end.
OR
Combine deux booléens de manière à savoir si au moins l'un des deux est vrai.
Exemple
var b1, b2 : boolean; begin b1:=true; b2:=false; if b1 or b2 then ShowMessage('C''est vrai car b1=true'); end.
XOR
Combine deux booléens de manière à savoir si l'un des deux seulement est vrai.
Exemple
var b1, b2 : boolean; begin b1:=true; b2:=false; if b1 xor b2 then ShowMessage('C''est vrai: b1=true'); if b1 xor (not b2) then ShowMessage('Vous ne verrez pas ce message.'); end.
function FileExists(LongName:string):boolean;
Dit si un fichier existe.
Exemple
uses Dialogs; begin if FileExists('c:autoexec.bat') then ShowMessage('Vous ne verrez pas ce message.'); end.
REMARQUE : pour savoir si le fichier existe, la fonction tente un accès brutal sur le fichier de manière à savoir si un code erreur est retourné (ce qui signifierait que le fichier n'existe pas)
function DirectoryExists(LongName:string):boolean;
Dit si un fichier existe.
Exemple
uses Dialogs, FileCtrl; begin if not DirectoryExists('c:winnt') then ShowMessage('Windows NT se cache...'); end.
procedure ChDir(Dir:string);
Change le répertoire actuellement ouvert par le système de fichier.
Exemple
begin {$I-} ChDir('c:Mes documents'); {$I+} end.
REMARQUE : si le dossier n'existe pas, une exception EInOutError est déclenchée. En désactivant la directive $I, puis en la réactivant (sa valeur par défaut en fait), on évite le message d'erreur. On pourrait gérer un évènement TRY EXCEPT, ou même tester l'existence du dossier, mais en général, on se sert de cette fonction pour se loger dans les répertoires système ou dans le dossier où se trouve l'application (ce qui ne crée jamais d'erreurs, aux imperfections près)
REMARQUE : le changement de dossier permet d'éviter d'avoir à fournir des noms de fichiers complets commençant par c:\ par exemple
REMARQUE : au lancement de l'application, le répertoire ouvert est celui où se trouve l'application
function ExtractFilePath(FileName:string):string;
Extrait le dossier du fichier donné, avec délimitateur "\" de fin.
Exemple
uses Dialogs; begin ShowMessage(ExtractFilePath('c:dossierfichier.txt')); //= 'c:dossier' end.
function ExtractFileDir(FileName:string):string;
Extrait le dossier du fichier donné, sans délimitateur "\" de fin.
Exemple
uses Dialogs; begin ShowMessage(ExtractFileDir('c:dossierfichier.txt')); //= 'c:dossier' end.
REMARQUE : cette fonction doit être bannie car elle apporte des confusions sur les fichiers situés à la racine du disque dûr, dossier étant nécessairement du type "x:\". Des erreurs de programmation systématiques provoquent des résultats du type "c:\\dossier\fichier.txt" avec une double barre oblique au début, car manuellement, on rajoute des "\" avant de concaténer le nom du fichier.
function ExtractFileName(FileName:string):string;
Enlève le dossier du nom de fichier.
Exemple
uses Dialogs; begin ShowMessage(ExtractFileName('c:dossierfichier.txt')); //= 'fichier.txt' end.
function ExtractFileExt(FileName:string):string;
Extrait l'extension du fichier donné.
Exemple
uses Dialogs; begin ShowMessage(ExtractFileExt('c:dossierfichier.txt')); //= '.txt' end.
function ChangeFileExt(FileName,Extension:string):string;
Change l'extension du fichier donné.
Exemple
uses Dialogs; var s : string; begin s:='c:dossierfichier.txt'; s:=ChangeFileExt(s,'dat'); ShowMessage(s); //= 'c:dossierfichier.dat' end.
procedure AssignFile(var F:file; FileName:string);
Assigne un fichier à une variable de gestion.
procedure Reset;
Ouvre le fichier en lecture seule.
procedure Rewrite;
Ouvre le fichier en écriture et écrase tout le contenu du fichier.
procedure Read(var F:file; var Buffer);
Lit une quantité de donnée et la stocke dans Buffer. La quantité lue dépend de la capacité de la variable passée en paramètre.
procedure ReadLn(var F:file; var Buffer);
Lit une ligne complète dans fichier texte et ne garde pas le retour chariot final. Passez un string comme Buffer.
function Eof(var F:file):boolean;
Dit si on est arrivé à la fin du fichier (en mode lecture).
procedure Write(var F:file; var Buffer);
Ecrit le Buffer dans le fichier en fin de fichier.
procedure WriteLn(var F:file; var Buffer);
Ecrit le Buffer dans le fichier en fin de fichier et rajoute un retour chariot (CrLf).
procedure CloseFile(var F:file);
Ferme le fichier ouvert.
Exemple
{$APPTYPE Console} var Fic : textfile; s : string; begin AssignFile(Fic,'c:autoexec.bat'); try Reset; //ne pas mettre Rewrite pour Autoexec.bat !! repeat ReadLn(Fic,s); WriteLn(s); //sans Fic, tout se joue dans la console, activée par $APPTYPE until Eof(Fic); finally CloseFile(Fic); end; end;
function ParamStr(Index:integer):string;
Récupère la ligne de commande et le paramétrage de l'application.
INDEX | CONTENU |
0 | Nom complet de l'application |
1 | Paramétrage usuel : fichiers assignés avec "Ouvrir avec", configuration des raccourcis "fichier.exe -nocheck" |
2..infini | Paramétrage complémentaire souvent inutilisé. Tout dépend si vous utilisez %2 ou %1 dans les commandes de Explorer.exe |
Tanguy ALTERT, http://altert.family.free.fr/