Página 1 de 1

Exportar un fichero de texto con codificación específica

NotaPublicado: 22 May 2016, 23:14
por Alquimista
Hola,

Estoy generando desde FileMaker Pro 14 un documento EDI (albarán electrónico) pero parece que el receptor tiene problemas para entender lo que envío y sospecho que la culpa la tiene el carácter usado para marcar el cambio de línea y la codificación del mismo.
Usando TextWrangler he averiguado que el Mac el divisor de líneas (Line Break) es CR mientras que en Windows es CRLF. Además se necesita que el documento esté codificado como UTF-8 y FileMaker Pro no genera ese formato ni desde Mac ni desde Windows.
Ya me veía usando TextWrangler como intermediario para transformar el fichero generado por FileMaker Pro cuando se me ha ocurrido buscar en el plugin MBS y sí, resulta que entre sus 3.700 funciones las hay para re-codificar textos.

Partiendo de un campo EDI con el texto a exportar:

MBS ( "String.ReplaceNewline"; EDI ; 3 ) --> Transforma los CR en CRLF
MBS ( "String.WriteTextFile"; EDI ; $Path ; "utf8" ) --> Exporta el texto del campo EDI al fichero indicado en $Path recodificándolo como UTF8.
Ademas hay que usar MBS ( "Path.FilemakerPathToNativePath"; $Path ) para adecuar el path à la FileMaker Pro al estilo MBS.

El paso de guión completo sería:

  1. Establecer variable $Error = Let ([// Adecúo el path$Path = MBS ( "Path.FilemakerPathToNativePath"; Get ( DesktopPath ) & "Albaran.edi" ) ;// Cambio los Saltos de línea por CRLF$TextoCRLF = MBS ( "String.ReplaceNewline"; EDI ; 3 ) ] ; // Exporto el ficheroMBS ( "String.WriteTextFile"; $TextoCRLF ; $Path ; "utf8" ) )


Y asunto resuelto. Como ya les dije en su día, MBS no es un plugin, es un sub-Sistema Operativo.