Formatage d'une chaine suivant un masque

AlexB59 Messages postés 1 Date d'inscription mardi 26 avril 2005 Statut Membre Dernière intervention 6 février 2006 - 6 févr. 2006 à 18:10
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 6 févr. 2006 à 18:31
Bonjour,

j'ai une chaine c = '423c'.
Je cherche à ce qu'à l'affichage j'obtienne '42.3 c'
En Access, j'aurais utilsé la fonction format avec comme masque '@@.@ @'. Mais la fonction de delphi diffère de celle d'Access ?

Y a t'il une fonction similaire à celle d'Access ?

Merci d'avance.

1 réponse

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
6 févr. 2006 à 18:31
Je débute, mais je n'ai jamais entendu parler d'une telle fonction en Delphi. Si le masque à appliquer est toujours le même, tu peux le coder en dur. (Eventuellement tu peux jeter un coup d'oeil à format qui ressemble de très loin à ce dont tu parles)

Je vais essayer de faire le tient.

c:= LeftStr(c, 2) + '.' + MidStr(c, 3, 1) + ' ' + RightStr(c, 1);

Non testé.


Tu peux même coder une fonction qui prend une chaîne et un masque.

Pas vérifier non plus (J'ai pas Delphi sous la main), mais l'esprit est là :

function AppliqueMasque(const strChaîne: String; const strMasque: String): String;
var
intI: Integer;
intJ: Integer;
begin
Result:= '';
intJ:= 1;
for intI:= 1 to Lenght(strMask) do
if (strMask[intI] = '@') then
begin
Result:= Result + strChaîne[intJ];
intJ:= intJ + 1;
end
else
Result:= Result + strMask[intI];
end;

Tu devrait pouvoir appeler cette fonction comme ça:

c:= AppliqueMasque('423c', '@@.@ @');

Je suis ouvert à toute critique sur mon code ;)
0
Rejoignez-nous