From FAQ Filemaker

Tutoriel-Filemaker: Fonctions texte : exemple

<==Fonctions logiques : exemple ^ Calculs Flags de doublons==>

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 format
Liste de valeurs
Texte normal
Autres fonctions




Mise en format


Tout 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 valeurs


Une 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 !
Donc DécompteValeurs() comptera le nombre de retours chariot + 1.

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, une rubrique calculée au moyen de la fonction Liste(). Mais s'il s'agit d'une liste de valeurs FileMaker Pro, le seul moyen de faire jouer une de ces fonctions sur cette liste est d'utiliser au sein de son calcul ElémentslisteValeurs(), qui introduira dans le calcul le contenu effectif d'une liste de valeurs FileMaker Pro. La structure de la fonction étant ElémentsListeValeurs(NomFichier ; ListeValeurs), il faudrait donc y mettre à la fois le nom du fichier en cours et le nom de la liste. Comment ?

Par exemple :

Texte normal


Indé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 :

Caractères Mots Liste
Début() MotsDébut() ValeursDébut()
Fin() MotsFin() ValeursFin()
Extrait() MotsExtraits() ValeursExtraites()
Filtre() - ValeursFiltre()

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.
Toutes ces fonctions, comme les autres, peuvent utilement être associées ou cumulées. Par exemple, le nombre de mots ou de caractères peut être calculé. Nous y reviendrons dans la section avancée, mais tous vos essais et l'aide FMP de chaque fonction vous en apprendrons toujours énormément.

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 !

<==Fonctions logiques : exemple ^ Calculs Flags de doublons==>
Récupéré sur http://cqfd-fmp.fr/index.php?n=Tutoriel-Filemaker.Fonctions-texte
Page mise à jour le 26 juin 2019 à 08h58