Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
Внизпомогите оптимизировать код Найти похожие ветки
← →
tivispider (2004-04-19 22:56) [0]Есть некоторый блок кода, который считывает весь текст из doc файла и записывает его в переменную wstr. Потом анализируется эта строка на предмет символа абзаца и записывается в массив.
var
MSWord:Variant;
wstr,wstr2:widestring;
i: longint;
begin
MSWord:=CreateOleObject("Word.Application");
MSWord.Documents.Open(docfilename);
wstr:=MSWord.ActiveDocument.Range(0).text;
MSWord.Quit;
Countstrok:=1;
for i:=1 to length(wstr) do
begin
if (Ord(wstr[i])<>13) then
wstr2:=wstr2+wstr[i]
else
begin
book[Countstrok].TempString:=wstr2;
inc(Countstrok);
wstr2:="";
end;
end;
Дело в том что запись текста в переменную wstr занимает очень долгое время. А нельзя обойтись без этого? Т.е. обрабатывать не переменную wstr а напрямую текст в файле?
Я пытался сделать так
if (ord(MSWord.ActiveDocument.Range(0).text[i]))<>13) then
wstr2:=wstr2 + MSWord.ActiveDocument.Range(0).text[i]
О пишет не совместимость типов. Чего я только не перепробовал! Без толку.
Может мне кто-нибудь помочь оптимизировать код?
← →
tivispider (2004-04-19 22:56) [0]Есть некоторый блок кода, который считывает весь текст из doc файла и записывает его в переменную wstr. Потом анализируется эта строка на предмет символа абзаца и записывается в массив.
var
MSWord:Variant;
wstr,wstr2:widestring;
i: longint;
begin
MSWord:=CreateOleObject("Word.Application");
MSWord.Documents.Open(docfilename);
wstr:=MSWord.ActiveDocument.Range(0).text;
MSWord.Quit;
Countstrok:=1;
for i:=1 to length(wstr) do
begin
if (Ord(wstr[i])<>13) then
wstr2:=wstr2+wstr[i]
else
begin
book[Countstrok].TempString:=wstr2;
inc(Countstrok);
wstr2:="";
end;
end;
Дело в том что запись текста в переменную wstr занимает очень долгое время. А нельзя обойтись без этого? Т.е. обрабатывать не переменную wstr а напрямую текст в файле?
Я пытался сделать так
if (ord(MSWord.ActiveDocument.Range(0).text[i]))<>13) then
wstr2:=wstr2 + MSWord.ActiveDocument.Range(0).text[i]
О пишет не совместимость типов. Чего я только не перепробовал! Без толку.
Может мне кто-нибудь помочь оптимизировать код?
← →
panov © (2004-04-19 23:00) [1]Скопируй через TClipboard.
← →
panov © (2004-04-19 23:00) [1]Скопируй через TClipboard.
← →
tivispider (2004-04-19 23:04) [2]Пример?
← →
tivispider (2004-04-19 23:04) [2]Пример?
← →
Andy BitOff © (2004-04-19 23:26) [3]TClipboard - F1.
Если ты попробуешь сам и у тебя не получится, то милости прошу. Обращайся.
← →
Andy BitOff © (2004-04-19 23:26) [3]TClipboard - F1.
Если ты попробуешь сам и у тебя не получится, то милости прошу. Обращайся.
← →
TUser © (2004-04-20 07:06) [4]Тормоза там есть, но не самые большие. Файл размером порядка 500 страниц (только текст) грузанулся за 13тыс. тиков, а разбросался по массиву стрингов за 5,5 тыс. тиков. А что делать - на большой файл надо много времени :)
← →
TUser © (2004-04-20 07:06) [4]Тормоза там есть, но не самые большие. Файл размером порядка 500 страниц (только текст) грузанулся за 13тыс. тиков, а разбросался по массиву стрингов за 5,5 тыс. тиков. А что делать - на большой файл надо много времени :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.034 c