Форум: "Corba";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];
ВнизЧтение строк из существующего doc-файла (word)... как? Найти похожие ветки
← →
Hmm © (2005-02-19 22:46) [0]Здраствуйте уважаемые.
Возникла проблемма: необходимо читать строки из Word-овского файла и писать их в базу. Собственно, порылся в доступных мне книжках, нашел кучу инфы по созданию и записи в *.doc через WordApplication... как быть с чтением из уже существующего файла?
Буду благодарен любой инфе: пример, ссылка на статью... заранее спасибо.
← →
YurikGL © (2005-02-19 23:22) [1]
> Возникла проблемма: необходимо читать строки из Word-овского
> файла и писать их в базу.
Если эти строки разделены чем-нибудь, то без проблем. У документа есть свойство абзацы w1.ActiveDocument.Paragraphs. Через него и читай.
Немножко здесь описано. http://www.delphimaster.ru/articles/dbtoword/index.html
← →
Hmm © (2005-02-19 23:39) [2]Хм... собственно, подобные примеры с selection и т.д. я уже видел в изобилии... писать простенькие отчеты в word я умею. Попытки же читать в некую переменную типа string строку doc-овского файла у меня не досих пор не удавались... я даже не обнаружил каких либо методов, намекающих на чтение...
Если не трудно - черканите пару строк: асоциирование некого файла с wordapplication.(и т.д.) и функцию загоняющую к примеру выделенный текст в переменную.
ЗЫ: сорри если вопросы совсем ламерские.
← →
YurikGL © (2005-02-20 08:26) [3]
> Hmm © (19.02.05 23:39) [2]
попробуй что-то типаWordApplication1.ActiveDocument.Range(2,2).Text;
WordApplication1.ActiveDocument.Paragraphs.Item(1).Range.Text
← →
Hmm © (2005-02-20 10:16) [4]
> WordApplication1.ActiveDocument.Paragraphs.Item(1).Range.Text
то, что нужно... спасибо.
еще вопрос, можно ли как то заранее узнать кол-во строк в документе? на данный момент у меня одна идея останова программы - ловить экспешн EOleException "запрашиваемый номер не сущесвует", есть ли более граммотный способ проверить окончание записей в документе?
← →
YurikGL © (2005-02-20 10:55) [5]
> еще вопрос, можно ли как то заранее узнать кол-во строк
> в документе?
Строк - не знаю... Параграфов, как и у любой коллекции - можно
Что-то типа
WordApplication1.ActiveDocument.Paragraphs.count
← →
Hmm © (2005-02-20 14:01) [6]то, что нужно... спасибо за помощь.
← →
GanibalLector © (2005-02-20 14:38) [7]
var WordApp:OleVariant;
i1,i2,i3,i4:integer;
begin
WordApp := CreateOleObject("Word.Application");
WordApp.Documents.Open("C:\2.doc");//например
WordApp.visible:=true;
i1 := WordApp.ActiveDocument.Characters.Count;
i2 := WordApp.ActiveDocument.Words.Count;
i3 := WordApp.ActiveDocument.Sentences.Count;
i4 := WordApp.ActiveDocument.Sections.Count;
WordApp:=UnAssigned;
messagedlg("символов:"+inttostr(i1)+#10#13+
"слов:"+inttostr(i2)+#10#13+
"предложений:"+inttostr(i3)+#10#13+
"частей:"+inttostr(i4),mtinformation,[mbOk],0 );
end;
и это только начало ;) можно считать АБСОТЮТНО все .
← →
YurikGL © (2005-02-20 14:41) [8]
> i4 := WordApp.ActiveDocument.Sections.Count;
А что за секции? Просто интересно...
← →
GanibalLector © (2005-02-20 15:22) [9]>А что за секции? Просто интересно...
Да,ХЕЗ.Обычный интерфейс...Borland\Delphi\Ocx\Servers\Word97.pas
// *********************************************************************//
// Interface: Sections
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {0002095A-0000-0000-C000-000000000046}
// *********************************************************************//
Sections = interface(IDispatch)
["{0002095A-0000-0000-C000-000000000046}"]
function Get__NewEnum: IUnknown; safecall;
function Get_Count: Integer; safecall;
function Get_First: Section; safecall;
function Get_Last: Section; safecall;
function Get_Application: WordApplication; safecall;
function Get_Creator: Integer; safecall;
function Get_Parent: IDispatch; safecall;
function Get_PageSetup: PageSetup; safecall;
procedure Set_PageSetup(const prop: PageSetup); safecall;
function Item(Index: Integer): Section; safecall;
function Add(var Range: OleVariant; var Start: OleVariant): Section; safecall;
property _NewEnum: IUnknown read Get__NewEnum;
property Count: Integer read Get_Count;
property First: Section read Get_First;
property Last: Section read Get_Last;
property Application: WordApplication read Get_Application;
property Creator: Integer read Get_Creator;
property Parent: IDispatch read Get_Parent;
property PageSetup: PageSetup read Get_PageSetup write Set_PageSetup;
end;
Страницы: 1 вся ветка
Форум: "Corba";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.036 c