将字符串连接到变量名中



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

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;  

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

看起来您需要一个数组,或者在本例中需要两个:一个数组将包含登录名,另一个数组包含密码。当然,您可以将两者组合成一个记录,然后得到一个记录数组。

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;

不要尝试这样做。

反射(或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;

最新更新