Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 错误:“IntToStr”没有重载的句号_Delphi_Delphi 7 - Fatal编程技术网

Delphi 错误:“IntToStr”没有重载的句号

Delphi 错误:“IntToStr”没有重载的句号,delphi,delphi-7,Delphi,Delphi 7,编译以下代码时: procedure TMainWin.FormActivate(Sender: TObject); var LineRaw : String; LinesFile : TextFile; i, i2 : integer; tempChar : String; CurTempCharPos : integer; begin AssignFile(LinesFile, 'Lines.txt'); Reset(LinesFile); i := 0;

编译以下代码时:

procedure TMainWin.FormActivate(Sender: TObject);
  var LineRaw : String;
  LinesFile : TextFile;
  i, i2 : integer;
  tempChar : String;
  CurTempCharPos : integer;
begin
  AssignFile(LinesFile, 'Lines.txt');
  Reset(LinesFile);
  i := 0;
  tempChar := '';
  CurTempCharPos := 1;

  while not EoF(LinesFile) do begin
    i := i+1; //ticker
    ReadLn(LinesFile, LineRaw);
    for i2 := 0 to 4 do begin
      tempChar := LineRaw[CurTempCharPos] + LineRaw[CurTempCharPos +1];
      Lines[i,i2] := IntToStr(tempChar);
      tempChar := '';
      CurTempCharPos := CurTempCharPos + 3;
    end;

  end;

  CloseFile(LinesFile);
end;
对于以另一种形式定义的行:

unit uGlobal;

interface

  type
    aLines = array[1..5] of integer;
    aLinesFinal = array of aLines;

  var
    Lines : aLinesFinal;

implementation

end.
我得到以下错误:没有可以用这些参数调用的重载版本的“IntToStr”。错误指向以下行:

Lines[i,i2] := IntToStr(tempChar);

以下是tempChar的声明:

它是一根绳子。以下是编译器拒绝的调用:

Lines[i,i2] := IntToStr(tempChar);
IntToStr函数具有各种重载,它接受整数输入参数并返回字符串。不能将字符串传递给IntToStr。也许你想写:

Lines[i,i2] := StrToInt(tempChar);
其他一些评论:

我看起来不像是你写的。这意味着虽然代码可能会编译,但在运行时会失败。 由于您将aLines声明为整数数组[1..5],因此i2的有效值为1到5(包括1到5)。使用0到4(包括0到4)。同样,这将在运行时产生影响。 您确实应该作为紧急事项启用范围检查,因为当您开始执行此代码时,该设置将显示上述错误,而且毫无疑问还会显示更多错误。 在我看来,tempChar对于可以容纳多个字符的东西来说是个糟糕的名字。 正如@TLama指出的,OnActivate似乎是执行此代码的一个不寻常的地方。此事件将运行多次。也许您应该在启动时执行此代码。在任何情况下,这样的代码都不应该在事件处理程序中,而应该移动到事件处理程序可以调用的单独方法中。 你确定OnFormActivate是适合你所做工作的活动吗?
Lines[i,i2] := StrToInt(tempChar);