Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.08.27;
Скачать: [xml.tar.bz2];

Вниз

Библиотека RegEx с поиском в файлах?   Найти похожие ветки 

 
AlexeyT ©   (2006-07-14 09:13) [0]

Ищется библиотека для поиска с регэкспами *в файлах*. Именно в файлах (файлы - это логи на сотни Мб), а не в загруженной строке, т.к. загружать все содержимое лога в строку естественно нельзя. Есть ли такие? Пока нашел PCRE, но она без этой фичи.

Конечно, можно было бы читать файл поблочно и проверять на совпадение блоки, но как это состыкуется с регэкспами (если вообще состыкуется), я пока не представляю. Так что желательна именно фича поиска в файле.


 
nt   (2006-07-14 10:09) [1]

странно, я думал, readln проходят раньше, чем TStringList, и уж точно до regexp"ов.


 
umbra ©   (2006-07-14 10:52) [2]

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


 
DVM ©   (2006-07-14 11:12) [3]

А вот никто не видел аналога TRegExp, но чтобы работал не со string, а с pchar и со строками в которых могут встретиться, например, символы #0 ?


 
TUser ©   (2006-07-14 11:27) [4]

grep запустить не пойдет?


 
umbra ©   (2006-07-14 12:16) [5]


> чтобы работал не со string, а с pchar

а в чем между ними радикальное различие для регулярных выражений?


> и со строками в которых могут встретиться, например, символы
> #0

а разве сейчас он с ними не работает?


 
DVM ©   (2006-07-14 12:26) [6]


> а в чем между ними радикальное различие для регулярных выражений?

В том что тот TRegExpr который имеется сейчас обработает только часть строки до первого #0. Да там везде ему передаются строки типа string, откуда в них символ #0? Где #0 встретится там и конец строки.


> а разве сейчас он с ними не работает?

Нет, а те библиотеки, что для C - работают.


 
umbra ©   (2006-07-14 12:32) [7]


> Где #0 встретится там и конец строки.

длина строки типа string записана перед первым ее символом и не определяется символом #0


 
umbra ©   (2006-07-14 12:44) [8]

напрмер,

procedure TForm1.Button1Click(Sender: TObject);
var
 nullstr: String;

begin
 nullstr := #0#0#0#0#0#0;
 ShowMessage(IntToStr(length(nullstr)));
end;


 
DVM ©   (2006-07-14 12:45) [9]


> > Где #0 встретится там и конец строки.
>
> длина строки типа string записана перед первым ее символом
> и не определяется символом #0

я имел ввиду для TRegExp. Он считает что конец строки.


 
AlexeyT ©   (2006-07-14 13:17) [10]

Уточнение: поблочное (построчное) чтение файла и справнение на совпадение блоков наверное не пододут. Т.к. регэскп может описывать несколько строк, причем сколько строк - заранее не известно.

Если бы регэксп был однострочным (или, допустим, 5-ти строчным), то и вопроса бы не было.
Так что, желательно поиск библиотекой, а не так вручную.



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

Форум: "Основная";
Текущий архив: 2006.08.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.039 c
1-1153235434
ArtemESC
2006-07-18 19:10
2006.08.27
OwnerDraw в ListBox e


6-1143963165
Malik
2006-04-02 11:32
2006.08.27
Взлом сетей и как с этим бороться


15-1154409928
Ega23
2006-08-01 09:25
2006.08.27
С Днём рождения! 1 августа


15-1154626301
UnKnownPeople
2006-08-03 21:31
2006.08.27
Где настраиваются расширения при сохранении рисунков?


15-1154581771
Elen
2006-08-03 09:09
2006.08.27
Как работать с Asm файлами больше 5Мб?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский