Здравствуйте, Андрeй, Вы писали:
А>Кнута-Морриса-Пратта у меня не собрался к сожалению. А реализации этой функции типа дай мне следующий символ есть? ну или идеи как это сделать? вобще было бы круто такую функцию для пцре...
А какие сложности?
Мы читаем из файла по N байт в буфер. Храним позицию символа, который надо отдать, относительно начала буфера. Если буфер не кончился, отдаем очередной символ, иначе читаем из файла очередную порцию и обнуляем позицию.
char buf[N];
int bufPos;
...
char getNextChar()
{
if( bufPos >= N )
{
fillBuffer();
bufPos = 0;
}
return buf[bufPos++];
}
А к pcre ее по-простому не приделать, потому что для регэкспов требуются возвраты к ранее просмотренным частям строки.
Д.К. << RSDN@Home 1.2.0 alpha rev. 668>>