我试图在 PascalScript 函数中使用 TStrings.ValueFromIndex(在 FreePascal 和 Delphi 中工作),但它不起作用,编译器返回:
Unknown identifier 'GETVALUEFROMINDEX'
我用得很好吗?
这个功能在 PascalScript 中可用吗?
如果没有,有什么简单的方法吗?
代码:
Function dummy(R: TStringList):String;
var
i: Integer;
RESULTv: string;
begin
for i := 0 to ReqList.Count-1 do
RESULTv := RESULTv + R.Names[i]+' -> '+ R.ValueFromIndex[i];
dummy := RESULTv;
end;
最佳答案
PascalScript 与 Delphi/FreePascal 不同。如果您查看 source code对于 PascalScript(特别是在 uPSC_classes.pas
中),您会看到 PascalScript 仅包装了原生的 Delphi/FreePascal TStringList
,但并未公开 Delphi/FreePascal 在其中实际实现的所有内容TStringList
。例如,没有为 ValueFromIndex
属性公开包装器。
更新:
由于 PascalScript 不公开 ValueFromIndex
属性,您可以编写自己的代码来手动解析 String 以删除其名称部分(如果您不修补 PascalScript 本身以添加丢失的属性注册), 例如:
Function GetValueFromIndex(R: TStringList; Index: Integer):String;
var
S: string;
i: Integer;
begin
S := R.Strings[Index];
i := Pos('=', S);
if I > 0 then
ValueFromIndex := Copy(S, i+1, MaxInt)
else
ValueFromIndex := '';
end;
Function dummy(R: TStringList):String;
var
i: Integer;
RESULTv: string;
begin
for i := 0 to ReqList.Count-1 do
RESULTv := RESULTv + R.Names[i] + ' -> ' + GetValueFromIndex(R, i);
dummy := RESULTv;
end;
关于delphi - TStringList ValueFromIndex 在 PascalScript 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20860080/