全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1206
推到 Plurk!
推到 Facebook!

請教如何將陣列做排列組合

尚未結案
beta
一般會員


發表:7
回覆:11
積分:3
註冊:2003-01-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-09 15:34:40 IP:203.69.xxx.xxx 未訂閱
Ex:[A,B,C,D,E,F,G] 此陣列為動態陣列 請各位前輩多多幫忙!! 謝謝!!
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-09 20:32:52 IP:218.32.xxx.xxx 未訂閱
beta 你好: 你是希望大家幫你把程式寫妥 po 上來嗎 ? 先想一下吧, 凡是提問者自己已思考過的問題, 大家都會很樂意幫忙的.
beta
一般會員


發表:7
回覆:11
積分:3
註冊:2003-01-03

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-10 00:08:14 IP:61.231.xxx.xxx 未訂閱
首先要說明,我並是要大家幫我做好,主要是想吸收大家的想法。 我的作法大概如下。 我要排列的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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-10 01:42:17 IP:211.74.xxx.xxx 未訂閱
引言: 首先要說明,我並是要大家幫我做好,主要是想吸收大家的想法。 我的作法大概如下。 我要排列的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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-03-10 23:09:11 IP:218.32.xxx.xxx 未訂閱
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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-03-11 09:37:47 IP:203.69.xxx.xxx 未訂閱
感謝Mickey的幫忙,
系統時間:2024-05-07 10:15:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!