定义如下结构
type student
name as string * 8
tel as string * 8
addr as string *50
end type
用random打开,然后一个一个输入到文件,可以追加,更新,但我实在不知道之么删除;
我仅仅用了open,put,get等几个基本函数;不知道有没有类似的delete函数,或者用上述函数组合使用能办得到!
type student
name as string * 8
tel as string * 8
addr as string *50
end type
用random打开,然后一个一个输入到文件,可以追加,更新,但我实在不知道之么删除;
我仅仅用了open,put,get等几个基本函数;不知道有没有类似的delete函数,或者用上述函数组合使用能办得到!
Private Sub Command2_Click()
Dim intI As Integer
Dim intJ As Integer
FileNumber = FreeFile '文件号
lngLen = Len(udtA(1)) '记录长
Open "A:Ëæ»úÎļþ_ÌìÆøÐÅÏ¢" For Random As FileNumber _
Len = lngLen
RecordNum = LOF(FileNumber) / lngLen '记录数
ReDim udtA(1 To RecordNum) '重新定义自宣言变量数组
intJ = intPosition '取得删除记录的位置
100:
'从被删除记录开始,读取下面记录到上面记录对应的数组元素
Get FileNumber, intJ + 1, udtA(intJ)
'被删除记录后面的记录都前移后转走
If Loc(FileNumber) > RecordNum Then GoTo 200
'写下面的元素到上面的数组中
Put FileNumber, intJ, udtA(intJ)
'增加一个记录
intJ = intJ + 1
GoTo 100
200:
List1.Clear 'Çå³ýÁбí¿ò
RecordNum = RecordNum - 1 'ÒÑɾ³ýÒ»¸ö¼Ç¼
ReDim udtA(1 To RecordNum) 'ÖØÐÂÉùÃ÷×Ô¶¨Òå±äÁ¿Êý×é
For intI = 1 To RecordNum
Get FileNumber, intI, udtA(intI) '¶ÁÊý¾Ýµ½Êý×é
List1.AddItem udtA(intI).³ÇÊÐ '³ÇÊÐÃû·ÅÈëÁбí¿ò
List1.ItemData(List1.NewIndex) = intI '±£´æ¼Ç¼ºÅ
Next intI
NewFileNumber = FreeFile 'ÁÙʱÎļþºÅ
lngLen = Len(udtA(1)) '¼Ç¼³¤
Open "A:ÁÙʱÎļþ" For Random As NewFileNumber _
Len = lngLen
List1.Clear
For intI = 1 To RecordNum
Put NewFileNumber, intI, udtA(intI) 'ÍùÁÙʱÎļþÉÏд
List1.AddItem udtA(intI).³ÇÊÐ '³ÇÊÐÃû·ÅÈëÁбí¿ò
List1.ItemData(List1.NewIndex) = intI '±£´æ¼Ç¼ºÅ
Next intI
Close '¹Ø±ÕËùÓÐÎļþ
Kill "A:Ëæ»úÎļþ_ÌìÆøÐÅÏ¢" 'ɾ³ýÔ­ÓÐÎļþ
Name "A:ÁÙʱÎļþ" As "A:Ëæ»úÎļþ_ÌìÆøÐÅÏ¢" '½«ÁÙʱÎļþ¸üÃû
End Sub