Fonctions texte : exemple
Les fonctions texte de FileMaker Pro sont un peu un monde à part. A l'usage, elles permettent de faire beaucoup de choses et certains développeurs ont élevé leur usage à l'état de l'art pur ! Néanmoins, la liste des fonctions texte est assez longue, et couvre des usages très différents. Tâchons de trier un peu...
Mise en formatTout d'abord une série de 5 fonctions :
Il s'agit, on l'aura reconnu, des 5 formes de rubriques non calculées. Ces 5 fonctions servent à remettre dans le format adéquat une donnée quelconque. A titre d'exemple, une donnée extraite d'une liste de valeur est du texte, même s'il s'agit de 12 ou 45. Si on désire utiliser cette donnée dans une opération arithmétique, ou effectuer un tri sur ces valeurs numériques, la fonction ObtenirNombre(MaDonnée) est, disons-le, fort utile, puisqu'elle "transformera" notre donnée "texte" en donnée "nombre" ! Globalement, que faut-il en dire ? Que, si on hésite à utiliser une de ces fonctions au sein d'un calcul ou d'un usage, alors il faut l'utiliser. En effet, si on a une donnée date appelée MaDate, ObtenirDate(MaDate) ne fera pas de tort ! A titre d'exemple, soit la chaîne de texte "18/12/2007". Le calcul ObtenirDate("18/12/2007") + 10 donnera bien le 28/12/2007. Ces fonctions sont notamment très utiles sur des variables (de type $ ou $$). En effet, les variables sont par défaut de type "texte". En leur appliquant le bon format, on évitera bien des crises d'incompréhension devant des tris ou des recherches qui semblent, nous disons bien SEMBLENT, ne pas fonctionner... Listes de valeursUne série de fonctions texte FileMaker Pro est liée aux listes de valeurs. Certaines sont très utilisées, d'autres moins :
On rajoutera la fonction ElémentsListeValeurs(), tellement liée aux listes qu'on se demandera longtemps pourquoi elle est dans la catégorie Conception... Les fonctions commençant par Valeurs*** sont à mettre en parallèle avec les fonctions correspondantes Filtre(), Début(), Extrait() et Fin(), expliquées plus loin. DécompteValeurs() compte simplement le nombre de valeurs contenues dans une liste. Rappelons qu'une liste, au sens FileMaker pro du terme, n'est "que" du texte contenant des retours charriot (¶). Les puristes diront que n'importe quelle donnée texte est une liste d'au moins une valeur... Et que donc le retour charriot n'est pas obligatoire pour définir une liste ! Soit. Laissons là les puristes et contentons-nous de voir nos listes comme des séries de valeurs texte avec retour charriot... Attention toutefois, pour que tout soit clair : la dernière valeur d'une liste n'est pas terminée par un retour charriot (¶), au contraire des autres ! ObtenirValeur() est très utile : cette fonction va extraire une valeur d'une liste, selon son numéro d'ordre dans la liste. Sa structure est ObtenirValeur ( ListeValeurs ; NuméroValeur ) ElémentsListeValeurs() est une fonction clé, à utiliser au sein des autres fonctions Liste. En effet, dans toutes ces fonctions, fort utiles, il faut bien déterminer à un moment sur quelle liste on veut faire jouer sa fonction ! S'il s'agit d'une liste définie dans une rubrique texte, pas de souci, on mentionne sa rubrique.
Par exemple :
Texte normalIndépendemment des listes, certaines fonctions concernent le travail sur du texte "normal", le plus souvent placé dans une rubrique texte. Ces fonctions concernent des caractères ou des mots. On peut du reste faire un parallèle entre ces fonctions texte et des fonctions liste :
Les fonctions Début(), Fin() et Extrait() sont assez simples, ainsi que les autres associées : on précise un endroit de démarrage dans le texte ou la liste, et on précise le nombre d'éléments désirés. Ainsi, Début ( "blabla" ; 2 ) demande d'extraire, depuis le début de la chaîne de caractères blabla les 2 premiers caractères, soit "bl". Pas très compliqué... Autre exemple : MotsFin ( "on précise un endroit de démarrage dans le texte ou la liste" ; 3 ) donnera "ou la liste", c'est à dire les trois derniers mots en partant de la fin. La fonction Filtre() oppose une suite de caractères de filtrage à une chaîne de caractères. Une utilisation courante est l'extraction de tous les chiffres d'un texte, sous la forme : Filtre ( RubAFiltrer ; "0123456789" ) qui rendra la valeur contenue dans la rubrique à filtrer, filtrée sur le contenu qui suit le ; (ici, on ne conserve que les chiffres et on élimine tous les autres caractères, blancs ou espaces compris). Attention : cette fonction est sensible à la casse (maj-min). Autres fonctions
Notons enfin que toute la puissance de ces diverses fonctions se trouve dans leurs combinaisons au sein d'une même formule de calcul. Seule l'imagination est la limite !
|