Вниз
Скачать: CL | DM;

Parser. Как сделать быстрее и с минимальной затратой памяти?   Найти похожие ветки 

 
Cosinus ©   (2005-02-10 10:23) [0]

Есть некоторый файл(100К мах), который необходимо раcпарсить. Что я хочу сделать:
1) Загружаю его в Mem:=TMemoryStream.Create
2) GetMem(Buffer,Mem.Size)
3) Mem.Free и далее по всему дереву процедур и функций парсинга, в качестве параметра передаю Buffer (например функция нахождения определеных байт, с возвращаемым параметром pBytePos = ^(array of SomeRecord)(начало и конец некоторого блока), которая в свою очередь вызывается из функции разбиения на блоки и т.д.
Я ни разу с этим не сталкивался, и прошу помощи у мастеров. Как органичнее это сделать? Может я вообще не туда пошел?


 
Cosinus ©   (2005-02-10 10:25) [1]

Гы. Забыл прочитать Mem.Read(Buffer,Mem.Size)


 
TUser ©   (2005-02-10 10:28) [2]

Непонятно - зачем из потока в какой-то буфер писать? Да и вообще - мало чего понятно, если честно.


 
Cosinus ©   (2005-02-10 10:33) [3]


> TUser ©   (10.02.05 10:28) [2]

Так может тогда и работать с TMemoryStream?
И ни писать ни в какой buffer?


 
Anatoly Podgoretsky ©   (2005-02-10 10:37) [4]

Так может работать с буфером и не использовать никакой TMemoryStream


 
Cosinus ©   (2005-02-10 10:43) [5]

Хорошо :) Я понял.
Буду благодарен за грамотные статьи с примерами на дельфи по парсингу.


 
TUser ©   (2005-02-10 10:47) [6]


> Так может тогда и работать с TMemoryStream?
> И ни писать ни в какой buffer?

Вот и я о том же. А по поводу примеров - ты даже не сказал, что такое ты парсишь. По ходу дела я так понял, что бинарник (хотя не уверен). В принцыпе дело можно было бы организовать и в виде конечного автомата + стек (я так понимаю, что у тебя там какое-то дерево хранится).


 
Cosinus ©   (2005-02-10 10:49) [7]


> TUser ©   (10.02.05 10:47) [6]

Угу. Бинарник.
Угу. Дерево. :)))
Спасибо за совет, буду разбираться.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.023 c
3-1106828927
ViJen
2005-01-27 15:28
2005.02.27
MSSQL - как сохранить картинку в таблицу??


14-1107874227
TUser
2005-02-08 17:50
2005.02.27
К нам Митник едет.


3-1106853534
chir
2005-01-27 22:18
2005.02.27
NULL-значение через параметры


3-1107237294
Aleks_666
2005-02-01 08:54
2005.02.27
tdbGRID


4-1105617848
MInd_f
2005-01-13 15:04
2005.02.27
RegQueryValueEx




   Наверх