Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как определить количество символов в файле 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?


Наверх

Титульная страница Поиск, карта сайта Написать письмо