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

Stream 問題請教

 
Skyer
高階會員


發表:43
回覆:111
積分:120
註冊:2002-04-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-08-02 23:25:14 IP:61.30.xxx.xxx 未訂閱
Hi, 我有一個 record 如下
TRec = record
  A, B: String;
end;
把 record 存進 Stream Stream.Write(RECORD, SizeOf(RECORD)); 發現他只把 A, B 字串的記憶體位置寫入而以 並沒有把 A, B 這兩字串寫入 @@ 目前只知道這樣寫入字串而以 Stream.Write(RECORD.A[1], Length(RECORD.A)); 請教各位, 我該如何作,才能用 record 把字串寫入呢?
------
--
Regards,
Skyer
Skyer
高階會員


發表:43
回覆:111
積分:120
註冊:2002-04-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-08-02 23:39:29 IP:61.30.xxx.xxx 未訂閱
剛剛再找了一下文章,發現可能不能用 AnsiString 而必須使用 Short String 或 Char Array    因為 AnsiString 長度不固定. 加上又是指標,所以不行存..    改成
TRec = record
  A, B: string[255];
end;
就行了..
------
--
Regards,
Skyer
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-08-04 11:19:18 IP:61.59.xxx.xxx 未訂閱
在物件化後,多數都只是記錄「指標」也就是記憶體的位址,所以要記錄完整的資料還是要用的原始的資料型態。 之前在看 VCL 原始碼時,最大的問題就是,實在是分不太清楚那些是「指標」?那些是「參考」?那些又是「原始資料型態」?
------
http://www.ViewMove.com
danny
版主


發表:100
回覆:522
積分:595
註冊:2002-03-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-08-05 10:53:46 IP:210.200.xxx.xxx 未訂閱
引言: 在物件化後,多數都只是記錄「指標」也就是記憶體的位址,所以要記錄完整的資料還是要用的原始的資料型態。 之前在看 VCL 原始碼時,最大的問題就是,實在是分不太清楚那些是「指標」?那些是「參考」?那些又是「原始資料型態」?
Delphi 有一定的命名規則, 例如: Pxxx 指標 等... 至於是不是參考, 原始資料型態 可以在變數上按 [Ctrl] Mouse Left 可以追蹤 VCL Source 查看.
------
將問題盡快結案也是一種禮貌!
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-08-06 11:14:55 IP:61.231.xxx.xxx 未訂閱
引言: Delphi 有一定的命名規則, 例如: Pxxx 指標 等... 至於是不是參考, 原始資料型態 可以在變數上按 [Ctrl] Mouse Left 可以追蹤 VCL Source 查看.
請問如下的 source
function TMemoStrings.Get(Index: Integer): string;
var
  Text: array[0..4095] of Char;
begin
  Word((@Text)^) := SizeOf(Text);
  SetString(Result, Text, SendMessage(Memo.Handle, EM_GETLINE, Index,
    Longint(@Text)));
end;
其中 Word((@Text)^) 指的是什麼東東?!
------
http://www.ViewMove.com
系統時間:2024-03-29 22:13:28
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!