|
Ces fonctions sont utilisées pour convertir des nombres entiers en chaînes de caractères et réciproquement.
ShortString correspond au String du Pascal.
procedure TForm1.Button1Click(Sender: TObject);
var
S: Shortstring;
I: Integer;
begin
S := '22467';
I := StrToInt(S);
Inc(I);
Edit1.Text := IntToStr(I);
end;
Déclaration
EConvertError = class(Exception);
Description
L'exception EConvertError est lancée lorsque les fonctions StrToInt ou StrToFloat ne sont pas en mesure de convertir la chaîne spécifiée vers une valeur entière ou flottante valide. Par exemple, ce code déclenche l'exception signalant une erreur de conversion car 3.4 n'est pas une valeur entière :
var
X: Integer;
begin
X := StrToInt('3.4');
end;
ATTENTION : Avant toute utilisation de cette fonction (dans form.create par exemple, placer l’instruction
DecimalSeparator:='.';
ou DecimalSeparator:=','.
Sinon le plantage sur le point est probable avec une chance sur deux.
FloatToStr convertit la valeur flottante Value en une représentation de type chaîne. La conversion utilise le format général des nombres avec 15 chiffres significatifs.
Pour plus de détails, voir la description des fonctions FloatToStr et FloatToStrF.
r désigne un réel.
s:=' Votre note est de : '+ FloatToStrF(r , ffFixed , 1 , 3) +' sur 20';
floatToStrF(r , ffFixed , 4 , 2)+ '/'+intToStr(Total) donne quatre chiffres dont deux décimales.
function FloatToText(Buffer: PChar; const Value; ValueType: TFloatValue;
Format: TFloatFormat; Precision, Digits: Integer): Integer;
La fonction FloatToText convertit une valeur flottante en sa représentation décimale en utilisant le format, la précision et le nombre de chiffres indiqués. La valeur Value doit être une variable de type Extended ou Currency, comme indiqué par le paramètre ValueType. La chaîne résultante est stockée dans le tampon spécifié et la valeur renvoyée correspond au nombre de caractères qui y sont stockés. La chaîne renvoyée ne possède pas de caractère de fin null. Pour plus de détails, voir la description de la fonction FloatToStrF.
ATTENTION : Déclaration du point ou de la virgule
Dans form.create par exemple, placer l’instruction
DecimalSeparator:='.'; ou DecimalSeparator:=','; sinon le plantage sur le point est probable avec une chance sur deux.
Titre.caption:='x = '+FormatFloat('####0.#####',y)+' à 10-5 près';
Le format précédent permet d’afficher au moins un zéro devant la virgule.
Ede.text:=FormatFloat('### ### ### ##0.00 "€"',e);
Pour accepter le point et la virgule voir l’exemple EuroFranc.zip
Permet d’écrire la date du jour.
Cette fonction peut être utilisée très simplement de la façon suivante (sans aucune déclaration préalable autre que la chaîne s).
S :=DateToStr(date)
function UpCase(Ch: Char): Char;
function UpperCase(const S: string): string;
function AnsiUpperCase(const S: string): string;
function AnsiLowerCase(const S: string): string;
function LowerCase(const S: string): string;
function StrUpper(Str: PChar): PChar;
function LoCase(Ch: Char): Char;
On veut remplacer un sous chaîne par une autre.
On veut corriger les fautes de caractères du de la codification ASCII d’ancien texte DOS en ANSI convention Windows.
Nous pouvons créer les deux fonctions suivantes :
Cette fonction permet de remplacer une sous chaîne av par une autre ap.
function fRemplace(ch,av,ap:string):string;
var r,l:byte;
begin
r:=pos(av,ch);l:=length(av);
if r=0 then begin
result:=ch;
exit;
end;
delete(ch,r,l);
insert(ap,ch,r);
result:=ch
end;
La fonction
Vous pouvez compléter ce qui suit avec d'autres codes que celui des principales lettres accentuées.
function
fASCII_ANSI(s:string):string;
var l,i,code:byte;
begin
l:=length(s);
if l=0 then fASCII_ANSI:=''
else begin
for i:=1 to l do begin
code:=ord(s[i]);
case code of
130 : s[i]:='é';
134 : s[i]:='à';
136 : s[i]:='ê';
138 : s[i]:='è';
151 : s[i]:='ù';
end;
end;
fASCII_ANSI:=s;
end;
end;
Utiliser StrPas(pchar)
begin
NomfichP:=strAlloc(255);
g_NomfichS:='Command.com /C arj.exe l '+g_NomfichS +' > PRN'; }
g_NomfichS:='Command.com /C ARJ.exe l
'+g_NomfichS +' > '+k_S2;
strPcopy(NomfichP,g_NomfichS);
i:=winexec(NomfichP,sw_hide);
strdispose(NomfichP);
end;
Les constantes sont considérées comme type pchar par d'autres fonctions mais pas les variables globales.
La fonction DeleteFile(Machin) prend pour machin une constante ou un Pchar, mais pas une variable. Il faut faire la conversion ci-dessus ou alors taper la chaîne directement sous la forme 'Suite de caractères entre apostrophes'.