線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1344
推到 Plurk!
推到 Facebook!

請問一個菜鳥問題,有關TLIST與TSTRINGLIST

尚未結案
likush
高階會員


發表:5
回覆:235
積分:103
註冊:2002-10-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-03 14:38:05 IP:211.22.xxx.xxx 未訂閱
站長大大 您好 小弟請教一個新手問題,現今小弟利用TSTRINGLIST讀取資料,再存入TLIST中。 但卻不知如何將TLIST中的資料再倒回TSTRINGLIST中以供取出處理,能否請教各位大大,有何方法可處理該一狀況,如果可以,是否能利用範例講解一下,因為小弟看DELPHI內的HELP看不太懂它有關的作法。萬份感謝
Jasonwong
版主


發表:49
回覆:931
積分:581
註冊:2006-10-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-03 15:44:48 IP:211.23.xxx.xxx 未訂閱
引言: 站長大大 您好 小弟請教一個新手問題,現今小弟利用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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-03 16:27:27 IP:211.76.xxx.xxx 未訂閱
引言: 站長大大 您好 小弟請教一個新手問題,現今小弟利用TSTRINGLIST讀取資料,再存入TLIST中。 但卻不知如何將TLIST中的資料再倒回TSTRINGLIST中以供取出處理,能否請教各位大大,有何方法可處理該一狀況,如果可以,是否能利用範例講解一下,因為小弟看DELPHI內的HELP看不太懂它有關的作法。萬份感謝
應該這樣可以 ... FStringList.Assign(FList)
------
將問題盡快結案也是一種禮貌!
Jasonwong
版主


發表:49
回覆:931
積分:581
註冊:2006-10-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-03 16:51:59 IP:211.23.xxx.xxx 未訂閱
引言: 應該這樣可以 ... FStringList.Assign(FList)
版大~~這個方法我之前有試過~~好像不行耶~~ 形態不符~~ -- 聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
likush
高階會員


發表:5
回覆:235
積分:103
註冊:2002-10-08

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-04-03 16:57:47 IP:211.22.xxx.xxx 未訂閱
謝謝各位大大回應小弟的問題 首就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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-04-03 17:57:38 IP:211.23.xxx.xxx 未訂閱
引言: 謝謝各位大大回應小弟的問題 首就JASONWONG大大的方法,不知是小弟使用錯誤或方法不對?它出現型態錯誤的訊息。
以下為 HELP 的說明 TList stores an array of pointers 他是一個 POINTER 型態的陣列~~所以你要儲存時必須轉型~~ -- 聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
likush
高階會員


發表:5
回覆:235
積分:103
註冊:2002-10-08

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-04-07 10:59:07 IP:211.22.xxx.xxx 未訂閱
對不起 有關jasonwong大大所回答的結果正是小弟所要請教各位大大的, 因為小弟找遍DEPHI相關書籍也沒有相關之型態轉換說明,也許正是小弟是新手對於PASCAL之語法不甚瞭解,故想請教各位大大,有無關於DELPHI之相關書籍或網站可供小弟前往找尋答案,萬份感謝。
likush
高階會員


發表:5
回覆:235
積分:103
註冊:2002-10-08

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-04-07 11:08:57 IP:211.22.xxx.xxx 未訂閱
謝謝各位大大的指導 小弟今天將該問題解決了,解決方法是將如下設定 tstringgrid:=tlist[i] 最後並對各位大大的指導與回應致上個人謝意
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-04-07 14:33:43 IP:218.16.xxx.xxx 未訂閱
要讀出 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.
系統時間:2024-06-28 18:44:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!