1、顺序文件的操作
从文件中读取字符串
有三个函数可以从顺序文件中读取字符串:Input,InputString和LineInput。
Input函数
从打开的顺序文件中读取数据并将数据分配给变量。
Public Sub Input( FileNumber As Integer, ByRef Value As Object)
其中参数FileNumber为有效文件号;Value为被赋予从文件读取的值的变量,它不能为数组或对象变量。
下面的例子是一个写入和读取文本example.txt的Hello,world!例子,新建一个控制台应用程序,写入下面的代码查看结果。
FileOpen(1, "c:\example.txt", OpenMode.Output)
Write(1, "Hello,")
Write(1, "World!")
FileClose(1)
Dim s As String
FileOpen(1, "c:\example.txt", OpenMode.Input)
Do While Not EOF(1)
Input(1, s)
Console.WriteLine(s)
Loop
FileClose(1)
InputString函数
返回 String 值,该值包含以 Input 或 Binary 模式打开的文件中的字符。
InputString ( ByVal FileNumber As Integer, ByVal CharCount As Integer ) As String
其中参数FileNumber是有效文件号,CharCount是指定要读取的字符个数的有效数值表达式。
与 Input 函数不同,InputString 函数返回它读取的所有字符,包括逗号、回车符、换行符、引号和前导空格等。对于以 Binary 访问模式打开的文件,如果试图在 EOF 返回 True 之前用InputString 函数读取整个文件,则会产生错误。在用 InputString 读取二进制文件时,用 LOF 和 Loc 函数代替 EOF 函数,而在使用 EOF 函数时则使用 FileGet 函数。
示例:
Dim s As String
FileOpen(1, " c:\example.txt ", OpenMode.Binary)
Do While Not EOF(1)
s = InputString(1, 9)
Console.WriteLine(s)
Loop
FileClose(1)
LineInput 函数:
从打开的顺序文件中读取一行数据并将它赋给 String 变量。
Public Function LineInput (ByVal FileNumber As Integer) As String
参数 FileNumber 是有效文件号。
此函数从文件一次读取一个字符,直到遇到回车符(Chr(13))或回车–换行符(Chr(13) + Chr(10))为止。回车–换行序列被跳过而不是附加到字符字符串上。
示例:
Dim s As String
FileOpen(1, " c:\example.txt ", OpenMode.Binary)
Do While Not EOF(1)
s = LineInput(1)
Console.WriteLine(s)
Loop
FileClose(1)
把字符串写入文件
如果要向文件中写入数据,可以用Print/PrintLine函数,如果要写入的数据是字符串或是数值,则可以用Write/WriteLine函数,要写文件,应该先将文件以Output或Append方式打开,然后菜可以使用Print函数或Write函数。
Print/PrintLine函数:将格式化的显示数据写入顺序文件。
Public Sub Print( ByVal FileNumber As Integer, ByVal ParamArray Output() As Object)
Public Sub PrintLine( ByVal FileNumber As Integer, Val ParamArray Output() As Object )
其中参数FileNumber 是有效文件号,Output 是要写入文件的零个或更多个用逗号分隔的表达式。
示例:
FileOpen(1, " c:\example.txt ", OpenMode.Output)
Printline(1)
Printline(1,”Hello,”)
Print(1,spc(4),”World!”)
FileClose(1)
Write/Writeline和print/printline类似
2.随机文件的操作
随机访问文件中的字节构成相同的一些记录,每个记录包含一个或多个字段,对于一个字段的记录对应于任一标准类型,随机访问文件中的所有记录都必须具有相同长度,如果实际字符串包含的字符少于将它写入其中的字符串元素的固定长度,则 Visual Basic 用空白(字符代码 32)填充记录中的尾随空格。如果该字符串长于字段大小,则 Visual Basic 截断它。
示例:用户定义数据类型:
Structure Person
Public ID As Integer
Public MonthlySalary As Decimal
<VBFixedString(15)> Public Name As String
<VBFixedString(2)> Public Sex As String
End Structure
其中VBFixedString用于定义字符串为固定长度的字符串。