比如说: iArr: array of Integer; //长度可变
//---------------------------------------------
//假如长度为3:
iArr[0] := 4;
iArr[1] := 5;
iArr[2] := 6;
for i := 0 to 4 do begin
for j := 0 to 5 do begin
for k := 0 to 6 do begin
......
end;
end;
end;
//---------------------------------------------
//假如长度为4:
iArr[0] := 4;
iArr[1] := 5;
iArr[2] := 6;
iArr[3] := 7;
for i := 0 to 4 do begin
for j := 0 to 5 do begin
for k := 0 to 6 do begin
for l := 0 to 7 do begin
......
end;
end;
end;
end;
//---------------------------------------------
//假如长度为5:
iArr[0] := 4;
iArr[1] := 5;
iArr[2] := 6;
iArr[3] := 7;
iArr[4] := 8
for i := 0 to 4 do begin
for j := 0 to 5 do begin
for k := 0 to 6 do begin
for l := 0 to 7 do begin
for n := 0 to 8 do begin
......
end;
end;
end;
end;
end;
//---------------------------------------------
//假如长度为3:
iArr[0] := 4;
iArr[1] := 5;
iArr[2] := 6;
for i := 0 to 4 do begin
for j := 0 to 5 do begin
for k := 0 to 6 do begin
......
end;
end;
end;
//---------------------------------------------
//假如长度为4:
iArr[0] := 4;
iArr[1] := 5;
iArr[2] := 6;
iArr[3] := 7;
for i := 0 to 4 do begin
for j := 0 to 5 do begin
for k := 0 to 6 do begin
for l := 0 to 7 do begin
......
end;
end;
end;
end;
//---------------------------------------------
//假如长度为5:
iArr[0] := 4;
iArr[1] := 5;
iArr[2] := 6;
iArr[3] := 7;
iArr[4] := 8
for i := 0 to 4 do begin
for j := 0 to 5 do begin
for k := 0 to 6 do begin
for l := 0 to 7 do begin
for n := 0 to 8 do begin
......
end;
end;
end;
end;
end;
解决方案 »
- 【ivorytower】男人越成熟越有魅力!
- 在delphi中#0 #8 #13都是什么意思呀?比如下面的代码:
- 如何判断SQL中一个表是否存在.如何判断SQL是否已启动,如何屏蔽DELPHI自己的错误提示,如联接一个不存在的表
- 请问FastReport如何送变量过去
- ReportBuilder问题!
- 给个工作我吧!(提供信息者一定给分)
- 请大家帮忙!怎样用delphi7监控带有密码的access数据库?
- 对于一个label的font,如何在程序里赋初值
- DBGrid导出数据到Excel
- 请各位帮帮我!! 多层结构的 WebSnap 问题。!!谢谢!!
- 寻求项目合作:一个单机版的考试系统!
- fastreport中动态创建series
有没有相关预编译之类的命令?比如:
{$.. }
for i:0=Length(iArr)-1 do
{$.. for itmpArr[i]:=0 to iArr[i]-1 do begin}
{$..}
... ...//处理段
{$..}
{$.. end}
------------------------------------------------------
就是实现动态地写for语句的个数
程序自己for循环体
var
I: Integer;
S: string;
begin
if Index >= Length(Arr) then
begin
S := '';
for I := 0 to Length(Arr) - 1 do
S := S + ',' + IntToStr(Loop[I]);
Delete(S, 1, 1);
{ TODO : Loop为当前下标 }
TForm1(Param).Memo1.Lines.Add(S);
end else
for I := 0 to Arr[Index] do
begin
Loop[Index] := I;
ForProc(Arr, Loop, Index + 1, Param);
end;
end;procedure TForm1.Button2Click(Sender: TObject);
var
iArr: array of Integer; //长度可变
iLoop: array of Integer; //长度可变
begin
SetLength(iArr, 3);
SetLength(iLoop, 3);
iArr[0] := 4;
iArr[1] := 5;
iArr[2] := 6;
ForProc(iArr, iLoop, 0, Integer(Self));
end;