線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1315
推到 Plurk!
推到 Facebook!

如何將字串「3924430076」轉成cardinal?

答題得分者是:taishyang
macchen
初階會員


發表:66
回覆:102
積分:33
註冊:2006-07-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-10-04 10:53:07 IP:219.87.xxx.xxx 訂閱
請問一下各位,我宣告了cardinal的變數,但是當用strtoint時卻會出錯「'3924439976' is not a valid integer value.」,找過一些範例,但值都是在int的範圍內,所以轉換是沒問題,但是當超出時,使用strtoint或是strtointdef或是format都是一樣會報錯呢,因為我的用意是要將執行檔的handle存在登入檔,另一個執行檔去抓這個值,所以才會用這種方式,而handle是longword的型態,所以會有機會出錯,麻煩有經驗的人可以指點一下嗎?謝謝。
------
DELPHI初學者
taishyang
站務副站長


發表:377
回覆:5485
積分:4552
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-10-04 10:55:41 IP:114.32.xxx.xxx 訂閱
StrToInt64 可以用嗎?
macchen
初階會員


發表:66
回覆:102
積分:33
註冊:2006-07-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-10-04 11:31:48 IP:219.87.xxx.xxx 訂閱
謝謝,原來用這個就可以了。

我的方式目前是用先double接回再轉cardinal的方式,但你這個好像比較簡單,謝謝。
===================引 用 taishyang 文 章===================
StrToInt64 可以用嗎?
------
DELPHI初學者
Victor4022
中階會員


發表:0
回覆:76
積分:90
註冊:2011-02-20

發送簡訊給我
#4 引用回覆 回覆 發表時間:2011-10-06 05:45:30 IP:122.126.xxx.xxx 訂閱
介紹您另外一種方式:

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的型態,所以會有機會出錯,麻煩有經驗的人可以指點一下嗎?謝謝。
系統時間:2017-10-24 4:43:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!