TStringList ValueFromIndex在PascalScript中不起作用

Adm*_*ulo 1 delphi freepascal pascalscript

我正在尝试在PascalScript函数中使用TStrings.ValueFromIndex(在FreePascal和Delphi中工作),但它不起作用,编译器返回:

                                        未知标识符'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;
Run Code Online (Sandbox Code Playgroud)

Rem*_*eau 5

PascalScript与Delphi/FreePascal不同.如果你看一下PascalScript 的源代码(特别是在uPSC_classes.pas),你会发现PascalScript只是包装了一个原生的Delphi/FreePascal TStringList,但是没有公开Delphi/FreePascal实际实现的所有内容TStringList.例如,没有为该ValueFromIndex属性公开包装器.

更新:

由于PascalScript不公开ValueFromIndex属性,因此您可以编写自己的代码来手动解析String以删除其Name部分(如果您不修补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;
Run Code Online (Sandbox Code Playgroud)