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
14
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