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

請問如何把變數成位16進制?

缺席
windham
一般會員


發表:15
回覆:22
積分:7
註冊:2006-07-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-09-19 23:37:59 IP:219.77.xxx.xxx 訂閱
請問如何把變數成位16進制?
意思是說...
好像做一些封包的程式時 一定要發送一些 16進制 包..
好像在perl裡 16進制都是.....
$packet="\x61\x61\x61\x61";
這樣.....
但在 delphi 裡面是怎樣的喔?
一直都試不到呢
麻煩請教 感謝!^^
jow
尊榮會員


發表:66
回覆:751
積分:1253
註冊:2002-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-09-20 02:15:02 IP:211.76.xxx.xxx 訂閱
(1)定義你的封包, 當數值塞入後, 它就是16進位的數值了.
(2)選定 CRC 運算方法
(3)Encode your packet
(4)Decode your packet

(A)範例中,從Encode 到 Decode 之間你可以
利用UDP, TCP或其他傳輸方式

(B)利用範例, 分為兩支程式, 傳送端 & 接收端


範例程式
http://delphi.ktop.com.tw/board.php?cid=31&fid=79&tid=90517

編輯記錄
jow 重新編輯於 2007-09-20 02:19:48, 註解 無‧
windham
一般會員


發表:15
回覆:22
積分:7
註冊:2006-07-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-09-20 22:03:28 IP:219.77.xxx.xxx 訂閱
但如果想好像外掛的一樣發送封包呢..?都是同一個方法嗎..
jow
尊榮會員


發表:66
回覆:751
積分:1253
註冊:2002-03-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-09-21 13:00:16 IP:210.66.xxx.xxx 訂閱
我沒寫過外掛程式,無法給你意見.

我程式中所說的是自訂封包格式的傳輸,

剛剛又更新了版本,你可以參考看看.

http://delphi.ktop.com.tw/board.php?cid=31&fid=79&tid=90517
編輯記錄
jow 重新編輯於 2007-09-21 13:01:42, 註解 無‧
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-09-22 02:52:01 IP:61.64.xxx.xxx 訂閱
Delphi 的 16 進制,請用 $ 來指定 ($10 = 0x10 = 16),如果是十進制ASCII,可以使用 # 來處理
話說回來,直接用變數 aInt := 100; 不就得了?
即使是改某一欄位,還是可以用 Byte(Pointer) := 100; 用十進位,不好嗎?

===================引 用 windham 文 章===================
請問如何把變數成位16進制?
意思是說...
好像做一些封包的程式時 一定要發送一些 16進制 包..
好像在perl裡 16進制都是.....
$packet="\x61\x61\x61\x61";
這樣.....
但在 delphi 裡面是怎樣的喔?
一直都試不到呢
麻煩請教 感謝!^^
windham
一般會員


發表:15
回覆:22
積分:7
註冊:2006-07-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-09-23 10:55:53 IP:218.102.xxx.xxx 訂閱
喔 感謝一下
我試過了 $61是 a 但$616161就後面的6161 無效了喔...
還有請問 byte(pointer)是指甚麼呢><
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-09-23 11:38:01 IP:220.131.xxx.xxx 未訂閱
你有沒有真的了解勒?
$ 是什麼意思?
$61
$61$61
$6161
分別是什麼?
===================引 用 windham 文 章===================
我試過了 $61是 a 但$616161就後面的6161 無效了喔...
windham
一般會員


發表:15
回覆:22
積分:7
註冊:2006-07-28

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-09-23 13:14:32 IP:218.102.xxx.xxx 訂閱
我試 $6161 $61$61 是用來試一下...
$6161 是數值 但如果我要檢查我收回來的封包開頭是否 61 61 的話...
好像就不太可行了...
jow
尊榮會員


發表:66
回覆:751
積分:1253
註冊:2002-03-13

發送簡訊給我
#9 引用回覆 回覆 發表時間:2007-09-23 13:41:24 IP:211.76.xxx.xxx 訂閱
電腦懂得什麼? 只有 0 與 1 而已.
所以不管是變數, 或者說對於記憶體的
內含值的解譯都是人類自己加諸的.

多了解pointer的操作,應該有助於你了解
其中的差別.


編輯記錄
jow 重新編輯於 2007-09-23 13:47:25, 註解 無‧
jow 重新編輯於 2007-09-23 14:54:49, 註解 無‧
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#10 引用回覆 回覆 發表時間:2007-09-23 18:20:18 IP:220.131.xxx.xxx 未訂閱
http://delphi.ktop.com.tw/board.php?cid=30&fid=69&tid=90534

看看我回在另一篇的答案。
想想你的問題到底在那邊。
windham
一般會員


發表:15
回覆:22
積分:7
註冊:2006-07-28

發送簡訊給我
#11 引用回覆 回覆 發表時間:2007-09-23 22:46:28 IP:218.102.xxx.xxx 訂閱
他的問題和我也有點相同
但我想做到的是......
我想snd一個pacet出去是 61 61 61 61 的 ( 舉例 )
但怎麼傳送呢?
s:=$61616161 是數字來喔.......
在perl的是 \x61\x61\x61\x61 是每1個位去看的......
delphi有這樣的功能嗎
windham
一般會員


發表:15
回覆:22
積分:7
註冊:2006-07-28

發送簡訊給我
#12 引用回覆 回覆 發表時間:2007-09-24 23:04:53 IP:218.102.xxx.xxx 訂閱
無意中找到解決方法了
原來就是 #$61#$61 這樣^^
也感謝大家的幫忙喔
系統時間:2024-05-07 21:09:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!