// ----------------------------------------------------
// Méthode : trim
// Description : Supprime les espaces multiples dans une chaîne de caractères
// et les espaces en début et fin de chaîne
// Paramètres : $1 (Texte) - Chaîne à traiter
// Retour : $0 (Texte) - Chaîne traitée
// ----------------------------------------------------
C_TEXT($1;$0)
// Déclaration des variables
var $input_t : Text // Texte d'entrée à traiter
var $char : Text // Caractère courant lors du parcours
var $result : Text // Résultat final
var $lastWasSpace : Boolean // Indicateur si le dernier caractère était un espace
var $i : Integer // Compteur de boucle
$input_t:=$1
// Si la chaîne est vide, on retourne une chaîne vide
If (Length($input_t)=0)
$0:=""
Else
// Parcours de chaque caractère de la chaîne
For ($i;1;Length($input_t))
$char:=Substring($input_t;$i;1)
// Si le caractère n'est pas un espace, on l'ajoute au résultat
If ($char#" ")
$result+=$char
$lastWasSpace:=False
Else
// Si c'est un espace et qu'on n'avait pas déjà un espace avant
// et que le résultat n'est pas vide, on ajoute un espace
If (Not($lastWasSpace) & (Length($result)>0))
$result+=" "
$lastWasSpace:=True
End if
End if
End for
// Suppression de l'espace final si présent
If (Substring($result;Length($result);1)=" ")
$result:=Substring($result;1;Length($result)-1)
End if
$0:=$result
End if