delphi 中的无效数字输入错误

Invalid numeric input error in delphi

我有一个程序可以从文本文件中读取竞争对手的分数列表:

var
  competition : TextFile;
  number : byte;
  name : array of string;
  score : array of array of byte;
  j : byte;
  i : byte;

begin
  AssignFile(competition, 'korcule.txt');
  Reset(competition);
  ReadLn(competition, number);
  SetLength(name, number);
  SetLength(score, number, 4);
  for i := 0 to number - 1 do begin
    ReadLn(competition, name[i]);
    j := 0;
    While not EoLn(competition) do begin
      Read(competition, score[i, j]);
      inc(j);
    end;
  end;
  ReadLn;
  CloseFile(competition);
end.

文本文件的第一行是参赛人数,然后名字和名字后面是真人的分数。

5
John Smith
1 8 4 6
Marc Zuckerberg
4 6 7 1
Bill Gates
3 8 4 1
Johnny Rapid
9 9 2 7
Phillip Lauren
4 7 3 1

我需要单独读取多维数组中的分数,例如 myarray[1] = 1、myarray[2] = 8 等等。问题是我的代码总是给我一个错误 'invalid numeric input'。问题是什么 ??

您在 while 循环后缺少 readln

在 while 循环结束时,您已到达行尾,但尚未移至下一行。

此外,您的最终 readln 是从 stdin 而不是文本文件中读取的。