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

請問如何用string type表達record type

答題得分者是:william
jichang
一般會員


發表:9
回覆:12
積分:4
註冊:2004-02-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-18 11:46:42 IP:210.71.xxx.xxx 未訂閱
小弟最近需要將許多值傳送到另一個function去,但忽然突發奇想,如果我用record將這些值組合起來,再以字串的方式傳送過去,那不是省事多了,可是試了好幾次,都無法達到我的想法,所以想請教各位,是否有做過或是知道該怎麼處理這類的問題? //----------type 宣告 type TREPLY_EXTORFIX_AREA = packed record wr_reply_code : integer; wr_advisory : array[1..10] of Char; wr_seqno : integer; end; //----------程式段 procedure TForm1.Button4Click(Sender: TObject); var REA: TREPLY_EXTORFIX_AREA; REA_Data: String; begin FillChar(REA, SizeOf(REA), ' '); REA.wr_reply_code := 1; FillChar(REA.wr_advisory, SizeOf(REA.wr_advisory), 'Z'); REA.wr_seqno := 3; SetLength(REA_Data, SizeOf(TREPLY_EXTORFIX_AREA)); move(REA, REA_Data[1], Length(REA_Data)); memo1.Lines.Add(REA_Data); end; 我用Watch去看REA跟REA_Data的值,結果如下: REA:(1, ('Z', 'Z', 'Z', 'Z', 'Z', 'Z', 'Z', 'Z', 'Z', 'Z'), 3) REA_Data:#1#0#0#0'ZZZZZZZZZZ'#3#0#0#0 請各位幫忙看一下,不勝感激
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-18 12:17:41 IP:147.8.xxx.xxx 未訂閱
Any problem? The string will be trimmed by the #0 when adding to the memo.
jichang
一般會員


發表:9
回覆:12
積分:4
註冊:2004-02-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-18 14:14:43 IP:210.71.xxx.xxx 未訂閱
可是仍有個小疑惑,1不是應該是#49,所以不是應該是#49#0#0#0'ZZZZZZZZZZ'#51#0#0#0,為何會出現#1#0#0#0'ZZZZZZZZZZ'#3#0#0#0,且中間為何會有那麼多個#0,那是因為record轉換為string本來就會出現的現象嗎? 請不吝指導,謝謝
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-18 15:09:55 IP:147.8.xxx.xxx 未訂閱
TREPLY_EXTORFIX_AREA.wr_reply_code is an integer....
jichang
一般會員


發表:9
回覆:12
積分:4
註冊:2004-02-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-18 15:34:44 IP:210.71.xxx.xxx 未訂閱
這......,版主大人,你回答的太簡短了,看不懂耶,你的意思是說integer的1轉換為string的話會變成#1嗎?是這樣嗎?
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-02-18 15:48:53 IP:147.8.xxx.xxx 未訂閱
REA.wr_reply_code := 1;
You assign an integer 1 to wr_reply_code. 1 <> '1' 1 as an integer and is stored in memory as 01 00 00 00 (4 bytes) '1' is a char = chr(49) (1 byte)
系統時間:2024-05-07 20:06:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!