Форум: "Основная";
Текущий архив: 2002.10.03;
Скачать: [xml.tar.bz2];
ВнизБыстрая обработка текста Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c