Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1146567183
Id
2006-05-02 14:53
2006.05.21
Взаимодействие баз данных в пределах одного запроса


2-1146747984
Express
2006-05-04 17:06
2006.05.21
MDI-форма


1-1144417536
Steplerr
2006-04-07 17:45
2006.05.21
32-битные иконки в TreeView - как?


2-1146460388
it_work
2006-05-01 09:13
2006.05.21
Как перевести из string в shortString


2-1146665472
@gent
2006-05-03 18:11
2006.05.21
Как из edit вытащить дробное число ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский