Чтение текста из RTF в Filemaker

Практические советы по работе с FileMaker, типичные задачи и их решения. У вас вопрос? Пишите сюда.
Ответить
Alexei Sytch
Сообщения: 106
Зарегистрирован: 21 сен 2017, 18:48
Откуда: Минск

Чтение текста из RTF в Filemaker

Сообщение Alexei Sytch » 11 дек 2017, 19:31

Доброе время суток!
Может у кого-нибудь есть велосипед для преобразования текста rtf файла в raw текст в Filemaker ?
Содержимое RTF файла-- платежное поручение в текстовом виде (выгрузка из банковской системы).

а-ля
=================
| документ №23| 123|
+---------------+------+
и т.е. никаких шрифтов и стилей, таблиц, только текст

Файлов больше 100 по одному на каждое поручение.

Цель положить содержимое каждого файла в отдельное текстовое поле (для дальнейшего парсинга)
Из готового пока нашел только варианты с Plugin --- Scribe, MBS и 24u SimpleFile - позволяют это делать

В идеале я вижу Custom Function которая из rtf текста вычисляет Filemaker text. Кто-нибудь сталкивался?

andrey volkov
Сообщения: 338
Зарегистрирован: 11 сен 2017, 13:42
Откуда: Санкт-Петербург

Re: Чтение текста из RTF в Filemaker

Сообщение andrey volkov » 12 дек 2017, 06:00

вообще-то в представленном "а-ля" отрывке мы как раз и видим таблицу с текстовой разметкой
у вас есть возможность прикрепить образец файла целиком?

PS. Обойтись можно и без кастом функций, просто выполнить парсинг скриптом

Аватара пользователя
Arcady
Администратор
Сообщения: 201
Зарегистрирован: 10 сен 2017, 20:45
Контактная информация:

Re: Чтение текста из RTF в Filemaker

Сообщение Arcady » 12 дек 2017, 09:13

RTF - это текстовый формат, так что можете воспользоваться плагином (рекомендую BaseElement - он бесплатный). Дальше вам придется парить текст отделяя его от форматирования. И обычно в RTF русский текст идет в виде UTF -кодов, так что потребуется обратное преобразование.

Рекомендую использовать предварительно какой-то конвертор для преобразования rtf -> text, запуска его из FM -скрипта (конвертор должен уметь запускаться из командной строки, для маков такие есть, для win тоже что-то было). А дальше уже читать плагином нормальный текст.
Аркадий Перла.
ТриА. Разработка решений для FileMaker
http://tria.pw

Alexei Sytch
Сообщения: 106
Зарегистрирован: 21 сен 2017, 18:48
Откуда: Минск

Re: Чтение текста из RTF в Filemaker

Сообщение Alexei Sytch » 12 дек 2017, 22:18

Спасибо за ответы!
andrey volkov писал(а):
12 дек 2017, 06:00
у вас есть возможность прикрепить образец файла целиком?

Код: Выделить всё

{\rtf1\ansi\ansicpg1251\deff0\nouicompat\deflang1049\deflangfe1049\deftab708{\fonttbl{\f0\fswiss\fprq2\fcharset204 Arial;}}
{\*\generator Riched20 10.0.15063}{\*\mmathPr\mnaryLim0\mdispDef1\mwrapIndent1440 }\viewkind4\uc1 
\pard\widctlpar\qj\f0\fs20 +---------------------------------+-------------+------+----+-------+----+\par
\'a6\'cf\'cb\'c0\'d2\'c5\'c6\'cd\'ce\'c5 \'cf\'ce\'d0\'d3\'d7\'c5\'cd\'c8\'c5 (\'f1\'ee\'ea\'f0\'e0\'f9\'e5\'ed\'ed\'e0\'ff)\'a6\'c4\'e0\'f2\'e0         \'a6\'d1\'f0\'ee\'f7  \'a6 X  \'a6\'cd\'e5\'f1\'f0\'ee\'f7 \'a6    \'a6\par
\'a6N 2                              \'a616.06.2008   \'a6\'ed\'fb\'e9   \'a6    \'a6\'ed\'fb\'e9    \'a6    \'a6\par
+---------------------------------+-------------+------+----+-------+----+\par
\'a6\'d1\'f3\'ec\'ec\'e0 \'e8 \'e2\'e0\'eb\'fe\'f2\'e0: \'d1\'f2\'ee \'ec\'e8\'eb\'eb\'e8\'ee\'ed\'ee\'e2 \'e1\'e5\'eb\'ee\'f0\'f3\'f1\'f1\'ea\'e8\'f5 \'f0\'f3\'e1\'eb\'e5\'e9                        \'a6\par
}
должен получиться такой текст

Код: Выделить всё


+---------------------------------+-------------+------+----+-------+----+
¦ПЛАТЕЖНОЕ ПОРУЧЕНИЕ (сокращенная)¦Дата         ¦Сроч  ¦ X  ¦Несроч ¦    ¦
¦N 2                              ¦16.06.2008   ¦ный   ¦    ¦ный    ¦    ¦
+---------------------------------+-------------+------+----+-------+----+
¦Сумма и валюта: Сто миллионов белорусских рублей                        ¦

Пока получилось только через плагин. Должно работать одинаково на Windows и на Mac но проверить могу только на Windows. Еще нашел в презентации Аркадия в 2015 перекодировщик для текста текста в RTF. Думаю как раз над обратным преобразованием. (в моем случае это не уникод, а ansi1251)

Ответить