vb以二进制读取和写入文件

我想将一个exe文件以二进制读入一个数组,经过处理,再将数组写入成一个文件,以达到加密效果,但是我用DimDAT()AsByteopen"c:\1.exe"forbina... 我想将一个exe文件以二进制读入一个数组,经过处理,再将数组写入成一个文件,以达到加密效果,但是我用
Dim DAT() As Byte
open "c:\1.exe" for binary as #1
Get #1, , DAT
Close
然后得到的BAT数组怎么不是0,1这样的二进制呢?
我用msgbox DAT(i),显示的是一个三位数,227这样的,不是像0,1这样的,请问怎么回事?该如何达到目的呢?
还有就是怎么将数组写入一个文件?
open "c:\2.exe" for binary as #2
for i=0 to UBound(BAT)-1
write #2,BAT(i)
next
close
这样可以吗?不可以的话那该怎么办?
困惑中,十分感谢!
展开
 我来答
百度网友bdb9803
2011-11-10 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:53%
帮助的人:1亿
展开全部
为什么你认为是像0,1这样的?你用的是字节数组,数组每个元素的值在0~255之间!写的话用Put,而不是write!
追问
好吧,用print和put,那么你有没有什么思路呢?我曾想把DAT数组每个数字都加上一个数,然后解密的时候再减这个数,可是实际操作起来根本达不到要求。我把BAT数组每个值写入到文本里面,然后解密的时候从这个文本读取数据赋值给新数组,可是不是类型不符就是这样那样的问题,纠结死了!
追答
窗体上加两个按钮,一个叫加密,一个叫解密,加密以后生成"c:\2.exe",解密后生成"c:\3.exe":

Private Sub Command1_Click()
Dim DAT() As Byte
Open "c:\1.exe" For Binary As #1
ReDim DAT(LOF(1))
Get #1, , DAT
Close #1
For i = 0 To UBound(DAT)
DAT(i) = Not DAT(i)
Next
Open "c:\2.exe" For Binary As #2
Put #2, , DAT
Close #2
End Sub

Private Sub Command2_Click()
Dim DAT() As Byte
If Dir("c:\2.exe") "" Then
Open "c:\2.exe" For Binary As #1
ReDim DAT(LOF(1))
Get #1, , DAT
Close #1
For i = 0 To UBound(DAT)
DAT(i) = Not DAT(i)
Next
Open "c:\3.exe" For Binary As #2
Put #2, , DAT
Close #2
End If
End Sub
可以叫我表哥
推荐于2017-10-11 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
采纳数:25897 获赞数:1464990
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。

向TA提问 私信TA
展开全部
  二进制文件的打开也用fileopen完成,只是打开二进制文件的形式为:openmode.binary
读取二进制文件用的是fileget方法,写入二进制文件用的是fileput方法。
应用实例:将一批随机数保存在一个dat文件中,然后再将其提取到文本框中。[实验报告 39]
见,二进制文件的读写一批随机数的存取,程序为:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim x, i, fn As Integer
Dim s As String = ""
fn = FreeFile()
FileOpen(fn, "d:\data.dat", OpenMode.Binary)
For i = 1 To 8
x = Int(Rnd() * 100)
s = s + Str(x)
FilePut(fn, x)
Next
FileClose(fn)
TextBox1.Text = s
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim x, fn As Integer
Dim s As String = ""
fn = FreeFile()
FileOpen(fn, "d:\data.dat", OpenMode.Binary)
Do While Not EOF(fn)
FileGet(fn, x)
s = s + Str(x) + " "
Loop
FileClose(fn)
TextBox1.Text = s
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式