<VBFixedString(15)> Public Name As String
<VBFixedString(2)> Public Sex As String
End Structure
其中VBFixedString用于定义字符串为固定长度的字符串。
在打开一个文件进行随机操作访问前,应该定义一个类型该类型对应该文件已包含或未包含的记录。
打开要进行随机访问的文件:
FileOpen 函数:FileOpen(FileNumber, FileName, OpenMode.Random, , , RecordLength)
FileNumber 和 FileName 分别指定要打开的文件的编号和文件名。RecordLength 以字节为单位指定每条记录的大小。如果 RecordLength 小于写入文件的记录的实际长度,则会生成错误。
示例:打开随机访问的文件。
Dim FileNum as Integer ,RecLength as Long, Aperson as Person
‘计算记录的长度
RecLength=Len(APerson)
‘获得可用的文件号
FileNum=FreeFile()
‘打开文件
FileOpen(FileNum,”c:\example.txt”,OpenMode.random,,,Reclenght)
打开文件之后就可以把记录读入变量中,使用FileGet函数。
示例:从文件中读取第一条记录
Dim FileNum as Integer ,RecLength as Long, Aperson as Person
RecLength=Len(APerson)
FileNum=FreeFile()
FileOpen(FileNum,”c:\example.txt”,OpenMode.random,,,Reclenght)
FileGet(FileNum,Aperson,1);
Console.WriteLine(Aperson.Id)
Console.WriteLine(Aperson.Name)
Console.WriteLine(Aperson.Sex)
Console.WriteLine(Aperson.MonthlySalary)
FileClose(FileNum)
写入记录:通过FilePut函数来替换已经存在的记录或新增记录
示例:写入五条记录到文件中:
‘自定义数据类型
Structure Person
Public ID As Integer
Public Name As String
End Structure Sub WriteData() Dim MyRecord As Person Dim recordNumber As Integer '''' 随机方式打开. FileOpen(1, "C:\example.txt", OpenMode.Binary) For recordNumber = 1 To 5 '''' MyRecord.ID = recordNumber '''' Define ID. MyRecord.Name = "My Name" & recordNumber ''''创建一个字符串 FilePut(1, MyRecord) '''' 写入文件 Next recordNumber FileClose(1) End Sub
以上代码实现了随机访问的方式打开文件,并写入记录。
二进制文件的操作
打开要进行二进制访问的文件
FileOpen(FileNumber, FileName, OpenMode.Binary)
关闭要进行二进制访问的文件
FileClose(FileNumber)
如果保持较小的文件大小很重要,则采用二进制访问。因为二进制访问不要求固定长度的字段,所以类型声明可以省略字符串长度参数。这使得以通过生成变长记录来节省磁盘空间。使用二进制型访问的类型定义为:
Structure Person
dim ID As Integer
dim Name As String
dim MonthlySalary As Decimal
dim Sex As String
End Structure
使用变长字段的二进制输入/输出的缺点是无法随机访问记录,而必须按顺序访问它们才能了解每条记录的长度。仍可直接转到文件中的指定字节位置,但是如果字段是变长的,则不知道哪个记录位于哪个字节处。
(部分翻译自MSDN)
上一页 [1] [2] [3] [系统软件]Visual Studio 2005 Express Beta Products 下载链… [系统软件]Visual FoxPro9.0中扩展报表系统功能 [系统软件]Visual FoxPro:我是旁观者 [系统软件]Visual Studio 2005 Express Editions Beta 2 下载… [系统软件]Boost库在XP+Visual C++.net中的安装 [系统软件]Visual Studio 2005 Express Edition 正式版下载地… [常用软件]Visual Foxpro通用报表打印程序 [常用软件]Visual FoxPro 6.0与大型数据库的无数据源连接 [常用软件]Visual Foxpro 的一个BUG [VB.NET程序]Visual Basic 6 逆向工程与反逆向工程 (2)
|