![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как определить количество символов в файле Micrpsoft Word? [D6, D7, WinXP]
SkySpeed © (2007-06-30 23:00:00)Собственно, сабж...
Как, используя Delphi, определить количество символов в файле Microsoft Word?
Palladin (2007-07-03 21:25:00) [1]
> umbra © (03.07.07 21:18) [11]
ахренеть
наберешь "123" в ворде и получшь 4...
дальше по спец символам - хуже
umbra (2007-07-03 21:18:00) [2]АХРЕНЕТЬ!
WordApp.Documents[1].Characters.Count
USTAS (2007-07-03 16:57:00) [3]
> 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. Ну низзя ж так, ошибка вылетела сразу в форум - не работает, посмотри, сам код поковыряй, почитай.
SkySpeed (2007-07-03 14:08:00) [4]
> 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 11:11:00) [5]вот из моего проекта рабочий код
требует наличия компонентов 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;
Palladin (2007-07-03 08:58:00) [6]ну попробуй после CreateOleObject
w.DisplayAlerts:=0;
SkySpeed (2007-07-03 01:38:00) [7]Собственно, вопрос - как нормально открыть вордовский файл (можно в скрытом режиме) и определить кол-во знаков с пробелами? Заранее спасибо!
SkySpeed (2007-07-03 01:37:00) [8]
> 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. После нажатия на "ОК", закрывается документ
USTAS (2007-07-02 10:00:00) [9]Статья
Работаем с MS Word - статистика документов
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=636
Palladin (2007-07-02 08:21:00) [10]
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;
SkySpeed (2007-07-01 12:26:00) [11]
> homm © (30.06.07 23:14) [1]
> Что такое «количество символов в файле Microsoft Word» ?
> GetFileSize?
Количество символов в Microsoft Word определяется, используя пункт меню Сервис-Статистика. В появившемся окне пункт "Знаков с пробелами" - это он и есть
homm (2007-06-30 23:14:00) [12]Что такое «количество символов в файле Microsoft Word» ?
GetFileSize?