請教如何將陣列做排列組合 |
尚未結案
|
beta
一般會員 發表:7 回覆:11 積分:3 註冊:2003-01-03 發送簡訊給我 |
|
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
|
beta
一般會員 發表:7 回覆:11 積分:3 註冊:2003-01-03 發送簡訊給我 |
首先要說明,我並是要大家幫我做好,主要是想吸收大家的想法。
我的作法大概如下。
我要排列的Array是Integer like [11,10,6,321,22] function ArrayCom(MyArray:array of int; MyString:String): TStringlist;
var ArrayLength, i: Integer;
TempArray:Array of integer;
tepmresult : String;
begin
ArrayLength := length(Myarray);
Setlength(temparray,ArrayLength);
if (ArrayLength = 1) then
begin
result.add( Mystring inttostr(Myarray[ArrayLength]));
end
else
begin
for i:= 1 to arraylength do
begin
temparray := myarray;
^^^^^^^^^^^^^^^^^^^^^這一行會錯
tempresult := inttostr(myarray[I]); 把用過區段去掉(不曉得用什麼方式或Function) ArrayCom(tempArray, Mystring tempresult);
end;
end;
end;
end; 最後感謝各位前輩多多指教!!!
|
jest0024
高階會員 發表:11 回覆:310 積分:224 註冊:2002-11-24 發送簡訊給我 |
引言: 首先要說明,我並是要大家幫我做好,主要是想吸收大家的想法。 我的作法大概如下。 我要排列的Array是Integer like [11,10,6,321,22] function ArrayCom(MyArray:array of int; MyString:String): TStringlist; var ArrayLength, i: Integer; TempArray:Array of integer; tepmresult : String; begin ArrayLength := length(Myarray); Setlength(temparray,ArrayLength); if (ArrayLength = 1) then begin result.add( Mystring inttostr(Myarray[ArrayLength])); end else begin for i:= 1 to arraylength do begin temparray := myarray; ^^^^^^^^^^^^^^^^^^^^^這一行會錯 tempresult := inttostr(myarray[I]); 把用過區段去掉(不曉得用什麼方式或Function) ArrayCom(tempArray, Mystring tempresult); end; end; end; end; 最後感謝各位前輩多多指教!!!:= CopyMemory(@temparray[0],@myarray,Sizeof(Integer)*ArrayLength); |
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
beta 你好:
試試看
procedure TForm1.Button1Click(Sender: TObject); procedure ArrayCom(const a1:array of integer;s:string;L:TStrings); var i,j,t : integer; b1,Temp:array of integer; s1:string; begin setlength(Temp,High(a1) 1); for i:=Low(a1) to High(a1) do Temp[i] := a1[i]; for i:=Low(a1) to High(a1) do begin t := temp[0]; temp[0] := temp[i]; temp[i] := t; setlength(b1,High(a1)); for j := 0 to High(b1) do b1[j] := temp[j 1]; s1 := inttostr(temp[0]) ','; ArrayCom(b1, s s1, L); end; if High(a1)=0 then L.Add(s s1); end; var a:array of integer; i:integer; begin SetLength(a,5); //[11,10,6,321,22] a[0]:=11;a[1]:=10;a[2]:=6;a[3]:=321;a[4]:=22; Memo1.lines.clear; ArrayCom(a,Memo1.lines.text,Memo1.lines); Showmessage(inttostr(Memo1.Lines.count)); end; |
beta
一般會員 發表:7 回覆:11 積分:3 註冊:2003-01-03 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |