Skip to content

有害部落格同好會

2006/12/15 / VS.NET

字串 16 進位轉換

研究一下無線AP的密碼設定方式,剛好在網路上找到一段很有用的 function

資料來源: 強力鎯頭的VB部落

如何將字串轉成16進位 ?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
'將字串轉成 16 進位字串
Private Function CvtString(ByVal strData As String) As String
Dim bytAry() As Byte '宣告位元陣列
Dim strResult() As String '宣告字串陣列
Dim lngUB As Long
Dim lngLoop As Long
 
' 使用 StrConv 函數 , 並將引數設定成 vbFromUnicode ,
' 把字串由 Unicode 轉成系統的預設字元碼對應頁。
' 並放進位元陣列裡
bytAry = StrConv(strData, vbFromUnicode)
lngUB = UBound(bytAry) ' 使用 UBound 函數取得陣列最大上限
 
'用 ReDim 陳述式來重新配置動態陣列變數的儲存空間。
ReDim strResult(lngUB) As String ' 將字串陣列重新定義成位元陣列的最大上限
 
' 使用 For Next 迴圈將每個位元陣列裡之各元素轉成16進位
For lngLoop = 0 To lngUB
 strResult(lngLoop) = Hex(bytAry(lngLoop)) '使用 HEX 函數將數字以十六進位
Next
'使用Join 函數連結陣列中多個子字串並放至回傳字串裡
CvtString = Join(strResult, C-hr(255))  '用 C-hr(255) 來連結每個元素
 
'使用 Erase 陳述式釋放動態的儲存空間
Erase bytAry
Erase strResult
 
End Function
 
 
' 將16進位字串還原
Private Function RvtString(ByVal strData As String) As String
Dim varAry As Variant
Dim varElement As Variant
Dim bytAry() As Byte  ' 宣告位元陣列
Dim lngLoop As Long
 
' 使用 Split 函數, 將字串以 C-hr(255) 字元隔開成從零開始的一維陣列
varAry = Split(strData, C-hr(255))
 
' 用 ReDim 陳述式來重新配置動態陣列變數的儲存空間。
ReDim bytAry(UBound(varAry)) As Byte  '重新定義位元陣列的最大上限
 
' 使用 For Each 迴圈來將整個陣列元素由16位元轉回
For Each varElement In varAry
 bytAry(lngLoop) = Val("&H" & varElement)
 lngLoop = lngLoop + 1
Next
 
' 使用 StrConv 函數 , 並將引數設定成 vbFromUnicode ,
' 把位元陣列內容據系統的預設字元碼對應頁將字串轉成 Unicode。
' 並放字串變數里回傳
RvtString = StrConv(bytAry, vbUnicode)
 
' 使用 Erase 陳述式釋放動態的儲存空間
Erase bytAry
End Function
 
Sample :
Dim strTest As String
Dim strHexValue As String
 
strTest = "This is test !"
strHexValue = CvtString(strTest)  '將字串轉 16 進位
MsgBox strHexValue, , "16進位值"
MsgBox RvtString(strHexValue), , "還原" ' 將字串由 16 進位傳回來

'將字串轉成 16 進位字串 Private Function CvtString(ByVal strData As String) As String Dim bytAry() As Byte '宣告位元陣列 Dim strResult() As String '宣告字串陣列 Dim lngUB As Long Dim lngLoop As Long ' 使用 StrConv 函數 , 並將引數設定成 vbFromUnicode , ' 把字串由 Unicode 轉成系統的預設字元碼對應頁。 ' 並放進位元陣列裡 bytAry = StrConv(strData, vbFromUnicode) lngUB = UBound(bytAry) ' 使用 UBound 函數取得陣列最大上限 '用 ReDim 陳述式來重新配置動態陣列變數的儲存空間。 ReDim strResult(lngUB) As String ' 將字串陣列重新定義成位元陣列的最大上限 ' 使用 For Next 迴圈將每個位元陣列裡之各元素轉成16進位 For lngLoop = 0 To lngUB strResult(lngLoop) = Hex(bytAry(lngLoop)) '使用 HEX 函數將數字以十六進位 Next '使用Join 函數連結陣列中多個子字串並放至回傳字串裡 CvtString = Join(strResult, C-hr(255))  '用 C-hr(255) 來連結每個元素 '使用 Erase 陳述式釋放動態的儲存空間 Erase bytAry Erase strResult End Function ' 將16進位字串還原 Private Function RvtString(ByVal strData As String) As String Dim varAry As Variant Dim varElement As Variant Dim bytAry() As Byte  ' 宣告位元陣列 Dim lngLoop As Long ' 使用 Split 函數, 將字串以 C-hr(255) 字元隔開成從零開始的一維陣列 varAry = Split(strData, C-hr(255)) ' 用 ReDim 陳述式來重新配置動態陣列變數的儲存空間。 ReDim bytAry(UBound(varAry)) As Byte  '重新定義位元陣列的最大上限 ' 使用 For Each 迴圈來將整個陣列元素由16位元轉回 For Each varElement In varAry bytAry(lngLoop) = Val("&H" & varElement) lngLoop = lngLoop + 1 Next ' 使用 StrConv 函數 , 並將引數設定成 vbFromUnicode , ' 把位元陣列內容據系統的預設字元碼對應頁將字串轉成 Unicode。 ' 並放字串變數里回傳 RvtString = StrConv(bytAry, vbUnicode) ' 使用 Erase 陳述式釋放動態的儲存空間 Erase bytAry End Function Sample : Dim strTest As String Dim strHexValue As String strTest = "This is test !" strHexValue = CvtString(strTest)  '將字串轉 16 進位 MsgBox strHexValue, , "16進位值" MsgBox RvtString(strHexValue), , "還原" ' 將字串由 16 進位傳回來

Post navigation

Previous Post:

有趣的數列

Next Post:

永遠有兩個機會

分類

  • 新奇有趣の搶先報導
    • Raspberry Pi
    • 手機相關
    • 推薦軟體
    • 新鮮有趣
    • 生活資訊
  • 想破腦袋の程式技巧
    • Oracle EBS
    • Database
    • Excel, VBA
    • php
    • JavaScript, VBScript
    • VS.NET
    • Others
    • Windows
    • SAP
  • 撩動心弦の短文小品
  • 聚沙成塔の理財守則
  • 不可不知の職場實錄
  • 剎那永恆の生活翦影

近期文章

  • 受保護的內容: 如何透過Personalize功能呼叫另一form來回傳值
  • Win10 / 8 / 7 無法安裝 SSD
  • 受保護的內容: 樹梅派+遠端連線
  • EBS R12 取得客戶的phone, email, URL資料
  • 受保護的內容: 管控Workflow Administrator Role

友站

  • Masaya396's 協奏曲
  • 老塗的咁仔店

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

Tag Cloud

你目前使用的瀏覽器不支援 HTML5 的 CANVAS 標籤。

  • Oracle DB
  • 管理
  • Win7
  • VB6
  • LDAP
  • HTC
  • EBS 11.5.10
  • MySql
  • VB.Net
  • WinXP
  • Oracle EBS
  • VBA
  • php
  • javascript
  • SQL
  • 感情
  • excel
  • CSS
  • EBS 12.1.3
  • SAP
© 2025 有害部落格同好會 - Powered by SimplyNews