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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сложная задача - Word и doc файлы, В 2-х словах не обьяснить 
:(
    Опции темы
Freeusr007
Дата 13.8.2008, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



У меня такая проблема. Ребят, помогите кто сможет.
Задача: Есть документы формата MS Word 97-2003 (*.doc).
В каждый документ помещено несколько статей. Каждая статья отделена от предыдущей Заголовком. Задание: выяснить, сколько статей в каждом документе, и сохранить их каждую, в отдельный документ TXT. Названием для этого TXT должен стать заголовок статьи.

Пример:
Document1.doc
Произвольный заголовок 1
Произвольный текст статьи

Произвольный заголовок 2
Произвольный текст статьи

Результат работы программы:

1.Произвольный заголовок 1.txt
2.Произвольный заголовок 2.txt

Я уже весь день сегодня промучался. Не знаю как и сделать. Т.е. были мысли сначала конвертить данный *.doc в html через компонент Word, а потом по тегам (компонент при конверте как я понял на экспериментах форматирование сохраняет) <p> и </p> вычлинять куски текста и сохранять. Но моих знаний тут не хватает. Помогите пожалуйста кто может. Спасибо.
PM MAIL   Вверх
aleksh
Дата 13.8.2008, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



для начала рекомендую, хотя бы ознакомится с этим, а после этого можно и по существу, но, думаю, не понадобится
PM MAIL   Вверх
Freeusr007
Дата 15.8.2008, 05:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ознакомился. Почитал и вник. Но там нет того что мне надо. Мне надо как-то узнать где начинается заголовок. Там этого нет. Вот тут уже идет некоторое обсуждение по моей теме. Но решения так и нет.
PM MAIL   Вверх
volvo877
Дата 15.8.2008, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2072
Регистрация: 15.11.2004

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



Если я тебя правильно понял, то тебе нужно что-то вроде:
Код
procedure TForm1.Button1Click(Sender: TObject);
var
  i, Count: integer;
  s: OleVariant;
  st, f_name: string;
  myStyle: OleVariant;
begin
  s := 'G:\Programs\Delphi\XL\test.doc';
  WordApplication1.Documents.Open(s,
    EmptyParam,EmptyParam,EmptyParam,EmptyParam,
    EmptyParam,EmptyParam,EmptyParam,EmptyParam,
    EmptyParam,EmptyParam,EmptyParam,EmptyParam,
    EmptyParam,EmptyParam);

  // Количество параграфов в документе
  Count := WordApplication1.ActiveDocument.Paragraphs.Count;
  for i := 1 to Count do begin
    // Получаем стиль очередного параграфа, и анализируем его
    myStyle := WordApplication1.ActiveDocument.Paragraphs.Item(i).Get_Style;
    if myStyle.NameLocal = 'Heading 1' then begin
      // здесь тебе останется добавить создание файла с именем f_name
      f_name := WordApplication1.ActiveDocument.Paragraphs.Item(i).Range.Text;
      Memo1.Lines.Add('-- new file: name = ' + f_name + ' --');
    end
    else begin
      // а здесь - дописывание в файл f_name строки st ...
      st := WordApplication1.ActiveDocument.Paragraphs.Item(i).Range.Text;
      Memo1.Lines.Add(st);
    end;
  end;
end;
(на форме - TWordApplication, в DOC-файле текст заголовков имеет стиль "Heading 1", весь остальной текст - стиль "Normal")
PM MAIL   Вверх
remax
Дата 24.8.2008, 01:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент
**


Профиль
Группа: Участник Клуба
Сообщений: 686
Регистрация: 7.4.2002
Где: Украина, Харьков

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



А обязательно нужно Delphi? В самом Ворде есть масса способов автоматизации этого процесса. По такому принципу делают массовую рассылку.


--------------------
Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

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

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


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

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

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


 




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


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

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