Текущий архив: 2007.09.09;
Скачать: CL | DM;
Вниз
Как определить количество символов в файле Micrpsoft Word? Найти похожие ветки
← →
SkySpeed (2007-06-30 23:00) [0]Собственно, сабж...
Как, используя Delphi, определить количество символов в файле Microsoft Word?
← →
homm © (2007-06-30 23:14) [1]Что такое «количество символов в файле Microsoft Word» ?
GetFileSize?
← →
SkySpeed (2007-07-01 12:26) [2]
> homm © (30.06.07 23:14) [1]
> Что такое «количество символов в файле Microsoft Word» ?
> GetFileSize?
Количество символов в Microsoft Word определяется, используя пункт меню Сервис-Статистика. В появившемся окне пункт "Знаков с пробелами" - это он и есть
← →
Palladin © (2007-07-02 08:21) [3]
var
w,t:OleVariant;
s:String;
i:Integer;
begin
w:=CreateOleObject("Word.Application");
Try
w.Documents.Open(FileName:="c:\1.doc");
For i:=1 to w.ActiveDocument.ReadabilityStatistics.Count do
begin
t:=w.ActiveDocument.ReadabilityStatistics.Item(i);
s:=t.Value;
Memo1.Lines.Add(t.Name+" - "+s);
end;
Finally
w.Quit;
w:=Unassigned;
End;
end;
← →
USTAS (2007-07-02 10:00) [4]Статья
Работаем с MS Word - статистика документов
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=636
← →
SkySpeed (2007-07-03 01:37) [5]
> Palladin © (02.07.07 08:21) [3]
> var w,t:OleVariant; s:String; i:Integer;begin w:=CreateOleObject("Word.
> Application"); Try w.Documents.Open(FileName:="c:\1.doc");
> For i:=1 to w.ActiveDocument.ReadabilityStatistics.Count
> do begin t:=w.ActiveDocument.ReadabilityStatistics.
> Item(i); s:=t.Value; Memo1.Lines.Add(t.Name+" - "+s);
> end; Finally w.Quit; w:=Unassigned; End;end;
> USTAS (02.07.07 10:00) [4]
> СтатьяРаботаем с MS Word - статистика документовhttp://www.
> delphikingdom.com/asp/viewitem.asp?catalogid=636
После помещения на форму кнопки с кодом:procedure TForm1.Button1Click(Sender: TObject);
var
w,t:OleVariant;
s:String;
i:Integer;
begin
w:=CreateOleObject("Word.Application");
Try
w.Documents.Open(FileName:=""E:\test.doc"");
For i:=1 to w.ActiveDocument.ReadabilityStatistics.Count do
begin
t:=w.ActiveDocument.ReadabilityStatistics.Item(i);
s:=t.Value;
ShowMessage(t.Name+" - "+s);
end;
Finally
w.Quit;
w:=Unassigned;
End;
end;
..., запуска приложения и нажатия на ОК происходит появление следующих окон - сдуреть можно!
1. Данный файл используется другим приложением или пользователем.
(C:\Documents and Settings\...\Normal.dot)
2. Открывается диалоговое окно "Сохранение документа" "Normal.dot"
3. После нажатия на "Отмена" открывается сам документ в полноэкранном режиме
4. После закрытия документа выскакивает табличка с надписью - "Общий шаблон "Normal.dot" был изменён. Сохранить его?"
5. После нажатия на кнопке "Нет" выскакивает табличка с надписью:
"Нельзя сохранить данный файл, поскольку он используется другим процессом.
(C:\Documents and Settings\...\Normal.dot)"
P.S.: ни один вордовский файл не открыт!
6. После нажатия на "ОК", закрывается документ
← →
SkySpeed (2007-07-03 01:38) [6]Собственно, вопрос - как нормально открыть вордовский файл (можно в скрытом режиме) и определить кол-во знаков с пробелами? Заранее спасибо!
← →
Palladin © (2007-07-03 08:58) [7]ну попробуй после CreateOleObject
w.DisplayAlerts:=0;
← →
USTAS (2007-07-03 11:11) [8]вот из моего проекта рабочий код
требует наличия компонентов TWordApplication и TWordDocument
var FileName,j: OleVariant;
i: Integer;
begin
FileName := FilenameEdit.FileName;
WordApplication.Visible := False;
WordApplication.Options.CheckSpellingAsYouType:=False;
WordApplication.Options.CheckGrammarAsYouType:=False;
WordApplication.Connect;
WordApplication.Documents.Open(FileName,EmptyParam,EmptyParam,EmptyParam,EmptyPa ram,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);
WordDocument.ConnectTo(WordApplication.ActiveDocument);
//статистика документа
WCount := WordDocument.ComputeStatistics($00000000);
StrCount := WordDocument.ComputeStatistics($00000001);
CCount := WordDocument.ComputeStatistics($00000003);
SCount := WordDocument.ComputeStatistics($00000005);
PCount := WordDocument.ComputeStatistics($00000002);
with Memo do begin
Lines.Add("Word count - " + IntToStr(WCount));
Lines.Add("Lines count - " + IntToStr(StrCount));
Lines.Add("Signs without blanks - " + IntToStr(CCount));
Lines.Add("Signs with blanks - " + IntToStr(SCount));
Lines.Add("Pages count - " + IntToStr(PCount));
end;//with
TabCount := WordDocument.Tables.Count;
Memo.Lines.Add("Tables count - " + IntToStr(TabCount));
BmCount := WordDocument.Bookmarks.Count;
Memo.Lines.Add("Bookmarks count - " + IntToStr(BmCount));
//статистика документа
//работа с закладками
for i := 1 to WordDocument.Bookmarks.Count do begin
j := i;
ListBoxBookmarks.Items.Add(WordDocument.Bookmarks.Item(j).Name);
end;//for
//работа с закладками
WordDocument.Save;
WordDocument.Close;
WordApplication.Disconnect;
end;
← →
SkySpeed (2007-07-03 14:08) [9]
> Palladin © (03.07.07 08:58) [7]
> ну попробуй после CreateOleObjectw.DisplayAlerts:=0;
Не помогло. Ошибки те же остались
> USTAS (03.07.07 11:11) [8]
Delphi ругается на:WordApplication.Documents.Open(FileName,EmptyParam,EmptyParam,EmptyParam,E mptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);
Ошибка: Not enough actual parameters
← →
USTAS (2007-07-03 16:57) [10]
> Delphi ругается на:
> WordApplication.Documents.Open(FileName,EmptyParam,EmptyParam,
> EmptyParam,E mptyParam,EmptyParam,EmptyParam,EmptyParam,
> EmptyParam,EmptyParam);
> Ошибка: Not enough actual parameters
Ну почитай в хэлпе да в тырнете, про компонент WordApplication. Вполне возможно что не хватает чего то в uses (ActiveX,ComObj или еще чего). Мой код рабочий 100%, потому как проект работает уже не первый год, писался проект в Delphi 5. Ну низзя ж так, ошибка вылетела сразу в форум - не работает, посмотри, сам код поковыряй, почитай.
← →
umbra © (2007-07-03 21:18) [11]АХРЕНЕТЬ!
WordApp.Documents[1].Characters.Count
← →
Palladin © (2007-07-03 21:25) [12]
> umbra © (03.07.07 21:18) [11]
ахренеть
наберешь "123" в ворде и получшь 4...
дальше по спец символам - хуже
Страницы: 1 вся ветка
Текущий архив: 2007.09.09;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.031 c