Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.02;
Скачать: CL | DM;

Вниз

поиск array[1..n] of byte в array[1..m] of byte   Найти похожие ветки 

 
Кокандокало   (2002-11-20 20:48) [0]

Привет, Мастера!
Предложите алгоритм поиска array[1..n] of byte в array[1..m] of byte, где n < m
Желательно возвратить смещение =)


 
TTCustomDelphiMaster ©   (2002-11-20 22:02) [1]

var
A: array [2..15] of byte;
SubA: array [1..3] of byte;
i, j: integer;
begin
A[4] := 4;
A[5] := 5;
A[6] := 4;
A[7] := 5;
A[8] := 4;
SubA[1] := 4;
Suba[2] := 5;
SubA[3] := 4;

i := Low(A);
j := Low(SubA);
while i<=High(A)-High(SubA)+Low(SubA) do
begin
if A[i]=SubA[j] then
begin
inc(j);
if j>High(SubA) then
begin
dec(i, High(SubA)-Low(SubA));
j := Low(SubA);
ShowMessage("Index = " + inttostr(i));
end;
end;
inc(i);
end;
end;


 
TTCustomDelphiMaster ©   (2002-11-20 22:50) [2]

Поправочка

while i<=High(A)-High(SubA)+Low(SubA) do
begin
if A[i]=SubA[j] then
begin
inc(j);
if j>High(SubA) then
begin
dec(i, High(SubA)-Low(SubA));
j := Low(SubA);
ShowMessage("Index = " + inttostr(i));
end;
end
else
j := Low(SubA);
inc(i);
end;


 
Кокандокало   (2002-11-21 12:01) [3]

дык не пашет =(((
Вот в моем исполнении тоже самое и не пашет...

function findArr(A,SubA: array of byte):integer;
var
i,j: integer;
begin
i := Low(A);
j := Low(SubA);
while i<=High(A)-High(SubA)+Low(SubA) do
begin
if A[i]=SubA[j] then
begin
inc(j);
if j>High(SubA) then
begin
dec(i, High(SubA)-Low(SubA));
j := Low(SubA);
ShowMessage("Index = " + inttostr(i));
findArr := i;
Exit;
end;
end
else
j := Low(SubA);
inc(i);
end;
ShowMessage("Not found");
end;

Может кнут у кого под рукой есть? там алгоритм поиска подстроки в строке есть.. может кто посмотрит?



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

Текущий архив: 2002.12.02;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.341 c
1-4337
Cranium
2002-11-22 00:01
2002.12.02
Дочерняя форма при развертывании ....


1-4372
chak
2002-11-22 12:29
2002.12.02
Копирование файлов+ProgressBar


14-4607
Driverrr
2002-11-11 17:19
2002.12.02
Windows 2000


3-4246
KonstVD
2002-11-14 13:28
2002.12.02
РАЗБИТЬ БОЛЬШУЮ ТАБЛИЦУ НА МЕНЬШИЕ


1-4336
skirdov
2002-11-20 17:02
2002.12.02
Как выполнить процедуру, имя которой содержится в переменной?