将字符串连接成变量名称

时间:2012-03-26 09:49:21

标签: delphi variables pascal delphi-5

这是一个简单的问题,但我不知道如何通过连接两个字符串来构造变量名。下面的代码是不怎么做......

var
  UserName1 : String;
  UserName2 : String;
  Password1 : String;
  Password2 : String;
  UserCount : Integer;

UserCount := 2;

for Wk1 := 1 to UserCount do
begin
  DoLogin(UserName+Wk1, Password+Wk1);
end;  

2 个答案:

答案 0 :(得分:2)

不要试着这样做。

需要反射(或RTTI - 运行时类型信息)并且在Delphi中使用它并不好,因为它可以在发布之间进行更改,并且在构建时我需要包含调试信息。

所以使用一两个数组。

var
UserNames[1..2] : String;
Passwords[1..2] : String;
UserCount : Integer;

UserCount := 2;

for Wk1 := 1 to UserCount do
begin
  DoLogin(UserNames[Wk1], Passwords[Wk1]);
end;

答案 1 :(得分:2)

基本上,你不能这样做。变量名在编译时固定,并转换为保存变量值的地址。

看起来你想要一个数组,或者在这种情况下,两个:一个数组将保存登录名,一个数组保存密码。当然,你可以将两者合并为一个记录,然后有一系列记录。

type
 LogType = record
            username, password: string[31]
           end;

var
 LogArray: array [1..10] of logtype;
 usercount, wk1: integer;

begin
 UserCount := 2;
 for Wk1 := 1 to UserCount do
  begin
   DoLogin(logarray[wk1].username, logarray[wk1].password);
   etc
  end;
end;