Форум: "Прочее";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];
ВнизПрочитать RTF формат Найти похожие ветки
← →
Yuri Btr © (2006-04-25 14:09) [0]Всем привет,
Есть такая проблема - нужно в заранее заготовленный шаблон вставлять свои строки. Шаблон содержит таблицы и возможно графику. По давнему совет одного из посетителей этого форума, я взялся за RTF формат, подготовил шаблон в Word"е в ячейках таблицы прописал свои тэги типа - #year , #name и т.д. Т.Е. символ начала тэга - #.
Далее мне естественно нужно было сделать "ручное" чтение файла для нахождения тегов. Тут и появилась проблема.
Когда вводил данные в таблицу в первый раз, то при просмотре блокнотом содержимого rtf файла, все тэги были написаны слитно - в одной группе, отделённой скобками {}.
Например вот так{\b\lang1033\langfe1049\langnp1033\insrsid4922365\charrsid9921290 #Vsailpoint}
Но при дальнейшем редактировании шаблона тем же Word"ом оказалось что он может разбивать слова написанные слитно, например так{\b\lang1033\langfe1049\langnp1033\insrsid12808311 #Vs}{\b\lang1033\langfe1049\langnp1033\insrsid1914967 ail}{\b\lang1033\langfe1049\langnp1033\insrsid7868707 p}{\b\lang1033\langfe1049\langnp1033\insrsid1914967 oint}
Т.Е. при абсолютно одинаковом форматировании у всех трёх кусков моего тега/слова "#Vsailpoint" оказался разный тэг "\insrsid" - в описании стандарта RTF такой тэг не упоминается - следовательно изобретение Микрософта. Но нигде нет информации об этом "звере" - кто нибудь может помочь узнать что делает тэг "insrsid" помимо тупого увеличения размера файла ?
← →
Eraser © (2006-04-25 14:24) [1]
> Yuri Btr © (25.04.06 14:09)
>
> Всем привет,
> Есть такая проблема - нужно в заранее заготовленный шаблон
> вставлять свои строки.
Я бы делал так - сохранил отдельно фрагменты, которые не надо менять. А потом последовательно "склеил" их, конечно же добавляя между ними нужный текст...
ЗЫ Это удобнее делать, используя TjvRichEdit из JEDI VCL.
← →
Джо © (2006-04-25 14:27) [2]> кто нибудь может помочь узнать что делает тэг "insrsid"
In Word 2002, a new style of revision tracking was established. RSIDs
(Revision Save IDs) indicate when text or a property was changed.
Whenever text is added or deleted or properties are changed, that text
or property is tagged with the current "Save ID," which is a random
number that changes each time the document is saved. They are
primarily used when merging or comparing two documents with a common
history but no revision marks. By looking at the RSID we can tell
which of the two authors made the change. Without the RSID we can only
tell that there is a difference, but we don"t know if (for example) it
was an addition by author A or a deletion by author B. An RSID table
is placed after all other style definitions and before the <generator>
and <info> groups.
The syntax for an RSID table is as follows:
<rsidtable> "{" \*\rsidtbl <rsidlist>+ ";" "}"
<rsidlist> \rsidN
Control word Meaning
\rsidN Each time a document is saved a new entry is added to
this table,
with N being the random number assigned to represent
the unique session.
\insrsidN An RSID is inserted to denote the session in which
particular text was inserted.
Example: {\insrsid8282541 This is text.}
For use in lists:
{\insrsid8282541 Item in List
\par{\listtext\pard\plain\f3\insrsid8282541 \loch\af3\dbch\af0
\hich\f3 \"b7\tab}}
\rsidrootN Designates the start of the document"s history (first
save).
\delrsidN RSID value identifying when text was marked as
deleted.
\charrsidN RSID value identifying when character formatting was
changed.
\sectrsidN RSID identifying when section formatting was changed.
\pararsidN RSID identifying when paragraph formatting was
changed.
\tblrsidN RSID identifying when table formatting was changed.
← →
Gydvin © (2006-04-25 14:36) [3]Насколько я знаю, если rtf редактору попадается неизвестное управляющее слово он его просто пропускает
← →
Yuri Btr © (2006-04-25 14:50) [4]to Джо © (25.04.06 14:27) [2]
Есть, я так и думал, что для меня эти самые insrsid вовсе и не нужны. Огромное спасибо, а всё таки, откуда инфа ? в MSDN нету :(
to Gydvin © (25.04.06 14:36) [3]
> Насколько я знаю, если rtf редактору попадается неизвестное
> управляющее слово он его просто пропускает
Проблема не в этом, а в том, что мне нужно выдрать свои теги из RTF формата.
to Eraser © (25.04.06 14:24) [1]
Спасибо - мысль хорошая, но всё таки хотелось оставить пользователям свободу по редактированию шаблонов в визуальном редакторе.
← →
Джо © (2006-04-25 14:52) [5]> Огромное спасибо, а всё таки, откуда инфа
Из Гугла, вестимо. Где-то из 2-3 строчки результатов поиска по "insrsid".
← →
Yuri Btr © (2006-04-25 15:14) [6]to Джо © (25.04.06 14:52) [5]
Странно, а я на Яндексе искал :(
Всё таки Гугл лучше ;)
← →
Kilkennycat © (2006-04-25 15:24) [7]Могу посоветовать EkRTF, мощная компонента...
← →
Yuri Btr © (2006-04-25 15:34) [8]to Kilkennycat © (25.04.06 15:24) [7]
> Могу посоветовать EkRTF, мощная компонента...
Да я тут уже через WinAPI обошёлся :)
Однако я подозреваю, что тот же EkRTF и TjvRichEdit тем более работают со стандартным микрософтовским классом Rich Edit, а это значит что эти charrsid и т.д. будут в ЛЮБОМ случае.
← →
Kerk © (2006-04-25 18:33) [9]У меня есть так работающие отчеты. Берется RTF-ник, открывается блокнотом и прям внутрь в нужные вставляются слова типа %NUMBER%. Никаких проблем с дальнейшей обработкой нет.
← →
Yuri Btr © (2006-04-25 20:54) [10]to Kerk © (25.04.06 18:33) [9]
Но ведь ваш способ далёк от доступного пользователям визуального редактирования ...
Может есть какие то альтернативные движки, а то я замучился уже, от insrsid я избавился, а от charrsid никак не получается
← →
лшдлуттн (2006-04-25 20:56) [11]
> [10] Yuri Btr © (25.04.06 20:54)
непонятно, чем керковский способ джалек от визуализации.юю. тот же формфайлеер на основе тэгов намбер в пять сек бабахнуть...
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.011 c