Показать сообщение отдельно
  #4  
Старый 26.04.2008, 22:22
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

Очень интересно. Никогда не слышал чтобы MS открыл (для общественного пользования) проприетарный (закрытый) формат своих файлов, который используется в документах MS Word и MS Excel.
"Я делаю программу...", мало делать программу, надо знать формат файлов .doc, чтобы прочитать из нее данные. А для этого, как минимум, надо быть в команде разработчиков MS Word (а вы когда-нибудь были в Рендмоде?).

Впрочем, выход все равно есть. Если мы не можем напрямую работать с файлами формата Word, то воспользуемся возможностью Delphi работать с Word'ом через OLE. Например, так: открыть документ Word (не показывая самого Word'а) и выполнить одну из выше приведенных мной команд.
Код:
procedure Doc2html;
var
  WApp : Variant;
begin
  try
    WApp:= CreateOleObject('Word.Application');
  except
    on E : EOleError do begin
      MessageDlg('MS Word на компьютере не найден!', mtError, [mbOk], 0);
      Exit;
    end;
  end;
  
  try
    WApp.DisplayAlerts := false;
    WApp.Documents.Open(<имя файла doc>); 
    WApp.ActiveDocument.SaveAs(FileName:=<имя файла html>, 
          FileFormat:= wdFormatHTML);
  finally
    WApp := Unassigned;
  end;
end;
В секции uses надо указать один из OLE серверов "word2000", "wordXP" или "word97". Чтобы знать какие есть, смотрите исходники (находятся в Delphi\Ocx\Servers\).
Недостаток: на компе должен быть установлен MS Word.
Ответить с цитированием