delphi - TStringList ValueFromIndex 在 PascalScript 中不起作用

标签 delphi freepascal pascalscript

我试图在 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/

相关文章:

delphi - 修改系列点时是否可以仅重新绘制 TeeChart 的一个区域?

multithreading - 在线程中使用这段代码有什么问题吗? (德尔福)

checkbox - 如何根据执行程序/子安装程序的过程结果重新启动 Inno Setup 安装程序

inno-setup - Inno 使用 GDI+ 设置动画 GIF?

inno-setup - 安装开始前 Inno Setup : Download setup . bin 切片文件

delphi - OpenSSL 代码适用于 XP,但在 Vista 及更高版本中永远挂起

delphi - delphi中使用RTTI递归迭代内部记录

object - Pascal 中的父对象和子对象

linux - 在 Linux/Lazarus 上使用 Indy OpenSSL

freepascal - FPC : RTTI on records