請問一個菜鳥問題,有關TLIST與TSTRINGLIST |
尚未結案
|
likush
高階會員 ![]() ![]() ![]() ![]() 發表:5 回覆:235 積分:103 註冊:2002-10-08 發送簡訊給我 |
|
Jasonwong
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:49 回覆:931 積分:581 註冊:2006-10-27 發送簡訊給我 |
引言: 站長大大 您好 小弟請教一個新手問題,現今小弟利用TSTRINGLIST讀取資料,再存入TLIST中。 但卻不知如何將TLIST中的資料再倒回TSTRINGLIST中以供取出處理,能否請教各位大大,有何方法可處理該一狀況,如果可以,是否能利用範例講解一下,因為小弟看DELPHI內的HELP看不太懂它有關的作法。萬份感謝 var I: Integer; begin for I:= 0 to List.Count -1 do StringList.Add(List.Items[I]); end;好像只有這個方法囉~~ -- 聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心 發表人 - Jasonwong 於 2003/04/03 15:46:18
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心 |
danny
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:100 回覆:522 積分:595 註冊:2002-03-11 發送簡訊給我 |
|
Jasonwong
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:49 回覆:931 積分:581 註冊:2006-10-27 發送簡訊給我 |
|
likush
高階會員 ![]() ![]() ![]() ![]() 發表:5 回覆:235 積分:103 註冊:2002-10-08 發送簡訊給我 |
謝謝各位大大回應小弟的問題
首就JASONWONG大大的方法,不知是小弟使用錯誤或方法不對?它出現型態錯誤的訊息。
DANNY大大的方法 小弟使用以下方法
FOR I := 0 TO vLIST.Count - 1 DO
vSTRINGLIST.Assign(VLIST.ITEMS[I]);
FOR I:=0 TO vSTRINGLIST.Count -1 DO
ShowMessage(vSTRINGLIST.Strings[I]);
在VLIST時有一筆記錄,但在STRINGLIST時變成記錄為0
不知是否小弟有何地方疏忽,尚請各位大大指教
|
Jasonwong
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:49 回覆:931 積分:581 註冊:2006-10-27 發送簡訊給我 |
引言: 謝謝各位大大回應小弟的問題 首就JASONWONG大大的方法,不知是小弟使用錯誤或方法不對?它出現型態錯誤的訊息。以下為 HELP 的說明 TList stores an array of pointers 他是一個 POINTER 型態的陣列~~所以你要儲存時必須轉型~~ -- 聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心 |
likush
高階會員 ![]() ![]() ![]() ![]() 發表:5 回覆:235 積分:103 註冊:2002-10-08 發送簡訊給我 |
|
likush
高階會員 ![]() ![]() ![]() ![]() 發表:5 回覆:235 積分:103 註冊:2002-10-08 發送簡訊給我 |
|
Justmade
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
要讀出 TList 裡的 PChar 不難,用 PChar(List[i]) 即可取得,反而要從一個 TStringList 寫入才是困難,因為 StringList.Lines[i] 不是一個變數沒有 Pointer,而如果用 PChar(StringList.Lines[i]) 來 Add 進 TList,得出的 Pointer 是不隱定的,你Add進時讀出資料是沒錯但多 Add 一個時資料而不同了。 我試了很久,暫時只有另定一個 Array 將著 StringList 的資料,使每一行的資料是一個獨立變數,才可以隱定的讀出寫入。你可試試下便的:
1. 開新專案,加入兩個TMemo,兩個TButton。
2. 將下面程式取代原本的程式
3. 在兩個Botten 選好 onClick 事件
4. Run
5. 在Memo1 打數行字
6. 按 Button1 將資料存到 TList
7. 按 Button2 將資料從 TList 讀到 Memo2
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Menus; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Memo1: TMemo; Memo2: TMemo; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} var L : TList; a : Array of String; procedure TForm1.Button1Click(Sender: TObject); var i : integer; begin L := TList.Create; SetLength(a,Memo1.Lines.Count); for i := 0 to Memo1.Lines.Count - 1 do begin a[i] := Memo1.Lines[i]; L.Add(PChar(a[i])); end; end; procedure TForm1.Button2Click(Sender: TObject); var i : integer; begin Memo2.Lines.Clear; for i := 0 to L.Count - 1 do Memo2.Lines.Add(PChar(L[i])); L.Free; end; end. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |