首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TStringList ValueFromIndex不在PascalScript工作

TStringList ValueFromIndex不在PascalScript工作
EN

Stack Overflow用户
提问于 2013-12-31 16:13:10
回答 2查看 1.6K关注 0票数 2

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

“GETVALUEFROMINDEX”的“GETVALUEFROMINDEX”

我用得很好吗?

这个功能在PascalScript中可用吗?

如果没有,有什么简单的方法可以做到吗?

守则:

代码语言:javascript
复制
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;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-31 16:24:15

PascalScript的TStrings是Delphi TStrings,但是PascalScript没有公开ValueFromIndex方法。通过阅读SIRegisterTStrings就可以看出这一点。

所以,你需要利用可用的东西。例如,Values属性:

代码语言:javascript
复制
RESULTv := RESULTv + R.Names[i] + ' -> ' + R.Values[R.Names[i]];

或者您可能更喜欢避免重复使用

代码语言:javascript
复制
Name := R.Names[i];
RESULTv := RESULTv + Name + ' -> ' + R.Values[Name];

这是相当低效的,但除非您自己解析名称/值对,否则这可能是您所能做的最好的了。

如果你觉得勇敢,你可以自己编译PascalScript,并在SIRegisterTStrings中添加一个注册了ValueFromIndex的调用。

票数 2
EN

Stack Overflow用户

发布于 2013-12-31 17:22:26

PascalScript不同于Delphi/FreePascal。如果您查看源代码 for PascalScript (特别是在uPSC_classes.pas中),您将看到PascalScript只是封装了一个本机Delphi/FreePascal TStringList,但并没有公开Delphi/FreePascal在TStringList中实际实现的所有内容。例如,没有为ValueFromIndex属性公开包装器。

更新:

由于PascalScript不公开ValueFromIndex属性,所以您可以编写自己的代码,手动解析字符串以删除其名称部分(如果您不修补PascalScript本身以添加缺少的属性注册),例如:

代码语言:javascript
复制
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;
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20860080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档