Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> неприятности с find and replace в word 
:(
    Опции темы
roni
Дата 8.9.2006, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 8.9.2006

Репутация: нет
Всего: нет



У меня мало опыта программирования в windows/delphi, в основном пишу на Оберон или fpc под юникс.

 Приятель хочет перевести свою документацию с с  armscii-8 (однобайтовая армянская кодировка, не признанная iso, можно найти упоминание о ней только в mozilla) в уникод.
Документация почти исключительно в .doc формате, парсить который не возможно, формат закрытый.
Пришлось цепляться к  word-у и заменять текст. Попробовал несколько вариантов, сработал только find & replace.

Теперь все работает, все хорошо, но... одна только проблема...

Есть такие символы в армянском, типа елочек, << и >>

Если они и именно они стоят рядышком, не разделенные пробелами, то все ок, они четко переводятся с armscii-8 в #171 и #187 соответственно.
А если между ними есть пробел, то правый значок становится таким же как левый.

Уже несколько дней потратил на эту чепуху.
Насколько я понимаю весь вопрос именно в участке кода в моем msofice.pas
Код


   WordApp.Selection.Find.ClearFormatting;
    WordApp.Selection.Find.Text := Search[i];
    WordApp.Selection.Find.Replacement.Text := Replace[i];
      WordApp.Selection.Find.Forward := True;
    WordApp.Selection.Find.Wrap := wdFindContinue;
      WordApp.Selection.Find.Format := False;
    WordApp.Selection.Find.MatchCase := wrfMatchCase in Flags;
    WordApp.Selection.Find.MatchWholeWord := False;
    WordApp.Selection.Find.MatchWildcards := wrfMatchWildcards in Flags;
    WordApp.Selection.Find.MatchSoundsLike := False;
    WordApp.Selection.Find.MatchFuzzy := false;
    WordApp.Selection.Find.MatchAllWordForms := False;


      WordApp.Selection.Find.Execute( Replace := wdReplaceAll);


есть подозрение на MatchAllWordForms, но если его включить, то приложение умирает во время работы с ошибкой, типа
The Find What text for a Find All Word  Forms search can only contain alphabetic letters

исходник прилагается

версия дельфи - 7. оффис - 2003


Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  conv.tar.gz 5,78 Kb
PM MAIL   Вверх
roni
Дата 8.9.2006, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 8.9.2006

Репутация: нет
Всего: нет



исходник легко откроется winzip-ом, или rar-ом, или total commander-ом smile

Также прилагаю word документ который может понадобиться для теста

Вы не увидите армянские буквы в нем, так каку вас нету armscii фонта, однако после конвертации можно увидеть уже уникодовские буквы фонтом sylfaen, Arial Unicode MS, или любым уникод фонтом.
armscii-8 Символы << и >> отображаются в sylfaen как
значок параграфа и вертикальная черта соответственно

После конвертации они превращаются в #171 и #187 если стоят рядышком.
спасибо



Это сообщение отредактировал(а) roni - 8.9.2006, 12:12

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  a.doc 20,00 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0515 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.