Вниз
Скачать: 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.46 MB
Время: 0.012 c
14-37282
bent
2002-12-24 21:11
2003.01.13
ТFormMagnet


4-37460
Алёшка1900
2002-11-25 22:01
2003.01.13
GetAsyncKeyState(VK_LBUTTON)


3-36939
std79
2002-12-18 09:57
2003.01.13
Database not assigned, Обновление данных


1-37077
Alexsandr (GEG)
2003-01-03 13:17
2003.01.13
StringGrid убрать выделение ячейки


1-37036
Palladin
2003-01-02 13:19
2003.01.13
по поводу control ов




   Наверх