定义如下结构
type student
name as string * 8
tel  as string * 8
addr as string *50
end type
用random打开,然后一个一个输入到文件,可以追加,更新,但我实在不知道之么删除;
我仅仅用了open,put,get等几个基本函数;不知道有没有类似的delete函数,或者用上述函数组合使用能办得到!

解决方案 »

  1.   

    '删除文件
    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