文件能添加成功,但是用string变量类型获取的内容是空的,用int、long只能获得一些数字,请问要怎么才能完成的取得文件的内容?Private Sub Command1_Click()    '获取文件内容
Dim a As String
Open "e:\e.txt" For Binary As #1
Get #1, 1, a
Label1.Caption = a
Close #1
End SubPrivate Sub Command2_Click()   '添加文件内容
Dim e As String
Open "e:\e.txt" For Binary As #1
e = Text1.Text
Put #1, 1, e
Close #1
End Sub

解决方案 »

  1.   

    Open "e:\e.txt" For input As #1
        input #1,a
        Label1.Caption = a 
    Close #1
      

  2.   

    Private Sub Command1_Click()    '获取文件内容
    Dim a() As Byte, i As Long
    i = FileLen("e:\e.txt")
    ReDim a(i - 1)
    Open "e:\e.txt" For Binary As #1
    Get #1, , a
    Label1.Caption = StrConv(a, vbUnicode)
    Close #1
    End SubPrivate Sub Command2_Click()  '添加文件内容
    Dim e() As Byte
    Open "e:\e.txt" For Binary As #1
    e = StrConv(Text1.Text, vbFromUnicode)
    Put #1, 1, e
    Close #1
    End Sub
      

  3.   

    Binary 是 VB 中“对文件操作方式的一种描述”,它把整个文件看着一系列的无任何格式定义的字节流。在 读/写 文件时,也直接按内存数据的形式进行 输入/输出 操作(当然字符串是按 ANSI字节序列 来处理)。
      你是对“Command2_Click() 中把 Text1 中的内容输出到文件中,但 Command1_Click() 中却没读取到任何字符”感到奇怪吧!
      其实是这么回事:在 Get语句 中,是按“接收变量的空间需求”来输入数据的。  针对你的那段代码来说:
      比如你在 Text1 中输入 AbcdXYZ 这7个字母,你点一下 Command2 ,事件过程执行时,(假设e:\e.txt不存在)Open语句 将在磁盘 E:\ 上创建 e.txt 这个文件,此时文件大小是0字节,同时文件也是‘打开’的,你的程序中任何一个过程都可以用 #1 这个文件号(程序内部是对应一个‘文件句柄’)操作这个文件(读/写);然后 Put语句 会把那7个字母的 ASCII码 写入文件中,此时文件大小是字7节(虽然 e 的值在内存中是14字节),如果你用调试单步运行,这句执行后,你用记事本打开它,能看到内容AbcdXYZ;接着 Close语句 ‘关闭 #1’,也就是关闭对应文件、注销对应的文件句柄,此时如果再直接用 #1 来访问文件(读/写),就会出错了,你可以用 #1 重新打开这个文件或打开别的文件。
      在 Command1_Click() 中,Dim a as String 后,在你的 Get语句 之前没有对 a 赋过值,它的值是vbNullString ,也就是零长度的字符串,这时执行 Get语句 ,“将从文件开头处读取0字节”,也就是什么也不会输入了,a 仍然是空串。
      要把这7个字符读出来,可以这样:
    Private Sub Command1_Click()    '获取文件内容
        Dim a As String
        Open "e:\e.txt" For Binary As #1
        a = "1234567"  '实际随便输7个字符都行,也可以 a = Space(7)
       'a = "123"   '任意三个字符也一样,下面这句只读到 Abc
        Get #1, 1, a
        Label1.Caption = a
        Close #1
    End Sub
      这样就能达到你想要的效果了。
      

  4.   

    其实用 Binary模式 操作文件,非常自由灵活,有多种方法达到目的。
    自己慢慢琢磨吧。
      

  5.   

    binary = 顺序文件
    ramxxx = 随机文件
      

  6.   

    如何读/写 Binary File'以下是读取Binary file的程式
    Dim Buff() as ByteOpen "d:\csys\8504\ctc" For Binary Access Read As #1
    ReDim Buff(267)Do While Not EOF(1)
       Get #1, , Buff  '每次读268个byte进来
       'Call 处理Buff 的Routine
    Loop
    Close #1'以下是写入Binary file的程式
    Dim Buff() As Byte
    Open "c:\tc" For Binary Access Write As #1
    ReDim Buff(10)
    Buff = StrConv("这是一个11", vbFromUnicode)
    Put #1, , BuffReDim Buff(1)
    Buff(0) = 210
    Buff(1) = 70
    Put #1, , Buff
    Close #1
    End Sub