[dcc32 Error] psystr.pas(249): E2251 Ambiguous overloaded call to 'Pos'
System.pas(28005): Related method: function Pos(const string; const string; Integer): Integer;
System.pas(28165): Related method: function Pos(const WideString; const WideString; Integer): Integer;
我在以下功能上遇到上述错误。我怎样才能解决这个问题?该代码是由另一个编码器提供给我的,但我是一个完全的业余爱好者,因此,感谢您提供简单的答案!
function ExplodeStr(const AString: WideString; AWordIndex: Integer; AChar: Char): WideString;
var
Index, Counter: Integer;
begin
Result := Trim(AString);
Counter := 0;
Index := Pos(AChar + AChar, Result);
while Index > 0 do
begin
Delete(Result, Index, 1);
Index := Pos(AChar + AChar, Result);
end;
Index := Pos(AChar, Result);
while ((Counter < AWordIndex) and (Index > 0)) do
begin
Delete(Result, 1, Index);
Index := Pos(AChar, Result);
Counter := Counter + 1;
end;
if (Counter < AWordIndex) then
Result := '';
Index := Pos(AChar, Result);
if Index > 0 then
Delete(Result, Index, MaxInt);
end;
最佳答案
系统中有POS的超载版本,您只需要告诉编译器他必须使用哪个版本即可,例如通过打电话
Index := Pos(WideString(AChar + AChar), Result);
关于delphi - E2251对'Pos'System.pas的歧义重载调用(28005),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15877795/