怎样删除动态数组中的某个元素?

俗人1979 2003-08-18 02:17:19
我定义了一个动态数组A,类型是记录类型,加入了
A[0],A[1],A[2],……几个值,现在想删除A[1],
删除后不能有中断,原来的A[2]变为A[1],
A[3]变为A[2],……同时长度缩短一位,不知怎么做,
在线等待,马上给分。
...全文
211 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
俗人1979 2003-08-18
  • 打赏
  • 举报
回复
揭帖了!
Spqk005 2003-08-18
  • 打赏
  • 举报
回复
当然是
length(a)-2
这个不要写错
Spqk005 2003-08-18
  • 打赏
  • 举报
回复
上面的程序已经通过调试的
Spqk005 2003-08-18
  • 打赏
  • 举报
回复
当数组长度为7的时候
j的取值最大只能为6呀
你的A[7]不是变成8位长度的数组了吗
我的j:=2只是给你举个例子

数组的下维从0开始 如
for i:=0 to length(A)-1 do
而不是i:=1 to length(A)-1 do
俗人1979 2003-08-18
  • 打赏
  • 举报
回复
length(a)-2 还是 length(a)-1
俗人1979 2003-08-18
  • 打赏
  • 举报
回复
应该是
for i:=1 to n-1 do
A[i] := A[i+1];
如果删除A[7],则
for i:=7 to n-1 do
A[i] := A[i+1];
才对吧
Spqk005 2003-08-18
  • 打赏
  • 举报
回复
procedure TFDemo.Button2Click(Sender: TObject);
var
a:array of string;
i,j,k,ArrayLeng:integer;
begin
ArrayLeng:=7;
setlength(a,ArrayLeng);
for i:=0 to ArrayLeng-1 do
a[i]:='sample'+inttostr(i);
//例如想删除位置j的数组
j:=2;
for i:=j to length(a)-2 do
begin
a[i]:=a[i+1];
end;
//重新设置长度
SetLength(a,Length(a)-1);
end;
jsyhello 2003-08-18
  • 打赏
  • 举报
回复
procedure delArrayNum(i:integer);
var
j:integer;
begin
for j:=i to high(a)-1 do
a[j]:=a[j+1];
setlength(a,high(a));
end;
tyro88cn 2003-08-18
  • 打赏
  • 举报
回复
最呆的办法,重新定义一个B,把A一个个赋值过去。
hansome 2003-08-18
  • 打赏
  • 举报
回复
for i:=1 to n-2 do
A[i] := A[i+1];
如果删除A[7],则
for i:=7 to n-2 do
A[i] := A[i+1];
渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组某个元素渲染数组

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧