gpt4 book ai didi

Delphi 数组 : Variable Myvar might not been initialized

转载 作者:行者123 更新时间:2023-12-03 19:46:30 26 4
gpt4 key购买 nike

我正在为学校(电影应用程序)制定一个计划,但我的阵列有问题。我的应用程序关闭但没有显示任何内容。

    program TFE;

{$APPTYPE CONSOLE}

uses
SysUtils,
StrUtils,
Crt;

var
MovieList, MovieInfo: Text;
Choice: Byte;
i: Integer;
L: String;
S: array of String[14];

begin

i := 0
Assign(MovieInfo, 'MovieInfo.txt');
Reset(MovieInfo);
Readln(Choice);
i := 0;
ClrScr;
While not eof (MovieInfo) do
begin
Readln(MovieInfo, L);
S[i] := L;
i := i + 1;
end;
Writeln(S[Choice]);
Readln;

end.

这是我目前的所有代码。
有人可以帮助我吗?

最佳答案

在标题中,您谈到了一个变量 MyVar ,但代码没有显示任何这样的变量。为了将来引用,请在发布前仔细校对您的问题。

您已经声明了一个动态数组:

S: array of String[14];

即 14 个字符串(短字符串)的数组。但是你从来没有设置过这个数组的长度,所以它根本不能保存任何字符串。

使用 procedure SetLength(var S: <string or dynamic array>; NewLength: Integer);为数组中的项目分配空间。

由于您不知道(我推测)文件中可能有多少部电影,您必须首先分配一些数量,然后准备扩展数组(通过新调用 SetLength() )如果数组之前被填满从文件中读取所有电影。例如,初始化(在 while 循环之前)有 10 部电影的空间:
SetLength(S, 10);

然后在while循环中,例如就在 ReadLn() 之前,
if i > (Length(S)-1) then
SetLength(S, Length(S)+10);

另一条评论是,当要求用户选择时,不会向用户显示任何提示,但也许这仍在开发中;-)

关于Delphi 数组 : Variable Myvar might not been initialized,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56199027/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com