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

如何在BCB的Edit元件顯示16進位格式字串?

答題得分者是:daldal
skybow
一般會員


發表:10
回覆:10
積分:4
註冊:2004-04-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-06-10 13:27:02 IP:59.116.xxx.xxx 訂閱

[code cpp]

int test=6;
int *ptr=&test;
Edit1->Text=IntToStr(&ptr);
fout<<&ptr<
[/code]

請教各位前輩,我想在BCB中顯示指標的記憶體位址,
以上是測試程式中的一小段,編譯上沒有問題~

可是執行後Edit中顯示的字串卻只有"1"這個數字,
而用fout輸出的txt檔案,也只看到1242532這一串數字,

請問要怎樣設定格式,才能看到類似0x12345678這種格式的記憶體位址呢?

謝謝!
編輯記錄
skybow 重新編輯於 2008-06-17 22:07:07, 註解 無‧
daldal
高階會員


發表:6
回覆:102
積分:226
註冊:2007-06-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-06-10 13:31:45 IP:61.219.xxx.xxx 未訂閱

[code cpp]
int p=3;
Edit1->Text="0x" IntToHex(int(&p),8);

[/code]
其他以此類推
skybow
一般會員


發表:10
回覆:10
積分:4
註冊:2004-04-30

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-06-12 22:17:33 IP:59.116.xxx.xxx 訂閱

感謝! Edit元件的部份已經成功了! fout的部分我也解決了!

我的程式碼如下,跟其他新手分享!


[code cpp]

fout.open("EDIT.txt"); //開檔案

int test=6;

Edit1->Text="0x" IntToHex(int(&test),8); //Edit1輸出16進位格式的記憶體位址
Edit2->Text=IntToStr(int(&test)); //Edit2輸出預設10進位格式的記憶體位址

/*以下為檔案輸出及輸出格式設定 */

fout.setf(ios_base::hex,ios_base::basefield); //設定輸出數字為16進位
fout.setf(ios_base::showbase); //16進位數字的前面加上"0x"
fout.setf(ios_base::uppercase); //改大寫,使0x變成0X

fout<<&test<
fout.unsetf(ios_base::basefield); //清除設定
fout.unsetf(ios_base::showbase); //清除設定
fout.unsetf(ios_base::uppercase); //清除設定
fout<<&test<
[/code]


不過還是不太懂,為什麼在Edit元件的部份,

直接使用 Edit1->Text = IntToStr(&test); 的結果會變成"1"?
編輯記錄
skybow 重新編輯於 2008-06-12 22:18:29, 註解 無‧
系統時間:2024-04-25 23:28:27
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!