Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
БогДелфей
422 / 330 / 36
Регистрация: 31.05.2011
Сообщений: 1,156
1

текст из документа word в мемо

25.01.2012, 14:57. Просмотров 1047. Ответов 0
Метки нет (Все метки)

возникли некоторые проблемы, а именно вместе с текстом передаются символы переноса, табуляция, которые мне нахер не упёрлись в мемо, может есть способы их как то исключить и получить только текст?
пробовал передавать в опен wdOpenFormatText и прочее, но нет спасения от этих символов(((
набросал вариант с реплейсом, но тоже как то не то, мне по сути нужно считывать именно абзацами и между ними удалить пустые строки, что бы был сплошной текст)))
есть ли разница между CreateOleObject('Word.Application') и TWordApplication.Create(nil) в скорости?
CreateOleObject возвращает IDispath, вернёт ли он 0 в случае неудачи?
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
Uses ComObj;
...
procedure TForm1.Button1Click(Sender: TObject);
var
  Word, Revert, ReadOnly, FileName: OleVariant;
  i, Count: Integer;
  s: String;
begin
  try
    Revert := False;
    ReadOnly := True;
    Word := CreateOleObject('Word.Application');
      if OpenDialog1.Execute then
        begin
          FileName := OpenDialog1.FileName;
          Word.Documents.OpenOld(FileName, EmptyParam, ReadOnly, EmptyParam, EmptyParam, EmptyParam, Revert, EmptyParam, EmptyParam, EmptyParam);
          Gauge1.MaxValue := Word.ActiveDocument.Paragraphs.Count;
          Memo1.Clear;
            for i := 1 to Gauge1.MaxValue do
              begin
                 s := StringReplace(Word.ActiveDocument.Paragraphs.Item(i).Range.Text, Chr($1), '', [rfReplaceAll, rfIgnoreCase]);
                 s := StringReplace(s, #13#7, '', [rfReplaceAll, rfIgnoreCase]);
                   if (Length(s)) <> 0 then
                     begin
                       Memo1.Lines.Add(StringReplace(s, #11, ' ', [rfReplaceAll, rfIgnoreCase]));
                       Gauge1.Progress := i;
                       Application.ProcessMessages
                     end;
              end;
        end;
  finally
    Word.Quit;
  end;
end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2012, 14:57
Ответы с готовыми решениями:

Как вытащить текст из Word-документа?
Помогите: как в Дельфе вытащить текст из Word-документа?

Текст в мемо с конца
Здравствуйте. Есть файл внутри файла записи допустим 1 2 3 4 5 6 7 8 9. Как...

Искажается текст в мемо при редактировании
Привет всем, есть текст примерно такого формата йцуйцуй 41241241 ка23 пр34...

Загрузить в мемо текст из нескольких компонентов
Я уже создавал недавно такую тему, но так и не понял как сделать чтобы в Memo...

Как переместить текст из мемо в стрингрид
В мемо задана матрица.Как ей можно програмно забить в стрингрид?

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2012, 14:57

не могу заставить выводить текст из поля мемо
В програме которая находиться в архиве не могу сделать чтоб при добавление...

Взять из Мемо текст в заданном интервале позиций
Подскажите как сделать что бы программа отсчитываля определённое количество...

Загрузить в мемо текст из неизвестного .txt с известным path
Привет. Подскажите как залить в Memo файл *.txt в заданной папке. Файл меняет...


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

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

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