Delphi 6:如何快速搜索动态数组中的子字符串?

时间:2010-05-30 03:36:50

标签: delphi search arrays char

如何在Delphi 6中搜索动态char数组以获取子字符串并获取匹配的索引,而不是指针?我已经看到Delphi 6中的函数用于字符串而不是动态字符数组。有一个名为SearchBuf的函数,但是当我需要的是匹配的数组索引时,该函数返回一个指向匹配位置的PChar指针。

感谢。

1 个答案:

答案 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);