如何在Delphi 6中搜索动态char数组以获取子字符串并获取匹配的索引,而不是指针?我已经看到Delphi 6中的函数用于字符串而不是动态字符数组。有一个名为SearchBuf的函数,但是当我需要的是匹配的数组索引时,该函数返回一个指向匹配位置的PChar指针。
感谢。
答案 0 :(得分:1)
如果你有一个指向匹配的指针,只需减去指向第一个字符的指针,你就会得到你的索引。
var
Buf, Result: PChar;
Index: Integer;
Result := SearchBuf(Buf, ...);
if Assigned(Result) then
Index := Result - Buf
else
Index := -1; // not found
我很确定在Delphi 6中允许指针运算。如果没有,那么首先将指针类型转换为整数类型:
Index := Cardinal(Result) - Cardinal(Buf);