FileMaker 14 : contrôle des fins de lignes LF et CRLF
FileMaker 14 : contrôle des fins de lignes LF et CRLF
14 May 2015 - Author : - Categories : Blog, FileMaker, Technique, Vidéo

FileMaker 14 : contrôle des fins de lignes LF et CRLF

TextWrangler Icon

Mise à jour : FileMaker 16 rend désormais la technique expliquée ci-dessous inutile. Voici une technique la remplaçant.

 

Pour qui ne connait pas FileMaker, c’est assez difficile à croire, et pour nous qui le connaissons bien, assez difficile à avouer, mais comme toutes les plateformes, FileMaker a ses faiblesses.

Il y en a une qui remonte aux premières versions de FileMaker (soit juste après l’invention du biface), et qui nous empêche de contrôler les fins de lignes dans un fichier texte exporté par FileMaker.
C’est peut-être un détail pour vous, mais pour ceux qui doivent travailler dans des environnements hétérogènes Mac/Windows ça veut dire beaucoup. Et plus encore si ces fichiers texte sont “avalés” par des systèmes d’exploitation plus rudimentaires tels que ceux embarqués dans, par exemple, des machines de laboratoire ou des robots (un cas classique : on peut commander ces machines en leur déposant un fichier texte quelque part, mais encore faut-il que ce fichier soit formaté exactement comme il faut).

Peut-être avez-vous déjà fait l’expérience d’exporter un fichier texte depuis FileMaker sur Mac, même en prenant soin de choisir l’option ANSI (Windows) comme format, et en l’ouvrant avec le Bloc-notes de Windows, vous avez constaté que les retours à la ligne étaient absents? (en fait ils n’étaient pas absents, mais Windows ne comprend pas qu’il s’agit d’un retour à la ligne). Ceci dit, bien des logiciels sous Windows sont suffisamment bien pensés pour interpréter le CR comme une fin de ligne.

Ceci est dû à une longue querelle entre Apple-Montaigu et Windows-Capulet (à moins que ce ne soit l’inverse)
UNIX utilise le “Line Feed”, appelé LF Char (10)
Le Mac (qui a toujours raison, car il est le plus beau) utilise le retour chariot (CR pour carriage return), ou Char (13). C’est aussi ce que FileMaker utilise en interne et représente par le signe ¶.
Windows (qui est fait pour ceux qui s’y connaissent, et donc a encore plus raison) utilise une combinaison des deux : CRLF. Ceinture et bretelles.

Il n’y avait donc pas de moyen “natif” jusqu’ici de contrôler cette fin de ligne. On pouvait toutefois utiliser une commande externe (AppleScript, shell, batch…) ou un plugin, mais ça semblait être un marteau pour écraser une mouche… et ça n’était pas compatible FileMaker Go et WebDirect (oui, je sais, on trouve toujours le moyen, mais avec des bidouilles anormales).

On finissait par se dire que personne chez FileMaker ne se pencherait sur le problème… et on avait raison !
Mais, au détour d’une modification apportée par FileMaker 14, nous avons un moyen de parvenir à nos fins.

Attention toutefois, si grâce à cette technique on peut contrôler le LF ou le CRLF, il est paradoxalement impossible de contrôler le CR. Un export natif vous permet malgré tout toujours de créer un fichier CR (et puis honnêtement, le Mac étant le seul à l’utiliser, et étant par ailleurs suffisamment bien conçu pour s’accomoder très bien d’un LF ou d’un CRLF, il n’est pas crucial d’exporter en CR).
Si vous n’avez rien compris, c’est que j’ai mal expliqué. Laissez-moi une deuxième chance en regardant la vidéo et une troisième en téléchargeant le fichier 🙂
Si vous aimez, n’hésitez pas à mettre un petit commentaire ci-dessous.

Note : dans cette vidéo, nous utilisons un traitement de texte TextWrangler gratuit, que vous pouvez trouver ici

Téléchargez le fichier de démo ici : Fichier 1MT_EndOfLine.fmp12

Prev / Next Post

Add comment