如何將字串「3924430076」轉成cardinal? |
答題得分者是:taishyang
|
macchen
初階會員 發表:66 回覆:102 積分:33 註冊:2006-07-07 發送簡訊給我 |
請問一下各位,我宣告了cardinal的變數,但是當用strtoint時卻會出錯「'3924439976' is not a valid integer value.」,找過一些範例,但值都是在int的範圍內,所以轉換是沒問題,但是當超出時,使用strtoint或是strtointdef或是format都是一樣會報錯呢,因為我的用意是要將執行檔的handle存在登入檔,另一個執行檔去抓這個值,所以才會用這種方式,而handle是longword的型態,所以會有機會出錯,麻煩有經驗的人可以指點一下嗎?謝謝。
------
DELPHI初學者 |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
macchen
初階會員 發表:66 回覆:102 積分:33 註冊:2006-07-07 發送簡訊給我 |
|
Victor4022
中階會員 發表:0 回覆:76 積分:90 註冊:2011-02-20 發送簡訊給我 |
介紹您另外一種方式:
DWORD 轉 String -> IntToHex(3924439976, 8); // 得到 $E9EA33A9 String 轉 DWORD -> StrToInt('$E9EA33A9'); StrToInt 直接給十進位值一定會出錯, 但給 16 進位格式是不會. (測試環境 Delphi 7) ===================引 用 macchen 文 章=================== 請問一下各位,我宣告了cardinal的變數,但是當用strtoint時卻會出錯「'3924439976' is not a valid integer value.」,找過一些範例,但值都是在int的範圍內,所以轉換是沒問題,但是當超出時,使用strtoint或是strtointdef或是format都是一樣會報錯呢,因為我的用意是要將執行檔的handle存在登入檔,另一個執行檔去抓這個值,所以才會用這種方式,而handle是longword的型態,所以會有機會出錯,麻煩有經驗的人可以指點一下嗎?謝謝。 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |