用 print #1, str1
不要用 write

解决方案 »

  1.   

    to huangguanshu():
    你知道我可是菜鸟,能不能说具体点!最好是有例子!丰常感谢!
      

  2.   

    写入
      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
      

  3.   

    to huangguanshu():
    还是有几个问题:1.为什么要定义一个bit()?直接用Put #1, , sStr好像也行!
    2.最重要的是,读取不出来!!!???只能读出为空!!!
    谢谢!
      

  4.   

    2:luoxiang2000(腾空)
    定义一个bit()数组是我的习惯。读取时,先对动态数组进行重新分配,
    Open FileName For Binary As #1
      redim bit(lof(#1)-1)
      Get #1, , bit
    Close #1
      

  5.   

    to huangguanshu():
    1、你为什么要定义bit() as byte?这样的话,还得转换来,转换去,不麻烦吗?
    2、redim bit(lof(#1)-1),加上这句会报错:缺少表达式!
    顺便问一下,上面jusygg(极品)回的"gz  "是什么意思?
      

  6.   

    2 huangguanshu():
    1、去掉#程序在Get #1, , bit这一句报错:变量使用了Visual Basic不支持的类型(错误458)!
    2、用open\get\put\write的方法,可以打开\写入别的文件吗?如:图形、音频等!
      

  7.   

    2 enmity(真我的风采):
    "INI控制"有点专业,小弟不懂???请解释一下!另外,put\write\print有什么区别?以Binary方式打开文件与以input方式打开又有什么区别?
    另外,上面jusygg(极品)回的"gz  "是什么意思? 
      

  8.   

    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
      

  9.   

    读INI用line input & print最好写二进制用put,get最好二进制文件方式打开vb就不会做多余的处理,很安全。
    文本方式打开,则会发生转换。甚至曲解。如26是ctrl+z,在二进制文件里很常见,但用文本方式打开就以为是结束位置。
      

  10.   

    Private 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 
      

  11.   

    不能放在文本文件中。除非你是用binary打开。
      

  12.   

    最后还想问:print和write有什么区别?
      

  13.   

    你用的是write吧!!我也被“骗”过。
    print是“将格式化显示的数据写入顺序文件中”
    write是“将数据写入顺序文件”
    其中的不同自己看吧。
      

  14.   

    write 带有格式(用引号将值括起来),可以用 input 实现完整读回来。
    二进制文件适用于各种文件,一般来说,二进制加密后最好还用二进制保存。
    MSDN 上有关于文件操作的详细介绍。