Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.03;
Скачать: CL | DM;

Вниз

Быстрая обработка текста   Найти похожие ветки 

 
pelmen ©   (2002-09-13 20:32) [0]

У меня такая задача.
Hужно быстро работать с текстом, точнее с текстовыми файлами

Для начала.
Есть пол-мегабайта (в дальнейшем скорей всего разростется до десятков мегабайт)
текстовый файл
на первом этапе его надо обработать (каждую строку разбить на несколько подстрок)

а потом с этими подстроками работать.

Подозреваю что сейчас сделано совсем не по уму, точнее через ж.
Сейчас изначальный файл гружу в TRichEdit
==
fafafa;lllll;bbbbb
gtgtgt;jjjjj;ccccc
wewewe;yyyyy;ttttt
==
на выходе 3 TRichEdit
==
fafafa
gtgtgt
wewewe
==
==
lllll
jjjjj
yyyyy
==
==
bbbbb
ccccc
ttttt
==

с ними и работаю.
т.е. зная номер нужной мне строки я могу обратиться к любому из трех полей исходной строки.
По хорошему надо-бы использовать базу данных для этих целей,
_но_ не уверен что будет быстрей т.к. ничего сложного потом с ними не делаю, просто надо быстро доставть значения полей зная номер строки

и переделывать пока лень, но надо находить более быстрый движок,
а то ну очень дого работает.


И вторая задача:
Шаболонная техника:
Есть файл шаблона в которм ищется спец. слова(например %head%), которые надо заменить на нужный мне кусок текста.
При каждом запросе функции в которой происхоит заполненние шаблонной страницы
я гружу файл шаблона с диска в TRichEdit,
потом циклом прохожусь по всем строкам, ища вхождения спец.слова, при нахождении меняю его на нужный кусок текста.

Опять вопрос: как сделать это быстрее?


 
TTCustomDelphiMaster ©   (2002-09-13 21:13) [1]

Все так туманно...
Оптимизировать ваш алгоритм невозможно, потому что вы не сообщили ничего о глобальной задаче. По этой же причине невозможно предложить вам какой-то другой алгоритм обработки текста.


 
jones   (2002-09-23 11:58) [2]

попробуй поюзать регулярные выражения (TRegexp), должна работать шустро. в частности позволяет искать по шаблону.


 
Леха_   (2002-09-23 12:01) [3]

еще хорошая библиотека QStrings работает быстрее стандартных фукций(не говоря о том что позволяет делать намного больше)


 
3asys   (2002-09-23 12:18) [4]

>>pelmen
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1031915428&n=0
Может быть что-нибудь найдете для себя.

С Уважением, 3asys


 
Yuri-7   (2002-09-23 12:21) [5]

Для начала откажись от RichEdit. Грузи в TStringList, а потом уже можешь использовать QStrings или что угодно.


 
Separator ©   (2002-09-23 13:25) [6]

Одно замечание. тебе не нужно вообще все жто грузить в память, так как усли файл разрастется до 10 мегабайт, то прикинь скока твоя прога будет жрать ресурсов, так что работай с диском или всеже прейди на какю-нибудь базу данных.


 
REA   (2002-09-23 13:29) [7]

>Есть файл шаблона в которм ищется спец. слова(например %head%), которые надо заменить на нужный мне кусок текста

В Web компонентах есть такая фича - на вход дается HTML с тэгами типа <Head>, и цепляются обработчики на каждый тэг. На выходе тот же HTML, но уже со значениями.


 
Separator ©   (2002-09-23 13:42) [8]

>Есть файл шаблона в которм ищется спец. слова(например %head%), которые надо заменить на нужный мне кусок текста

Target:= "%head%";
string:= "твоя строка содеожащаяя %head%";
source: "вместо %head%";
While POS(Target,string)>0 do
begin
P:= POS(Target,string);
Delete(string,P,Length(Target));
Insert(source, string, P)
end;


 
Kibitzer ©   (2002-09-23 23:19) [9]

To Separator
Ну и естественно, что пример зациклится :)))



Страницы: 1 вся ветка

Текущий архив: 2002.10.03;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
1-8049
Карлсон
2002-09-22 15:05
2002.10.03
преобразование времени.


3-7775
ghost_by
2002-09-13 08:20
2002.10.03
Обновление Blob полей - глючит....


14-8160
Юра
2002-09-09 18:50
2002.10.03
DBGrid без мыши?


3-7823
Serg2002
2002-09-12 10:30
2002.10.03
Супер сложный запрос :)


3-7878
donda
2002-09-12 23:42
2002.10.03
чем патчить ADO???