📄 020403.htm
字号:
<html>
<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>vb study</title><style>
<!--
td {font-size: 9pt}
A:link {text-decoration: none; color: #0033cc;font-size: 9pt}
A:visited {text-decoration: none; color: #0066CC;font-size: 9pt}
A:active {text-decoration: none; color: #ff0000; font-size: 9pt}
A:hover {text-decoration: underline; color: #000000;font-size: 9pt}
-->
</style>
</head>
<body>
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" width="98%">
<tr>
<td width="100%"><a href="#">你的位置</a>:<a href="http://www.xxby.com" target="_blank">华生小屋</a>--<a href="#">VB学习</a>--<a href="#">ActiveX控件</a></td>
</tr>
<tr>
<td width="100%">
<p align="center"><font size="2">文件的读写</font></td>
</tr>
<tr>
<td width="100%"><br>
<font size="2">随机文件:<br>
<br>
存储由多条固定长度记录组成的文件(就象数据库那样的),格式:<br>
Open 文件名 For Random as #文件号 Len=每条记录长度<br>
每条记录长度是指一条记录的各成员分量长度之和,如在标准模块中定义:<br>
Public Type students<br>
number As String * 6<br>
name As String * 8<br>
age As Integer<br>
End Type<br>
其中number成员定义为6字节,name成员定义为8字节(最大可存4个汉字)--??,age成员为整型占2字节,那么记录长度就是6+8+2=16字节,注意:在声明中的字符串类型都必须声明为定长字符串,这样才能保证记录是"固定长度",才能保存为随机文件。<br>
实际上,我们不必要去算记录长度,只要在通用中声明了自定义类型的一个变量,那么就可用Len(变量)来得到每条记录的长度了。(注:千万不是Len(自定义类型名),甭搞错哦)。<br>
从随机文件中读记录:格式:<br>
Get #文件号,记录号,记录变量 将指定记录号的记录放入记录变量。<br>
Get #1, 1, student<br>
Text1.Text = student.number<br>
Text2.Text = student.name<br>
Text3.Text = student.age<br>
记录号从1开始,现有文件的最后一条记录的记录号可用以下方法得到: <br>
记录数 = LOF(文件号) / 每条记录长度(如Len(student)<br>
向随机文件写记录,格式:<br>
Put #文件号,记录号,记录变量 将变量内容存入文件指定记录号位置<br>
如果记录号为文件中已有记录,则会重写修改原记录,如果要新添记录,则要在文件最后记录号上+1来作为新的记录号。如:<br>
student.number = Text1.Text<br>
student.name = Text2.Text<br>
student.age = Text3.Text<br>
Put #1, lxn, student<br>
lxn = lxn + 1<br>
此例为随机文件刚初始化时可不断添加记录。<br>
删除随机文件中的记录,最简单的办法是在要删除的记录位置用put写入一个空记录,但这样并不好(它仍留了空间在那儿,并占据资源),可模仿数据库的办法,先在所有要删除的记录前打上个删除标志(如"*"号),再创建一个临时文件,存放未打上删除标志的记录,此时再删除原文件,用临时文件替换为原文件名即可。如下:<br>
Private Sub Command3_Click()<br>
Text1.Text = "*" & Text1.Text<br>
student.number = Text1.Text<br>
Put #1, lxn, student<br>
End Sub<br>
Private Sub Command4_Click()<br>
Dim ldd1 As Integer, ldd2 As Integer<br>
Open "c:\windows\desktop\lgs.txt" For Random As #2 Len = Len(student)<br>
ldd2 = 1<br>
For ldd1 = 1 To last%<br>
Get #1, ldd1, student<br>
If Left(student.number, 1) <> "*" Then<br>
Put #2, ldd2, student<br>
ldd2 = ldd2 + 1<br>
End If<br>
Next ldd1<br>
Close #2<br>
Close #1<br>
Kill "c:windows\desktop\abc.txt"<br>
Name "c:\windows\desktop\lgs.txt" As "c:\windows\desktop\abc.txt"<br>
End Sub</font>
<p align="center">
<br>
< <a href="020402.htm">上一页</a>--<a href="http://www.xxby.com" target="_blank">华生小屋</a>--<a href="020404.htm">下一页</a>
><br>
</td>
</tr>
</table>
</center>
</div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -