写入 Dim sStr As String Dim bit() As Byte sStr = "ABCDEFG" bit = StrConv(sStr, vbFromUnicode) Open FileName For Binary As #1 Put #1, , bit Close #1 读取 Dim sStr As String Dim bit() As Byte Open FileName For Binary As #1 Get #1, , bit Close #1 sStr = StrConv(bit, vbUnicode) Debug.Print sStr
to huangguanshu(): 还是有几个问题:1.为什么要定义一个bit()?直接用Put #1, , sStr好像也行! 2.最重要的是,读取不出来!!!???只能读出为空!!! 谢谢!
2:luoxiang2000(腾空) 定义一个bit()数组是我的习惯。读取时,先对动态数组进行重新分配, Open FileName For Binary As #1 redim bit(lof(#1)-1) Get #1, , bit Close #1
to huangguanshu(): 1、你为什么要定义bit() as byte?这样的话,还得转换来,转换去,不麻烦吗? 2、redim bit(lof(#1)-1),加上这句会报错:缺少表达式! 顺便问一下,上面jusygg(极品)回的"gz "是什么意思?
Private Sub Command1_Click() '写入 Dim sStr As String Dim bit() As Byte sStr = Text1.Text bit = StrConv(sStr, vbFromUnicode) 'Open FileName For Binary As #1 Open "D:\aaa.txt" For Binary As #1 Put #1, , bit Close #1End SubPrivate Sub Command2_Click() '读取 Dim sStr As String 'Dim bit() As Byte 'Open FileName For Binary As #1
Open "D:\aaa.txt" For Binary As #1 ReDim bit(LOF(1) - 1) Get #1, , bit Close #1 sStr = StrConv(bit, vbUnicode) Text2.Text = sStr End Sub
你知道我可是菜鸟,能不能说具体点!最好是有例子!丰常感谢!
Dim sStr As String
Dim bit() As Byte
sStr = "ABCDEFG"
bit = StrConv(sStr, vbFromUnicode)
Open FileName For Binary As #1
Put #1, , bit
Close #1
读取
Dim sStr As String
Dim bit() As Byte
Open FileName For Binary As #1
Get #1, , bit
Close #1
sStr = StrConv(bit, vbUnicode)
Debug.Print sStr
还是有几个问题:1.为什么要定义一个bit()?直接用Put #1, , sStr好像也行!
2.最重要的是,读取不出来!!!???只能读出为空!!!
谢谢!
定义一个bit()数组是我的习惯。读取时,先对动态数组进行重新分配,
Open FileName For Binary As #1
redim bit(lof(#1)-1)
Get #1, , bit
Close #1
1、你为什么要定义bit() as byte?这样的话,还得转换来,转换去,不麻烦吗?
2、redim bit(lof(#1)-1),加上这句会报错:缺少表达式!
顺便问一下,上面jusygg(极品)回的"gz "是什么意思?
1、去掉#程序在Get #1, , bit这一句报错:变量使用了Visual Basic不支持的类型(错误458)!
2、用open\get\put\write的方法,可以打开\写入别的文件吗?如:图形、音频等!
"INI控制"有点专业,小弟不懂???请解释一下!另外,put\write\print有什么区别?以Binary方式打开文件与以input方式打开又有什么区别?
另外,上面jusygg(极品)回的"gz "是什么意思?
'写入
Dim sStr As String
Dim bit() As Byte
sStr = Text1.Text
bit = StrConv(sStr, vbFromUnicode)
'Open FileName For Binary As #1
Open "D:\aaa.txt" For Binary As #1
Put #1, , bit
Close #1End SubPrivate Sub Command2_Click()
'读取
Dim sStr As String
'Dim bit() As Byte
'Open FileName For Binary As #1
Open "D:\aaa.txt" For Binary As #1
ReDim bit(LOF(1) - 1)
Get #1, , bit
Close #1
sStr = StrConv(bit, vbUnicode)
Text2.Text = sStr
End Sub
文本方式打开,则会发生转换。甚至曲解。如26是ctrl+z,在二进制文件里很常见,但用文本方式打开就以为是结束位置。
'读取
Dim sStr As String
'Dim bit() As Byte '<-这里,你为何将声明注释了
'Open FileName For Binary As #1
Open "D:\aaa.txt" For Binary As #1
ReDim bit(LOF(1) - 1)
Get #1, , bit
Close #1
sStr = StrConv(bit, vbUnicode)
Text2.Text = sStr
End Sub
print是“将格式化显示的数据写入顺序文件中”
write是“将数据写入顺序文件”
其中的不同自己看吧。
二进制文件适用于各种文件,一般来说,二进制加密后最好还用二进制保存。
MSDN 上有关于文件操作的详细介绍。