缺少运算符或分号错误

And*_*rás 4 delphi delphi-7

德尔福7如果重要的话.

procedure writeLog ( varName, varValue: string );
var
  length, i :Integer;
begin
  Append( logFile );
  ShowMessage (varName);
  For i := Length(varName) to 20 do       //line 37
  begin
     varName := varName + ' ';
  end;
  WriteLn( logFile, varName + ': ' + varValue );
  CloseFile( logFile );
end;
Run Code Online (Sandbox Code Playgroud)

我收到错误:

[错误] felirat.dpr(37):缺少运算符或分号

所有的分号对我来说都很好.我错过了什么?

MBo*_*MBo 7

您声明了一个名为的局部变量length.这个局部变量隐藏了在System单元中声明的同名函数(Delphi,作为Pascal派生,不区分大小写).所以当你写道:

For i := Length(varName) to 20 do      
Run Code Online (Sandbox Code Playgroud)

编译器将其Length视为变量而不是函数.这会导致编译错误.

可能的解决方案:

  • 为变量使用不同的名称,例如len.
  • 使用函数的完全范围名称:System.Length().