請問ASC轉成Byte的問題 |
答題得分者是:RaynorPao
|
aredfish
一般會員 發表:47 回覆:41 積分:17 註冊:2002-12-04 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 大家好: 我用fgetc從檔案中讀出一個一個的ASC值出來,可是我想得到的是 原本的Byte值而不是ASC的值, 例如我的檔案中裡面的內容為1234567890 那麼我收到的會是4950515253....48, 那麼我要怎麼轉才能得到12 34 56 78 90 兩個兩個一組的位元值...謝謝大家!!aredfish 你好: 請參考以下的範例程式碼 < class="code"> Memo1->Clear(); TStringList *sl7=new TStringList; TStringList *sl8=new TStringList; sl7->LoadFromFile("7.txt"); for(int i=0; i
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
aredfish
一般會員 發表:47 回覆:41 積分:17 註冊:2002-12-04 發送簡訊給我 |
RaynorPao大大:
非常感謝您的回信,您的方法應該是先將檔案轉成字串型態
再分批重新定位, 不過我想再請問一下,如果我先得到ASC的數碼,然後有沒有辦法再將他轉成HexFile, 我下面有一個code它可以得到對應的Hex數碼,但是我看
不太懂, int GetHexChar(int ch) 傳入一個我從檔案裡面所得到的ASC碼
{
if (!isxdigit(ch))
return -1;
if (isdigit(ch))
return ch - '0';
else
return toupper(ch) - 'A' 10;
} 假設我傳入49d,那會傳出1
可是我不懂他在寫什麼,BCB怎麼認得出來10進位或16進位
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: RaynorPao大大: 非常感謝您的回信,您的方法應該是先將檔案轉成字串型態 再分批重新定位, 不過我想再請問一下,如果我先得到ASC的數碼,然後有沒有辦法再將他轉成HexFile, 我下面有一個code它可以得到對應的Hex數碼,但是我看 不太懂, int GetHexChar(int ch) 傳入一個我從檔案裡面所得到的ASC碼 { if (!isxdigit(ch)) return -1; if (isdigit(ch)) return ch - '0'; else return toupper(ch) - 'A' 10; } 假設我傳入49d,那會傳出1 可是我不懂他在寫什麼,BCB怎麼認得出來10進位或16進位aredfish 你好: 請問?? 你說的是不是這個樣子?? AnsiString sz="F"; int i=StrToInt("0x" sz); ShowMessage(i);-- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
aredfish
一般會員 發表:47 回覆:41 積分:17 註冊:2002-12-04 發送簡訊給我 |
哎呀!! (跌倒!!) 這麼簡單我怎麼沒想到啊...謝謝您囉!! 想再請問您一個問題,若是由Console模式所建立的專案,那麼BCB是不是就沒
辦法使用ShowMessage或AnsiString等等東西,因為我現在這一個專案就是用
Dos去跑的,如果我在程式裡面加上ShowMessage或AnsiString等東西的話,
就會出現錯誤的訊息告訴我這東西是先沒有經過定義...謝謝大家!! [/quote]
aredfish 你好:
請問?? 你說的是不是這個樣子??
AnsiString sz="F"; int i=StrToInt("0x" sz); ShowMessage(i);-- Enjoy Researching & Developing -- [/quote] |
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 哎呀!! (跌倒!!) 這麼簡單我怎麼沒想到啊...謝謝您囉!! 想再請問您一個問題,若是由Console模式所建立的專案,那麼BCB是不是就沒 辦法使用ShowMessage或AnsiString等等東西,因為我現在這一個專案就是用 Dos去跑的,如果我在程式裡面加上ShowMessage或AnsiString等東西的話, 就會出現錯誤的訊息告訴我這東西是先沒有經過定義...謝謝大家!!aredfish 你好: 試試看 #include "vcl.h" 可不可以呢?? --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
aredfish
一般會員 發表:47 回覆:41 積分:17 註冊:2002-12-04 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 也不行耶!! Compiler會停在vcl.h這一行宣告上面... 非常謝謝您的回覆 aredfish 你好: 請問?? 你之前是如何建立一個 Console Application 的呢?? (1)在 BCB 中按「File/New/Other」啟動「New Items」Dialog (2)在「New」Tab 裡面選擇「Console Wizard」啟動「Console Wizard」Dialog (3)確認「C 」「Use VCL」「Console Application」這三個選項有被選擇 (4)最後按「OK」建立 Console Application,然後加入以下的程式碼 int main(int argc, char* argv[]) { AnsiString sz="Hello"; ShowMessage(sz); return 0; } (5)試著編譯並執行看看 (小弟我在 BCB 6.0 試過是沒有問題的喔) > --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
aredfish
一般會員 發表:47 回覆:41 積分:17 註冊:2002-12-04 發送簡訊給我 |
RaynorPao大大:
非常謝謝您耐心的回答,我的程式碼是自動產生的
有一種寫驅動程式的軟體叫做Windriver,他會自己產生BCB3.0
測試程式的程式碼,不過是Dos的, 所以我要把裡面的程式改成Windows視窗
我用的是BCB5.0,自動轉code之後可以執行,不過如果加上一些VCL元件
Compiler都會錯誤,所以我現在可能要想辦法重開專案,再把裡面會用到的
函式給一個個拉進來試試看能不能用......
引言:aredfish 你好: 請問?? 你之前是如何建立一個 Console Application 的呢?? (1)在 BCB 中按「File/New/Other」啟動「New Items」Dialog (2)在「New」Tab 裡面選擇「Console Wizard」啟動「Console Wizard」Dialog (3)確認「C 」「Use VCL」「Console Application」這三個選項有被選擇 (4)最後按「OK」建立 Console Application,然後加入以下的程式碼 int main(int argc, char* argv[]) { AnsiString sz="Hello"; ShowMessage(sz); return 0; } (5)試著編譯並執行看看 (小弟我在 BCB 6.0 試過是沒有問題的喔) > -- >>< face="Verdana, Arial, Helvetica"> |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |