返回列表 发帖

[原创] vbs版文本十六进制转换器

本帖最后由 a2002 于 2017-7-26 11:55 编辑

对于十六进制编辑,大家应该都知道吧,
我研究了一下,弄出了vbs的二字节型字符码到一字节型字符码的转换,在文件末的function中,
...也不好说什么,直接上源码:
rem ToHex made by a2002
if Wscript.Arguments.Count=0 then wscript.Quit
strLoadFile=wscript.Arguments(0)
set fso=createobject("scripting.FileSystemObject")
set open=fso.opentextfile(strLoadFile)
do while open.atendofstream=false
line=open.readline
for i=1 to len(line)
hx=hexex(mid(line,i,1))
all=all+hx
next
all=all+"0D 0A "
loop
write="Address   0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F"+chr(13)+chr(10)
for i=1 to int(len(all)/48)
write=write+right("00000000"+hex(i*16-16),8)+" "
write=write+mid(all,i*48-47,48)+chr(13)+chr(10)
next
if len(all) mod 48 = 0 then
write=left(write,len(write)-2)
else
write=write+right("00000000"+hex(i*16-16),8)+" "
for i=1 to len(all) mod 48
write=write+mid(all,int(len(all)/48)*48+i*3-2,3)
next
end if
set open=fso.opentextfile(strLoadFile,2)
open.write write
open.close
msgbox "Text to hex successfully"
function hexex(str)
str=asc(str)
if str < 0 then
str=str+65536
lefts=int(str/256)
rights=str-lefts*256
lefts=right("0"+hex(lefts),2)
rights=right("0"+hex(rights),2)
hexex=lefts+" "+rights+" "
else
str=right("0"+hex(str),2)
hexex=str+" "
end if
end functionCOPY
处理文本的结果:
Address   0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
00000000 69 66 20 57 73 63 72 69 70 74 2E 41 72 67 75 6D
00000010 65 6E 74 73 2E 43 6F 75 6E 74 3D 30 20 74 68 65
00000020 6E 20 77 73 63 72 69 70 74 2E 51 75 69 74 0D 0A
00000030 73 74 72 4C 6F 61 64 46 69 6C 65 3D 77 73 63 72
00000040 69 70 74 2E 41 72 67 75 6D 65 6E 74 73 28 30 29
00000050 0D 0A 73 65 74 20 66 73 6F 3D 63 72 65 61 74 65
00000060 6F 62 6A 65 63 74 28 22 73 63 72 69 70 74 69 6E
00000070 67 2E 46 69 6C 65 53 79 73 74 65 6D 4F 62 6A 65
00000080 63 74 22 29 0D 0A 73 65 74 20 6F 70 65 6E 3D 66
00000090 73 6F 2E 6F 70 65 6E 74 65 78 74 66 69 6C 65 28
000000A0 73 74 72 4C 6F 61 64 46 69 6C 65 29 0D 0A 64 6F
000000B0 20 77 68 69 6C 65 20 6F 70 65 6E 2E 61 74 65 6E
000000C0 64 6F 66 73 74 72 65 61 6D 3D 66 61 6C 73 65 0D
000000D0 0A 09 6C 69 6E 65 3D 6F 70 65 6E 2E 72 65 61 64
000000E0 6C 69 6E 65 0D 0A 09 66 6F 72 20 69 3D 31 20 74
000000F0 6F 20 6C 65 6E 28 6C 69 6E 65 29 0D 0A 09 09 68
00000100 78 3D 68 65 78 65 78 28 6D 69 64 28 6C 69 6E 65
00000110 2C 69 2C 31 29 29 0D 0A 09 09 61 6C 6C 3D 61 6C
00000120 6C 2B 68 78 0D 0A 09 6E 65 78 74 0D 0A 09 61 6C
00000130 6C 3D 61 6C 6C 2B 22 30 44 20 30 41 20 22 0D 0A
00000140 6C 6F 6F 70 0D 0A 77 72 69 74 65 3D 22 41 64 72
00000150 65 73 73 20 20 20 20 30 20 20 31 20 20 32 20 20
00000160 33 20 20 34 20 20 35 20 20 36 20 20 37 20 20 38
00000170 20 20 39 20 20 41 20 20 42 20 20 43 20 20 44 20
00000180 20 45 20 20 46 22 2B 63 68 72 28 31 33 29 2B 63
00000190 68 72 28 31 30 29 0D 0A 66 6F 72 20 69 3D 31 20
000001A0 74 6F 20 69 6E 74 28 6C 65 6E 28 61 6C 6C 29 2F
000001B0 34 38 29 0D 0A 09 77 72 69 74 65 3D 77 72 69 74
000001C0 65 2B 72 69 67 68 74 28 22 30 30 30 30 30 30 30
000001D0 30 22 2B 68 65 78 28 69 2A 31 36 2D 31 36 29 2C
000001E0 38 29 2B 22 20 22 0D 0A 09 77 72 69 74 65 3D 77
000001F0 72 69 74 65 2B 6D 69 64 28 61 6C 6C 2C 69 2A 34
00000200 38 2D 34 37 2C 34 38 29 2B 63 68 72 28 31 33 29
00000210 2B 63 68 72 28 31 30 29 0D 0A 6E 65 78 74 0D 0A
00000220 69 66 20 6C 65 6E 28 61 6C 6C 29 20 6D 6F 64 20
00000230 34 38 20 3D 20 30 20 74 68 65 6E 0D 0A 09 77 72
00000240 69 74 65 3D 6C 65 66 74 28 77 72 69 74 65 2C 6C
00000250 65 6E 28 77 72 69 74 65 29 2D 32 29 0D 0A 65 6C
00000260 73 65 0D 0A 09 77 72 69 74 65 3D 77 72 69 74 65
00000270 2B 72 69 67 68 74 28 22 30 30 30 30 30 30 30 30
00000280 22 2B 68 65 78 28 69 2A 31 36 2D 31 36 29 2C 38
00000290 29 2B 22 20 22 0D 0A 09 66 6F 72 20 69 3D 31 20
000002A0 74 6F 20 6C 65 6E 28 61 6C 6C 29 20 6D 6F 64 20
000002B0 34 38 0D 0A 09 09 77 72 69 74 65 3D 77 72 69 74
000002C0 65 2B 6D 69 64 28 61 6C 6C 2C 69 6E 74 28 6C 65
000002D0 6E 28 61 6C 6C 29 2F 34 38 29 2A 34 38 2B 69 2A
000002E0 33 2D 32 2C 33 29 0D 0A 09 6E 65 78 74 0D 0A 65
000002F0 6E 64 20 69 66 0D 0A 73 65 74 20 6F 70 65 6E 3D
00000300 66 73 6F 2E 6F 70 65 6E 74 65 78 74 66 69 6C 65
00000310 28 73 74 72 4C 6F 61 64 46 69 6C 65 2C 32 29 0D
00000320 0A 6F 70 65 6E 2E 77 72 69 74 65 20 77 72 69 74
00000330 65 0D 0A 6F 70 65 6E 2E 63 6C 6F 73 65 0D 0A 6D
00000340 73 67 62 6F 78 20 22 73 75 63 63 65 73 73 66 75
00000350 6C 22 0D 0A 0D 0A 66 75 6E 63 74 69 6F 6E 20 68
00000360 65 78 65 78 28 73 74 72 29 0D 0A 09 73 74 72 3D
00000370 61 73 63 28 73 74 72 29 0D 0A 09 69 66 20 73 74
00000380 72 20 3C 20 30 20 74 68 65 6E 0D 0A 09 09 73 74
00000390 72 3D 73 74 72 2B 36 35 35 33 36 0D 0A 09 09 6C
000003A0 65 66 74 73 3D 69 6E 74 28 73 74 72 2F 32 35 36
000003B0 29 0D 0A 09 09 72 69 67 68 74 73 3D 73 74 72 2D
000003C0 6C 65 66 74 73 2A 32 35 36 0D 0A 09 09 6C 65 66
000003D0 74 73 3D 72 69 67 68 74 28 22 30 22 2B 68 65 78
000003E0 28 6C 65 66 74 73 29 2C 32 29 0D 0A 09 09 72 69
000003F0 67 68 74 73 3D 72 69 67 68 74 28 22 30 22 2B 68
00000400 65 78 28 72 69 67 68 74 73 29 2C 32 29 0D 0A 09
00000410 09 68 65 78 65 78 3D 6C 65 66 74 73 2B 22 20 22
00000420 2B 72 69 67 68 74 73 2B 22 20 22 0D 0A 09 65 6C
00000430 73 65 0D 0A 09 09 73 74 72 3D 72 69 67 68 74 28
00000440 22 30 22 2B 68 65 78 28 73 74 72 29 2C 32 29 0D
00000450 0A 09 09 68 65 78 65 78 3D 73 74 72 2B 22 20 22
00000460 0D 0A 09 65 6E 64 20 69 66 0D 0A 65 6E 64 20 66
00000470 75 6E 63 74 69 6F 6E 0D 0A COPY
原创区不能发,帖子随便放

回复 2# 老刘1号


    最近在练笔
原创区不能发,帖子随便放

TOP

回复 4# 老刘1号


    vbs和C哪个更快?
原创区不能发,帖子随便放

TOP

回复 8# 523066680


    语言随便学习学习而已,重要的是思路
原创区不能发,帖子随便放

TOP

深奥的东西看不懂,想评分又超24小时限了,好无奈
原创区不能发,帖子随便放

TOP

也是,以后写游戏会注意的
原创区不能发,帖子随便放

TOP

回复 15# 老刘1号


    x10
原创区不能发,帖子随便放

TOP

返回列表