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

ASCII碼的問題

尚未結案
frederick
中階會員


發表:101
回覆:108
積分:66
註冊:2002-08-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-11-15 22:09:17 IP:218.187.xxx.xxx 未訂閱
請教一下: 如果我在memo中輸出字元,如memo1->Text='A';它是顯示A沒錯 但如果我寫成memo1->Text=0x41;它卻會顯示65 目前問就是我有一字元陣列讀檔進來,要把他轉為字元(ASCII)輸出, 但為何都顯示十進制?我試了好久,請教大家我哪裡出了問題? 我有用toascii的C函示,但不行耶。 String s; s=toascii(0x41),它還是顯示65 >_< unsigned char cc; cc=toascii(0x41),卻可以。 但是這筆字串最後要送到memo上去,卻又變成十進制,~嗚~嗚~怎麼一回事? 我是要做左邊顯示16進制,右邊是ASCII碼。 是否能請知道的人回覆一下,謝謝!!!
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-11-15 22:15:50 IP:61.221.xxx.xxx 未訂閱
引言: 請教一下: 如果我在memo中輸出字元,如memo1->Text='A';它是顯示A沒錯 但如果我寫成memo1->Text=0x41;它卻會顯示65 目前問就是我有一字元陣列讀檔進來,要把他轉為字元(ASCII)輸出, 但為何都顯示十進制?我試了好久,請教大家我哪裡出了問題? 我有用toascii的C函示,但不行耶。 String s; s=toascii(0x41),它還是顯示65 >_< unsigned char cc; cc=toascii(0x41),卻可以。 但是這筆字串最後要送到memo上去,卻又變成十進制,~嗚~嗚~怎麼一回事? 我是要做左邊顯示16進制,右邊是ASCII碼。 是否能請知道的人回覆一下,謝謝!!!
frederick你好: 如何顯示十進制、十六進制呢?? 請參考以下的做法 < class="code"> char szBuf[8]={0}; char szA[2]="A"; sprintf(szBuf, "%d", szA[0]); Memo1->Lines->Add(szBuf); sprintf(szBuf, "X", szA[0]); Memo1->Lines->Add(szBuf); Memo1->Lines->Add(szA); -- Enjoy Researching & Developing -- 發表人 - RaynorPao 於 2002/11/15 22:24:40
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
frederick
中階會員


發表:101
回覆:108
積分:66
註冊:2002-08-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-11-16 09:49:16 IP:218.32.xxx.xxx 未訂閱
RaynorPao您好: 我有試過您的用法,但情形還是一樣說 >>>>>>
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-11-16 15:21:05 IP:61.221.xxx.xxx 未訂閱
引言: 不果我是想把字串先處理好,再顯示到memo 如果一字一字丟會很慢說,但會顯示ASCII code 如果一動到字串,就會發生轉換成數值的問題。 該怎麼處理才好呢?還是我哪些地方上概念不好,請多指教 謝謝!
frederick你好: 請參考以下修改過的程式碼 < class="code"> char szBuf[3]={0}; char szStr[11]="ABCDEFGHIJ"; char szDec[21]={0}; char szHex[21]={0}; int nLen=strlen(szStr); int i=0; Memo1->Lines->Add(szStr); for(i=0; iLines->Add(szDec); for(i=0; iLines->Add(szHex); 看到你敘述問題的字裡行間 我覺得你應該是一個肯努力、肯付出的人 因此~~我才會寫這一段 sample code 讓你參考 不過~~當你來這邊問問題的時候 不見得每次回答你的人~~都會寫 code 給你 但是~~通常都會有一定程度的「方向」跟「提示」 建議你可以依照這些「方向」跟「提示」 自己先「勇敢」的嘗試看看 反正~~電腦的硬體也不會因為你的程式錯誤而壞掉 頂多就是 compile 錯誤或 runtime error 你說~~不是嗎?? 有沒有發現這一次的 > --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-11-16 21:01:42 IP:210.85.xxx.xxx 未訂閱
對於Data要呈現在畫面上, 以下是我慣用的方法 char Value='A'; String Str; Str.sprintf("現在要秀十進制: %d, 再來秀出十六進制:%.2X, 最後把ASCII秀出來:%c", Value, Value, Value); Memo1->Lines->Add(Str); 看得懂的話, 請舉一反三, 就可以秀出任何你想要秀的字串格式 看不種的話, 請先run看看, 多玩幾次就懂了... 發表人 - lcsboy 於 2002/11/16 21:02:21
frederick
中階會員


發表:101
回覆:108
積分:66
註冊:2002-08-01

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-11-18 20:22:22 IP:218.187.xxx.xxx 未訂閱
請教大家一下,我有一小段程式碼: iLine = 65536 / 16 for (i1 = 1; i1 <= iLine; i1 ) { Application->ProcessMessages(); // show address strShow = strShow IntToHex(iAddr, 4) " "; iAddr = 16; // show hex format i2 = 1; while (i2 <= 16) { if (iBufIndex < iCnt) { strShow = strShow IntToHex(cBuf[iBufIndex], 2) " "; iBufIndex; i2; } else { strShow = strShow " "; // add three blank, my adjust i2; iBlank; } } // end of while() ~~~~~~~~~~中間略~~~~~~~~~~~~~~~~ strShow = strShow cAscShow '\r' '\n'; ^^^^^^^^ 放字元的字串 } // end of for() frmMain->mnoCode->Lines->Add(strShow); ...這是我程式上的一個片段,顯示一行16進制碼,把char buffer[65536]內 先處理好成字串,再送出。結....結果竟然要等10幾秒它才會show出來, 怎麼一回事呢?for也才不過跑4096行而已(我的是PIII 1G)。 humm...只是覺得太奇怪一點,請教大家有什麼看法呢? 還有 iBufIndex一些變數有時數值會跑出很大的數值, 在strcat(cAscShow, cTmp)之後,有些只是for跑一次變數加一數值。 好奇怪喔~我用的是BCB6但有時很大數值把BCB關掉再重來又沒事了 @_@!!! 是BCB的問題呢?還是我的問題 >_<
frederick
中階會員


發表:101
回覆:108
積分:66
註冊:2002-08-01

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-11-18 21:28:00 IP:218.187.xxx.xxx 未訂閱
剛才把程式化簡, 兩個for回圈,大回圈次數為65536/16 小回圈為16次 小回圈中只放字串相加,也不轉換了 也不顯示 只放了兩行顯示開始與結束 結果跑起來要40秒說 @_@!!! 有人能提供看法嗎?
ubong
一般會員


發表:2
回覆:42
積分:23
註冊:2002-10-02

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-11-18 21:51:27 IP:61.216.xxx.xxx 未訂閱
但如果我寫成memo1->Text=0x41;它卻會顯示65 ---------------------------------------------------------------- 看了各位的解答,實在有些畫蛇添足。我試了一下下述兩個方式皆可行: 1: char c=0x41; memo1->Text=c; 2: memo1->Text=char (0x41); or memo1->Text=char (65); ---------------------------------------------------------------- ubong
------
ubong
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#9 引用回覆 回覆 發表時間:2002-11-19 00:27:16 IP:61.221.xxx.xxx 未訂閱
引言: 剛才把程式化簡, 兩個for回圈,大回圈次數為65536/16 小回圈為16次 小回圈中只放字串相加,也不轉換了 也不顯示 只放了兩行顯示開始與結束 結果跑起來要40秒說 @_@!!! 有人能提供看法嗎?
frederick你好: 65535*16 bytes=1048576 bytes=1024 KB=1 GB 結果只花了 40 秒~~我個人覺得算很快了 不然~~你可以試著做一個 > 通常~~資料量很大的時候 程式設計的策略~~就必須做出抉擇 如果沒有這個必要的話 在同一個時間之內~~只需要 > --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
frederick
中階會員


發表:101
回覆:108
積分:66
註冊:2002-08-01

發送簡訊給我
#10 引用回覆 回覆 發表時間:2002-11-19 10:56:07 IP:218.187.xxx.xxx 未訂閱
RaynorPao 您好: 我想大概是我方法上有些問題,也就是每show一次我都重新計算一次。 hummm....我真的有去用UltraEdit開300M的ZIP檔,結果你猜要幾秒? >,但如用 > 我的 >
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#11 引用回覆 回覆 發表時間:2002-11-19 11:12:15 IP:203.73.xxx.xxx 未訂閱
引言: RaynorPao 您好: 我想大概是我方法上有些問題,也就是每show一次我都重新計算一次。 hummm....我真的有去用UltraEdit開300M的ZIP檔,結果你猜要幾秒? >,但如用 > 我的 > < face="Verdana, Arial, Helvetica"> frederick你好: 其實很多要同時處理大量資料的應用程式 都是使用動態載入的設計方式 以避免使用過多的系統資源 連 winzip 也是這樣設計的 如果最後壓縮的結果~~會是一個很大的檔案的話 或者是要解開的壓縮檔案~~是一個很大的檔案的話 winzip 會先嘗試去切割 把它變成很多較小的 temp file 然後動態載入至記憶進一步處理 也就是說~~在同一個時間之內 耗損系統的記憶體並不會太多 等到所有的資料都處理完畢後 再把每一塊資料組合起來~~就是最後的結果了 --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
frederick
中階會員


發表:101
回覆:108
積分:66
註冊:2002-08-01

發送簡訊給我
#12 引用回覆 回覆 發表時間:2002-11-19 19:07:31 IP:218.187.xxx.xxx 未訂閱
[/quote] frederick你好: 其實很多要同時處理大量資料的應用程式 都是使用動態載入的設計方式 以避免使用過多的系統資源 連 winzip 也是這樣設計的 如果最後壓縮的結果~~會是一個很大的檔案的話 或者是要解開的壓縮檔案~~是一個很大的檔案的話 winzip 會先嘗試去切割 把它變成很多較小的 temp file 然後動態載入至記憶進一步處理 也就是說~~在同一個時間之內 耗損系統的記憶體並不會太多 等到所有的資料都處理完畢後 再把每一塊資料組合起來~~就是最後的結果了 --
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#13 引用回覆 回覆 發表時間:2002-11-19 23:31:49 IP:61.221.xxx.xxx 未訂閱
引言: 嗨RaynorPao~請問一下: 您所謂的動態載入是什麼意思呢? 是不是檔案先放在磁碟中,需要時在讀進來, 而不要一次全讀入記憶體? 還是用類似資料結構中的鍵節串列的概念呢?
frederick你好: 的確~~類似像你說的方式< > 至於資料結構方面 並沒有一定可以遵循的方式 而是看你自己本身設計應用程式 的需求及策略而定 只要能夠達到目的 又不會發生問題的方法 都是好方法< > -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
系統時間:2024-04-27 1:50:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!