NBRFUNCTIONS

Signaler
Messages postés
251
Date d'inscription
dimanche 7 décembre 2003
Statut
Membre
Dernière intervention
11 novembre 2016
-
Messages postés
1725
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
11 avril 2021
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/45328-nbrfunctions

Messages postés
1725
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
11 avril 2021
8
Hé oui...

Le minimum aurait été d'écrire 1 seule fonction plutôt que 3. Parce que si tu veux faire la même chose sur 4 chiffres, il te faut rajouter une fonction. Sur 5 chiffre, 2 fonctions de plus. Pour 6 chiffres... bon, tu as compris.

Et l'utilisation de boucles est le B.A.BA de la programmation et aurait été une manière acceptable de procéder si tu ne connais pas les instructions Format et compagnie.

De même qu'une cascade de if then sera avantageusement remplacée par case of, surtout que tu oublies l'utilisation de else...

Ce sont des bases qu'il faut maîtriser avant de poster un code qui puisse apporter un minimum d'intérêt à tous.

(Le commentaire que j'ai laissé sur TLISTFUNCTIONS s'applique aussi à cette source)
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
18
Label1.Caption := FormatFloat('0000',25);
ou même:
Label1.Caption := FormatFloat('0000.00',25);

:)))
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
idem que cirec :

function LeadingZero(const Num : Integer; const Prec : Byte = 2): String;
begin
Result := Format('%.*d', [Prec, Num]);
end;

function LeadingSpace(const Num : Integer; const Prec : Byte = 2): String;
begin
Result := Format('%*.d', [Prec, Num]);
end;
Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
46
ola ola ...

Function LeadingZero(Num : Integer; Const Prec : Byte = 2): String;
Begin
Result := Format('%.*d', [Prec, Num]);
End;

procedure TFrMain.TestLeadingZeroClick(Sender: TObject);
begin Label1.Caption :LeadingZero(50, 4); // 0050 Label2.Caption :LeadingZero(5); // 05
end;

Bon mais la source ne restera pas très longtemps compte tenu du peu qu'elle apporte a la communauté.
Il en ira de même pour TLISTFUNCTIONS
Il n'est pas utile de réinventer la roue à chaque fois
regarde du coté de (TStrings.indexOf)
Messages postés
251
Date d'inscription
dimanche 7 décembre 2003
Statut
Membre
Dernière intervention
11 novembre 2016

petite erreur dans la ligne du deuxieme exemple ^_^

result := format('%.'+temp + 'd', [valeur]);
Messages postés
251
Date d'inscription
dimanche 7 décembre 2003
Statut
Membre
Dernière intervention
11 novembre 2016

Bonjour

bonne Année 2008

heu pour le code il y a beaucoup plus simple dans un premier style didactique ou l'on peut definir le nombre de digit à afficher

function intToStrNB( valeur : integer ; NB : integer) : string;
Begin
result := inttostr(valeur);
while length(result) <nb do
result := '0' + result;
end ;

Et la même avec utilisation de la fonction Format voir le F1 pour plus d'info

function intTostrNBF ( valeur : integer ; NB : integer) : string;
var temp : string;
begin
temp := inttostr(nb);
result := format('%.'+temp + 'd', [12]);
end;