0 / 0 / 2
Регистрация: 30.05.2013
Сообщений: 14
1

Подсчет цифр файла doc

09.10.2013, 22:03. Показов 897. Ответов 2
Метки нет (Все метки)

Задание: Дан файл Word. Вычислить количество цифр в нем. Нашел подобную программу от нашего модератора Происк текста в файле документа MS Word. изменил немного код, программа теперь находит одну цифру и прибавляет к сумме 1. Как доделать? Подскажите...
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,ComObj;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
 
function FindInDoc(const aWdDoc : Variant; const aSearchText : String) : Variant;
const
  wdFindStop = 0; //행橓淙嶢?禎尿?穽?哀增畏孼僚 藎陝擾?怏涉暹佺?
var
  wdRng, wdFind : Variant;
begin
  VarClear(Result);
  //쾌涉暹佺, 奠循執循僥 蓴?櫛鴨阻夭赤 哀有靭粧?
  wdRng := aWdDoc.Content;
  //昆增尊隅?禎尿魏.
  wdFind := wdRng.Find;
  //wdFind.ClearFormatting;
  wdFind.Text := aSearchText;
  //True - 禎尿?橓增?剪 壯妬乙 - ?惟莊?怏涉暹佺?
  wdFind.Forward := True;
  //wdFindStop - 裔橓淙嶢?禎尿?穽?哀增畏孼僚 藎陝擾?怏涉暹佺?
  //wdFind.Wrap := wdFindStop;
  if wdFind.Execute then Result := wdRng;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
  wdApp, wdDoc, wdRng : Variant;
  SearchText : string;
  Od : TOpenDialog;
  Summa:integer;
  letter:char;
begin
summa:=0;
  //희惟荏?鎭揄?
  SearchText := '4';
  Od := OpenDialog1; //OpenDialog1 槍?哀飮孼 岫潗 壯 切鏃?
  if Od.InitialDir = '' then
    Od.InitialDir := ExtractFilePath( ParamStr(0) );
  if not Od.Execute then Exit;
  if not FileExists(Od.FileName) then begin
    MessageBox(0, '斗雨 ?裔菴牆忽 夭孼諺 張 壯藕孼. 콸栯軫猥 剪靭張狀.'
      ,'斗雨 張 壯藕孼', MB_OK + MB_ICONEXCLAMATION + MB_APPLMODAL);
    Exit;
  end;
  try
    wdApp := CreateOleObject('Word.Application');
  except
    MessageBox(0, '袞 昶贍前?裔艇增嶢?MS Word. 콸栯軫猥 剪靭張狀.',
      '丘矮魏', MB_OK + MB_ICONERROR + MB_APPLMODAL);
    Exit;
  end;
  wdApp.Visible := True;
  wdDoc := wdApp.Documents.Open(Od.FileName);
  wdRng := FindInDoc(wdDoc, SearchText);
  if VarIsClear(wdRng) then begin
    ShowMessage('屢揄?考 壯藕孼.');
    Exit;
  end;
          Summa:=Summa+1;
  label1.Caption:=InttoStr(Summa);
end;
end.
Вложения
Тип файла: rar лба.rar (182.3 Кб, 5 просмотров)
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.10.2013, 22:03
Ответы с готовыми решениями:

Рекурсия: подсчет количества цифр в тексте файла
Напишите рекурсивную функцию без параметров, подсчитывающую количество цифр в тексте, заданном во...

Создание/склеивание doc\docx файла из шаблона doc\docx с заменой ключевых слов
Подскажите, как можно такое реализовать? Я узнал, что в rtf нельзя делать разрыв страницы, а...

Подсчет слов в doc файле
Здравствуйте. Помогите, а то у меня ничего не получается. Необходимо написать wsh скрипт, который...

Загрузка содержимого doc файла в RichTextBox по пути файла
Как вывести данный в RichTextBox с doc документа по его пути при нажатие кнопки?

2
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
31250 / 20427 / 7963
Регистрация: 22.10.2011
Сообщений: 35,467
Записей в блоге: 6
09.10.2013, 23:28 2
А если я перепишу функцию поиска вот так:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function FindInDoc(const aWdDoc : Variant; const aSearchText : String) : Variant;
const
  wdFindStop = 0;
var
  wdRng, wdFind : Variant;
begin
  wdRng := aWdDoc.Content;
  wdFind := wdRng.Find;
 
  wdFind.Text := aSearchText;
  wdFind.Wrap := wdFindStop;
 
  Result := 0;
  while wdFind.Execute do
  begin
    Inc(Result);
    wdRng.Collapse(Direction:=wdCollapseEnd);
  end;
end;
, и запущу ее:

Delphi
1
Count := FindInDoc(wdDoc, '^#');
, как думаешь, что она найдет?
1
0 / 0 / 2
Регистрация: 30.05.2013
Сообщений: 14
10.10.2013, 00:24  [ТС] 3
Цитата Сообщение от UI Посмотреть сообщение
А если я перепишу функцию поиска вот так:
, как думаешь, что она найдет?
Спасибо, работает отлично, у меня Delphi 7, поэтому пришлось убрать строчку
Delphi
1
 wdRng.Collapse(Direction:=wdCollapseEnd);
- С ней не работало.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.10.2013, 00:24

Обработка файла *.doc
Долго думал, в какой раздел поместить вопрос. Начал делать на C#, поэтому поместил сюда. Итак,...

Копирование из файла doc
Нужно скопировать текст из файла .doc в RichEdit Заранее благодарен за помощь :)

Парсинг doc файла
Всем привет!!! Есть Doc файлы содержащие в себе заголовки написанные заглавными буквами. Необходимо...

Чтение .doc файла
Как можно с помощью php - кода выводить информацию которая написана в файле .doc(который находиться...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.