如何分割数组?(200分)

  • 主题发起人 主题发起人 小树流
  • 开始时间 开始时间

小树流

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个大数组,长度不定,想按照一定长度将其切分成若干个小数组,
然后将这些小数组放到list中。举个例子
大数组的长度是1530
我想把其分为长度是150的小数组若干个。
请问怎么做?最好写出代码,谢谢!!
 
最好转换成2维数组。
var
Base:array[0..1500] of integer;
List:array of Array[0..149] of integer;
i,j,cnt:integer;
begin
cnt:=(High(base)+1)div 150;
setLength(List,cnt);
for i:=0 to cnt-1 do
begin
for j:=0 to 149 do
begin
List[j]:=Base[i*150+j];
end;
end;
if (High(base)+1) mod 150 <>0 then
begin
SetLength(LIst,cnt+1);
for i:=0 to (High(base)+1) mod 150 do
begin
List[cnt]:=Base[cnt*150+i];
end;
end;

end;
 
var
i,j,m,n:integer;
a:array[0..1550] of string;
b:array[0..149] of string;
l:array of TList;
begin
m:=round(length(a)/length(b)+0.5);
SetLength(l,m);
for i:= 1 to m do
begin
l[i-1]:=TList.Create;
for j:=low(b) to high(b) do
begin
if (i-1)*length(b)+j>=length(a) then break;
b[j]:=a[low(a)+(i-1)*length(b)+j];
l[i-1].Add(@b[j]);
end;
end;
end;
 
数组长度没有定
就利用数组长度重新建立一个二维动态数组即可,代码自己考虑一下吧,比较简单的东西。
这都让别人写的话。你的项目很难完成了
 
Highpeak,谢谢
for i:=0 to (High(base)+1) mod 150 - 1 do

XWHope,谢谢,给你分

陈晨,
呵呵,基础不好,没办法呀
 
多人接受答案了。
 
后退
顶部