ASCII轉十六進制小工具



今天要做一個性能測試,開發人員直接從日誌中截取了一大堆的十六進制報文給我,但是因爲是asc碼的,沒法直接使用,還得先轉換成16進制報文才行。



baidu一下,淨是c的,以前倒是用c++ builder寫過一個,也有c的,但是早就不知道扔到哪裏去了,而且要環境,現在深深感覺到vbs還是好用呀,文本編輯器就可以了。寫了兩個,一個是直接進行文件轉換,另一個就轉換一個字符串,用得上的同學可以留着,用不上的同學散了吧。


文件轉換的代碼:


dim strInFile,strOutFile,strLine
Dim dt1, dt2


dt1 = Now


strInFile="mes1.txt"
strOutFile=getNow() & ".dat"
strall=""


Set fs=createobject("scripting.filesystemobject")
Set f=fs.opentextfile(strInFile,1,true)


Const adTypeBinary = 1 
Const adSaveCreateOverWrite = 2 
Dim stream, xmldom, node 
Set xmldom = CreateObject("Microsoft.XMLDOM") 
Set node = xmldom.CreateElement("binary") 
node.DataType = "bin.hex" 


Set stream = CreateObject("ADODB.Stream") 
stream.Type = adTypeBinary 
stream.Open 


Do Until f.AtEndOfStream
  strLine=f.ReadLine
  node.Text = strLine & vbcrlf
stream.write node.NodeTypedValue 
Loop


f.close
Set f=nothing
Set fs=nothing


stream.saveToFile strOutFile, adSaveCreateOverWrite 
stream.Close 
Set stream = Nothing 
Set node = Nothing 
Set xmldom = Nothing 




dt2 = Now
MsgBox "執行完成,總共用時:" & DateDiff("s", dt1, dt2) & "秒"


Function getNow()
Dim d
Dim sRet
d=Now()
sRet=Year(d) & Right("00" & Month(d),2) & Right("00" & Day(d),2) & Right("00" & Hour(d),2) & Right("00" & Minute(d),2) & Right("00" & Second(d),2)
getNow=sRet
End Function



單行轉換的代碼:

'寫二進制文件
Call WriteBinary("001.dat","2A485132303031383932333737333639362C41443126413131343635333232333338333433313134303733333634363030313932313031313426423032303030303030303026433030313A35353E3826463030303023")
MsgBox "done"


Sub WriteBinary(FileName, Buf) 
Const adTypeBinary = 1 
Const adSaveCreateOverWrite = 2

Dim stream, xmldom, node 
Set xmldom = CreateObject("Microsoft.XMLDOM") 
Set node = xmldom.CreateElement("binary") 
node.DataType = "bin.hex" 
node.Text=Buf 
Set stream = CreateObject("ADODB.Stream") 
stream.Type = adTypeBinary 
stream.Open 
stream.write node.NodeTypedValue 
stream.saveToFile FileName, adSaveCreateOverWrite 
stream.Close 
Set stream = Nothing 
Set node = Nothing 
Set xmldom = Nothing 
End Sub 



發佈了87 篇原創文章 · 獲贊 23 · 訪問量 38萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章