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

Поиск подстроки в строке   Найти похожие ветки 

 
Brat-2   (2003-01-02 15:47) [0]

Читаю в buf: [0..512] of char данные из двоичного файла. Нужно найти в buf подстроку. Стандартная POS не находит (видимо обрабатывает только строку до символа #0 или #13), ибо StrLen(buf) также не определяет ее как 512 (гораздо меньше). Примечание: файл > 512. Подскажите, пожайлуста, как быть?


 
Ru ©   (2003-01-02 16:03) [1]

попробуй написать свою функцию и читать не в буфер символов а в массив целых чисел


 
ION T ©   (2003-01-02 16:18) [2]

Я не понял шо в двоичном файле делает строка?


 
Song ©   (2003-01-02 16:19) [3]

Ищи своим циклом


 
Sha ©   (2003-01-02 16:32) [4]

2 Brat-2 (02.01.03 15:47)

Упреждая твой следующий вопрос:

function PosFromTo(Find, Source: string; QChar: char= "?";
StartPos: integer= 1; StopPos: integer= 0): integer;
var
LenFind, LenSource: integer;
Mask, StopMask, Cur, Start, Stop: PChar;
ch: char;
label
NextPos;
begin;
Result:=0;
LenFind:=length(Find);
LenSource:=length(Source);
if (StartPos<=0) then StartPos:=1;
if (StopPos<=0) or (StopPos>LenSource) then StopPos:=LenSource;
StopPos:=StopPos+1-LenFind;
if (LenFind=0) or (StartPos>StopPos) then exit;

Start:=@Source[StartPos];
Stop:=@Source[StopPos];
StopMask:=@Find[LenFind+1];
NextPos:
Cur:=Start; if Cur=Stop then exit;
Mask:=pointer(Find);
repeat;
ch:=Mask^;
if (ch<>QChar) and (ch<>Cur^) then begin;
Inc(Start);
goto NextPos;
end;
Inc(Cur);
Inc(Mask);
until Mask=StopMask;
Result:=integer(Start)-integer(pointer(Source))+1;
end;


 
Brat-2   (2003-01-02 21:28) [5]

Ok. Всем спасибо. Сделал свой цикл.



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

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



Память: 0.45 MB
Время: 0.016 c
14-37350
gsu
2002-12-23 16:39
2003.01.13
А я на счетах работать умею, слабо ?


1-37073
Gamar
2003-01-03 12:35
2003.01.13
Имя переменой в другой переменной


14-37300
Mik.rob
2002-12-22 00:07
2003.01.13
***


3-36937
Calm
2002-12-17 12:55
2003.01.13
Не выполняется insert в ХП, вызываемой из клиентского приложения


14-37278
Aga
2002-12-24 15:13
2003.01.13
Как??!!!




   Наверх