На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
  
> Обработка .doc в Delphi 7 , Вопрос к знатокам насчет общей структуры документа
    Приветствую!

    В рамках программы перевода .doc в .htm у меня возникла проблема: выяснилось, что вокруг очень мало документации по структуре документов .doc . Ситуация: есть текст, в нем встречаются картинки, таблицы, просто текст -- и все это надо корректно перенести в .htm -файл. Если перебирать коллекции объектов -- например,
    ExpandedWrap disabled
      WordDocument.Paragraphs
    , выясняется, что они друг с другом не связаны, и составить из них единый документ (чтоб все было на своем месте) не получается. :blink:

    Сам вопрос. Есть ли некий класс объектов, который можно перебирать и обрабатывать объект по его типу?
    Если нет -- как еще можно организовать этот процесс?
    И еще один вопрос. Я слышал, что можно конвертировать сначала в .XML, а потом уже делать парсинг тегов. Сам вопрос -- есть ли стандартные функции перевода .doc -> .XML ? Если есть, то какие? Если нет -- есть ли компоненты для этого (желательно, со ссылкой).

    Спасибо.
      Цитата Shadowy,9.01.05, 11:05 @
      выяснилось, что вокруг очень мало документации по структуре документов .doc

      И ты ее не сможешь найти, она закрыта :). Структура документа строится на формате структурированных хранилищь, доступ к которым можно получить при помощи интерфейса IStorage, который в свою очередь строится на основе POIFS. Проще воспользоваться примером от jack128, не сильно вникая в подробности.
      Если есть желание и время могу рассказать подробности по форматам, но оно того думаю не стоит (в принципе 2 месяца назад краткое описание структуры POIFS я приводил на форуме) :)
      M
      Сообщения были разделены в тему "DOC -> HTML"
      Сообщение отредактировано: Song_Bot -
        Rouse_ спасибо за ответ. Проблема заключается в том, что мне нужно текст по мере записи в .htm еще и
        править -- формы там вставлять заместо некоторых элементов, цвет менять... Я почитал описание IStorage, и возникло несколько вопросов:

        1. Это стандартный компонент? Я не нашел его в списках компонент, его нет в хелпе, и (самое главное) компилятор не может его найти. А в сети о нем говорят как о чем-то само собой разумеющимся... Если это стандартный компонент -- подскажи слепому место, где он лежит, плиз :whistle: Или модуль, который его объявляет. Если же нет -- пожалста кинься в меня ссылкой, где его можно скачать...
        2. Перебор по объектам -- штука замечательная, но перебирая IStorage (опять-таки, не нашел его), я чувсвтую, что его придется как-то конвертить в удобочитаемую форму, проводя разбор по IStream. Правильно ли я понял?
        3. Учитывая все это -- может проще и безгеморройнее будет сначала сконвертить все в .htm, а затем сделать парсинг? (какой кошмар! :blink: :wacko: Парсинг тегов XML я себе представляю, но провести разбор того, что громоздит Word?.. :o ) Есть ли способ напрямую из Delphi законвертить документ в XML? что-нибудь в стиле "сохранить как, XML"?
        4. Неужто нет более простого пути? Вроде ссылки в таблице/рисунке на номер параграфа, в котором они расположены, или еще что...

        Спасибо.
        Сообщение отредактировано: Shadowy -
          Уря! Нашел решение данной проблемы (хоть и частичное)! 8-)

          В долгом прроцессе поиска по сети выловил ссылку на файл VBAWRD9.CHM (в Офисе). Там подробно изложена структура документа. И как выяснилось, у объекта Range также есть перечисление Tables !!! То есть
          ExpandedWrap disabled
            paragraph_current:=WordDocument.Paragraphs.Item(i);
            paragraph_current.Range.Tables.Item(j);// <--- Доступ к таблице по параграфу !!!!


          ЗЫЖ Но если есть еще какие методы, позволяющие сделать это еще менее напряжно -- буду рад узнать.

          Всем спасибо
          Удачи!
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0244 ]   [ 16 queries used ]   [ Generated: 27.04.24, 12:09 GMT ]