TStringList的問題 |
尚未結案
|
ultradev
一般會員 ![]() ![]() 發表:5 回覆:2 積分:1 註冊:2004-11-25 發送簡訊給我 |
各位好,如果我在Form1宣告一個StringList儲存了文字資料,請問要如何在另一個Form2使用它呢?因為我在Form2想要將一個有多筆記錄的文字檔讀進StringList,再和Form1的那個StringList比對,若Form1 StringList的某筆資料是Form2 StringList所沒有的,則新增至Form2 StringList,若已經有的資料則不動作…此外這個比對的動作應該如何寫比較好呢?我用兩個迴圈結果非常慢,幾乎要當了…請問有何比較好的方式或是StringList有何方法可用呢?
Thanks a lot!!
|
Brian77
中階會員 ![]() ![]() ![]() 發表:8 回覆:114 積分:94 註冊:2002-05-17 發送簡訊給我 |
|
李國維
高階會員 ![]() ![]() ![]() ![]() 發表:42 回覆:287 積分:235 註冊:2003-02-07 發送簡訊給我 |
|
jow
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:66 回覆:751 積分:1253 註冊:2002-03-13 發送簡訊給我 |
幫忙實作Brian77大大的方法,
因為手上沒有BCB,謹供參考.
procedure TForm1.Button1Click(Sender: TObject); var I, Index: Integer; SL: TStringList; begin SL := TStringList.Create; try SL.Duplicates := dupIgnore; SL.Sorted := True; SL := Self.StringList.Text; for I := 0 to From1.StringList.Count-1 do if not SL.Find(From1.StringList[I], Index) then begin SL.Add(From1.StringList[I]); Self.StringList.Add(From1.StringList[I]); end; finally FreeAndNil(SL); end; end; |
jow
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:66 回覆:751 積分:1253 註冊:2002-03-13 發送簡訊給我 |
更正,
procedure TForm2.Button1Click(Sender: TObject); var I, Index: Integer; SL: TStringList; begin SL := TStringList.Create; try SL.Duplicates := dupIgnore; SL.Sorted := True; SL := Self.StringList.Text; for I := 0 to From1.StringList.Count-1 do if not SL.Find(From1.StringList[I], Index) then begin SL.Add(From1.StringList[I]); Self.StringList.Add(From1.StringList[I]); end; finally FreeAndNil(SL); end; end; |
ultradev
一般會員 ![]() ![]() 發表:5 回覆:2 積分:1 註冊:2004-11-25 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |