NBRFUNCTIONS

fbalien Messages postés 251 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 11 novembre 2016 - 7 janv. 2008 à 12:23
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 - 7 janv. 2008 à 22:36
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

japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
7 janv. 2008 à 22:36
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)
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
7 janv. 2008 à 15:13
Label1.Caption := FormatFloat('0000',25);
ou même:
Label1.Caption := FormatFloat('0000.00',25);

:)))
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
7 janv. 2008 à 14:58
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;
Utilisateur anonyme
7 janv. 2008 à 13:05
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)
fbalien Messages postés 251 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 11 novembre 2016
7 janv. 2008 à 12:25
petite erreur dans la ligne du deuxieme exemple ^_^

result := format('%.'+temp + 'd', [valeur]);
fbalien Messages postés 251 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 11 novembre 2016
7 janv. 2008 à 12:23
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;
Rejoignez-nous