WinWordCount : Ce logiciel compte le nombre de caractère

[Fermé]
Signaler
Messages postés
236
Date d'inscription
lundi 22 avril 2013
Statut
Non membre
Dernière intervention
18 août 2021
-
Messages postés
14827
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
23 octobre 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/100442-winwordcount-ce-logiciel-compte-le-nombre-de-caractere

Messages postés
14827
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
23 octobre 2021
157
Bonsoir,

Je ne fais pas de Delphi, mais il y a au moins 2 choses améliorables :

function add_delimiteur(valeur:integer):string;
var chaine:string;
begin
chaine:=IntToStr(valeur);
if (valeur>=10000000) and (valeur<99999999) then
begin
chaine:=chaine[1]+chaine[2]+'.'+chaine[3]+chaine[4]+chaine[5]+'.'+chaine[6]+chaine[7]+chaine[8];
end
else if (valeur>=1000000) and (valeur<9999999)then
begin
chaine:=chaine[1]+'.'+chaine[2]+chaine[3]+chaine[4]+'.'+chaine[5]+chaine[6]+chaine[7];
end
else if valeur>=100000 then
begin
chaine:=chaine[1]+chaine[2]+chaine[3]+'.'+chaine[4]+chaine[5]+chaine[6];
end
else if valeur>=10000 then
begin
chaine:=chaine[1]+chaine[2]+'.'+chaine[3]+chaine[4]+chaine[5];
end
else if valeur>=1000 then
begin
chaine:=chaine[1]+'.'+chaine[2]+chaine[3]+chaine[4];
end;
result:=chaine;
end; {add_delimiteur}

En clair, tu ajoutes les séparateurs des milliers, je pense qu'il y a plus simple et plus évolutifs.
(Genre :
Tant que Chaine non vide
if Resultat non vide alors Resultat="."+Resultat
Resultat=3 derniers caractères de chaine + Resultat
Chaine=Chaine-3 derniers caractères
Fin Tant que)

Dans ta liste des caractères :
['0'..'9','a'..'z','A'..'Z',
'_',':','=',',','.','+','-','*','/','@','{','}','(',')','[',']','^',
'é','è','ê','ç','µ','ï','î','à']
Il manque certains caractères : ùüû par exemple, je pense qu'il y a quand même plus simple (mais sans certitude).