【发布时间】:2015-04-09 19:51:24
【问题描述】:
Heloo 伙计们...一旦我尝试运行此代码,我就会遇到“无效指针操作”错误,这是什么问题?它应该将该文本文件中的这些名称按字母顺序排序(学校项目)。
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils, Classes;
var
names : TextFile;
count : integer=0;
array : array of string;
i : integer;
Procedure Load;
begin
Reset(names);
SetLength(array, count - 1);
for i := 1 to count do ReadLn(names, array[i]);
end;
begin
AssignFile(names, 'names.txt');
Reset(names);
While not EoF(names) do
begin
ReadLn(names);
Inc(count);
end;
Load;
for i := 1 to count do WriteLn(array[i]);
ReadLn;
CloseFile(names);
Erase(names);
end.
【问题讨论】:
-
我知道它还没有设置按字母顺序对这些项目进行排序,因为我还没有完成......只需要先解决这个“错误问题”。
-
如果有一些“语法错误”,那是因为我是从记忆中写出来的,而不是复制和粘贴它(我还更改了变量的名称,因为我用我的语言命名了它们(斯洛伐克语) ))...我刚刚在这里写了一些非常相似的东西,让您了解我的问题
-
为什么你的数组计数为 0?你实际上是在打电话给
SetLength(Array, 0); -
不是……你没仔细阅读
-
知道了,你正在增加它。仍然不是这样做的正确方法。消除此 Count 变量并改为读取
Length(array)。
标签: arrays delphi sorting dynamic pascal