Подпись может казаться холиварной только для тех, кто сам участвует в холиварах и склонен их затевать

Вы же про мой ник ничего не сказали

Я веду себя очень даже миролюбиво - не ссорюсь, совета спрашиваю, примус починяю

Код, который привел Скалогрыз, не помог
Этот код не помог никак - компилятор упорно зависал либо выкидывал internal error.
скалогрыз писал(а):- Код: Выделить всё
function IndexWord(Const buf: array of word;len:LongInt;b:word):LongInt; overload;
begin
for i := 0 to len - 1 do
if buf[i]=b then begin
Result := i;
Exit
end;
Result:=-1;
end;
ах, да! и конечно же:
- Код: Выделить всё
function IndexWord(Const buf;len:LongInt;b:word):LongInt; overload;
begin
Result:=IndexWord( PWordArray(@buf), len, b);
end;
Пришлось временно обойтись счетчиком слов. Криво и стыдно так делать, не разобравшись, но "причесывание" оставлю на попозже, так как нужно получить работающую версию компилятора, которая будет эталонной в последущей модификации.
- Код: Выделить всё
function IndexWord(Const buf;len:LongInt;b:word):LongInt;
var
psrc,pend : pword;
Position : LongInt ;
begin
.............
Position := 0 ;
while DWORD(psrc) < DWORD(pend) do
begin
if Word(psrc^) = b then
begin
result:= Position ;
exit;
end;
DWORD(pSrc) := DWORD(pSrc) + SizeOf(b) ;
Inc(Position) ;
end;
result:=-1;