vb输入输出

来源:互联网 发布:东方快车杀人事件知乎 编辑:程序博客网 时间:2024/04/30 15:44


1. 打开文件(Open)
Open 文件名 [For模式][Access 存取类型][锁定]As [#]文件号[Len=记录长度]
       说明:
(1)文件名;
(2) 模式用于指定文件访问的方式,包括:
           Append——从文件末尾添加             Binary——二进制文件
           Input——顺序输入(输入给自己,从txt中取出)                            Output——顺序输出(输出到txt中)
           Random——随机存取方式
(3)文件号(或称文件缓冲区)
(4)存取类型:访问文件的类型,为Read(只读)、Write(只写)、Read Write(读写)
(5)锁定:限制其他用户或其他进程对文件进行读写操作
                       Shared(共享)、LockRead(禁止读)、Lock Write(禁止写)、
                          Lock Read Write(禁止读写)
(6)Len:用来指定每个记录的长度(字节数)
      示例:    Open"d:\cj1.dat" For  Output As  #1
2. 关闭文件(Close)
         打开的文件使用完后必须关闭。
         关闭文件的语句格式:
           Close[#] 文件号1[,[#] 文件号2…] ]

         示例:
           Close#1
 1. Write语句
   格式:Write#文件号 [,表达式表]
    功能:将表达式的值写到与文件号相关的顺序文件中
    每个Write语句向顺序文件写入一个记录(不定长),它会自动地用逗号分开每个表达式的值。给字符串加上双引号
         在最后一个字符写入后,插入一个回车换行符(Chr(13) + Chr(10)),以此作为记录结束的标记。

         示例:Write#1, "Good Afternoon", 1998


[vb] view plain copy print?Private Sub CommandButton1_Click()      Dim num As String * 6, name As String * 8, score As Integer      num = TextBox1.Text      name = TextBox2.Text      score = Val(TextBox3.Text)      Write #1, num, name, score      TextBox1.Text = ""      TextBox2.Text = ""      TextBox3.Text = ""      TextBox1.SetFocus  End Sub    Private Sub CommandButton2_Click()      Close #1      End  End Sub    Private Sub UserForm_Initialize()      Open ThisWorkbook.Path & "\1.txt" For Output As #1  End Sub  Private Sub CommandButton1_Click()
    Dim num As String * 6, name As String * 8, score As Integer
    num = TextBox1.Text
    name = TextBox2.Text
    score = Val(TextBox3.Text)
    Write #1, num, name, score
    TextBox1.Text = ""
    TextBox2.Text = ""
    TextBox3.Text = ""
    TextBox1.SetFocus
End Sub

Private Sub CommandButton2_Click()
    Close #1
    End
End Sub

Private Sub UserForm_Initialize()
    Open ThisWorkbook.Path & "\1.txt" For Output As #1
End Sub
运行结果~


读取数据,用For...Next 语句


[vb] view plain copy print?Sub 的开发商的()      Dim n As String, m As String, s As Integer      Open ThisWorkbook.Path & "\1.txt" For Input As #1      For i = 1 To 5          Input #1, n, m, s          Cells(i, 1) = n          Cells(i, 2) = m          Cells(i, 3) = s      Next      Close #1  End Sub  Sub 的开发商的()
    Dim n As String, m As String, s As Integer
    Open ThisWorkbook.Path & "\1.txt" For Input As #1
    For i = 1 To 5
        Input #1, n, m, s
        Cells(i, 1) = n
        Cells(i, 2) = m
        Cells(i, 3) = s
    Next
    Close #1
End Sub

 2. Print语句

格式:Print  #文件号[,表达式表]
        作用与Write一样。将一个或多个表达式的值写到与文件号相关的顺序文件中。其输出数据格式与Print方法在窗体上输出格式相似。
           示例:
            Print  #1, num, name, score              ‘对应按区格式
            Print  #1, num;name;score          ‘对应紧凑格式


先用Input方式打开文件,然后采用Input或LineInput语句从文件中读出数据。通常,Input用来读出Write写入的记录内容,而Line Input用来读出Print写入的记录内容
1.Input语句
    一般格式:Input#文件号,变量名表
      功能:从指定文件中读出一个记录。变量个数和类型应该与要读取的记录所存储的数据一致。
       打开文件时,文件指针指向文件中的第1个记录,以后每读取一个记录,指针就向前推进一次。如果要重新从文件的开头读数据,则先关闭文件后打开
距离:


[vb] view plain copy print?Sub sj()      Open ThisWorkbook.Path & "\data1.txt" For Output As #1      a = 123: b$ = "ABCD"    '在同一行赋值,用“:”      Write #1, a, b$      Close #1      Open ThisWorkbook.Path & "\data1.txt" For Input As #1      Input #1, c, d$      Close #1      Debug.Print c, d$  End Sub  Sub sj()
    Open ThisWorkbook.Path & "\data1.txt" For Output As #1
    a = 123: b$ = "ABCD"    '在同一行赋值,用“:”
    Write #1, a, b$
    Close #1
    Open ThisWorkbook.Path & "\data1.txt" For Input As #1
    Input #1, c, d$
    Close #1
    Debug.Print c, d$
End Sub



[vb] view plain copy print?Sub dfjslkdf()      Open ThisWorkbook.Path & "\num2.txt" For Append As #1      For i = 51 To 200          If i Mod 7 = 0 Then Write #1, i      Next      Close #1  End Sub    Sub dfhdfdffdfdfdk()      k = 0      Open ThisWorkbook.Path & "\num2.txt" For Input As #1      Do While Not EOF(1)          Input #1, x          Debug.Print x,          k = k + 1          If k Mod 4 = 0 Then Debug.Print      Loop  End Sub  Sub dfjslkdf()
    Open ThisWorkbook.Path & "\num2.txt" For Append As #1
    For i = 51 To 200
        If i Mod 7 = 0 Then Write #1, i
    Next
    Close #1
End Sub

Sub dfhdfdffdfdfdk()
    k = 0
    Open ThisWorkbook.Path & "\num2.txt" For Input As #1
    Do While Not EOF(1)
        Input #1, x
        Debug.Print x,
        k = k + 1
        If k Mod 4 = 0 Then Debug.Print
    Loop
End Sub
Debug.Print i    一行一行的输出

Debug.Print i,    在一行输出,中间空很多的空格,具有一定的格式

Debug.Print i;    在一行输出,中间空很少的空格,具有一定的格式

可以加入If i Mod 2 = 0 Then Debug.Print    可以进行换行


Print也有相似的用法:

从TXT中读取数据,数据中间可以是空格、半角逗号

[vb] view plain copy print?Sub dhfkd()      k = 0      Dim arr(1 To 1100) As Variant      Open ThisWorkbook.Path & "\num2.txt" For Input As #1      Do While Not EOF(1)        'EOF(1)用来判断#1是否读到头了,到头返回TRUE          Input #1, x           '读取一个数据          k = k + 1          arr(k) = x            '将读取的数据存在一个数组中      Loop      k = 0      For i = 1 To 10          For j = 1 To 110              k = k + 1              Cells(j, i) = arr(k)          Next      Next      Close #1  End Sub  Sub dhfkd()
    k = 0
    Dim arr(1 To 1100) As Variant
    Open ThisWorkbook.Path & "\num2.txt" For Input As #1
    Do While Not EOF(1)        'EOF(1)用来判断#1是否读到头了,到头返回TRUE
        Input #1, x           '读取一个数据
        k = k + 1
        arr(k) = x            '将读取的数据存在一个数组中
    Loop
    k = 0
    For i = 1 To 10
        For j = 1 To 110
            k = k + 1
            Cells(j, i) = arr(k)
        Next
    Next
    Close #1
End Sub

2.Line Input语句

格式:LineInput  #文件号,字符型变量
功能:从打开的顺序文件中读出一个记录,即一行信息  
用Line input来读取由Print写入的数据,Line Input读取一整行的数据~

[vb] view plain copy print?Sub djhfdljf()      Open ThisWorkbook.Path & "\mytxt.txt" For Output As #1      a = 123: b$ = "SBCD"      Print #1, a, b$      Print #1, a; b$      Close #1      Open ThisWorkbook.Path & "\mytxt.txt" For Input As #1      Line Input #1, x$      Debug.Print x$      Line Input #1, x$      Debug.Print x$      Close #1  End Sub  Sub djhfdljf()
    Open ThisWorkbook.Path & "\mytxt.txt" For Output As #1
    a = 123: b$ = "SBCD"
    Print #1, a, b$
    Print #1, a; b$
    Close #1
    Open ThisWorkbook.Path & "\mytxt.txt" For Input As #1
    Line Input #1, x$
    Debug.Print x$
    Line Input #1, x$
    Debug.Print x$
    Close #1
End Sub


3.Input函数          


格式:Input(字符数,#文件号)
    功能:从文件中读取指定字符数的字符
    示例:A$=Input(20, #1)
        顺序文件的缺点是不能快速地存取所需的数据,也不容易进行数据的插入、删除和修改等工作,因此对于经常要修改数据或取出文件中个别数据,均不适合使用,但对于数据变化不大,每次使用时又需要从头往后顺序地进行读写,它还是不失为一种好的文件结构

0 0
原创粉丝点击