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

TreeView的腦筋急轉彎

尚未結案
San
一般會員


發表:11
回覆:15
積分:5
註冊:2002-06-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-27 14:00:51 IP:211.22.xxx.xxx 未訂閱
我有一文字檔資料如下 name=a name=b1,name=a name=c1,name=b1,name=a name=c2,name=b1,name=a name=c3,name=b1,name=a name=b2,name=a name=c1,name=b2,name=a name=d1,name=c1,name=b2,name=a name=d2,name=c1,name=b2,name=a name=e1,name=d2,name=c1,name=b2,name=a name=b3,name=a name=c1,name=b3,name=a name=c2,name=b3,name=a 而我想將這些資料歸納分析成下圖... a ----b1 ----------c1 ----------c2 ----------c3 ----b2 ----------c1 ----------------d1 ----------------d2 ----------------------e1 ----b3 ----------c1 ----------c2 一直想不出來他的演算法...不知前輩能不能幫忙想想 力求神乎奇技 發表人 - San 於 2004/02/27 14:03:03
------
力求神乎奇技
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-27 18:55:28 IP:211.20.xxx.xxx 未訂閱
San 你好    
Var
  sl:Strings;
  tmp : String ;
  i ,j: Integer ;
  Node : TTreeNode;
Begin
  SL := TStringList.Create;
  開啟文字檔      While Not 檔案結束 Do Begin
    Tmp := 讀取一行文字;
    // 'Name=' 沒用到
    Tmp := StringReplace(Tmp,'name=','',[rfReplaceAll, rfIgnoreCase]);
    Sl.CommaText := Text;
    j := 0 ; //Level
    Node := nil ;
    For i:=Sl.Count-1 Downto 0 Do Begin  // 由後往前設定
      Tmp := SL[i];
      用tmp找第 j 階的Text;
      If 找到 Then Begin
        Node := 該節點;
      End Else Begin
        Node := TreeView1.AddChild(node,Tmp);
      End;
      inc(j);
    End;
  End;      End;
祝好運.........
San
一般會員


發表:11
回覆:15
積分:5
註冊:2002-06-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-27 23:57:26 IP:61.70.xxx.xxx 未訂閱
感謝大大的指教...小弟用遞迴解決了... 力求神乎奇技
------
力求神乎奇技
系統時間:2024-05-19 6:25:49
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!