加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

VB - 数据文件(二)随机文件及文件基本操作

发布时间:2020-12-16 22:44:43 所属栏目:大数据 来源:网络整理
导读:随机文件 随机文件中每一个记录定长,并设置记录号,记录号从1开始。 存取记录时,只要说明所需记录的编号,系统就以此算出记录所在位置,然后加以写入或读出 初步认识 建立一个随机文件,文件中包含10个记录,每个记录由一个数(1至10)的平方、立方和开方根

随机文件

随机文件中每一个记录定长,并设置记录号,记录号从1开始。

存取记录时,只要说明所需记录的编号,系统就以此算出记录所在位置,然后加以写入或读出

初步认识

建立一个随机文件,文件中包含10个记录,每个记录由一个数(1至10)的平方、立方和开方根三个数值组成,以该数作为记录号?

Private Type Numval
    Square As String
    Cube As String
    SqrRoot As String
End Type
Public nv As Numval

Sub dksjflsd()
    
    Open ThisWorkbook.Path & "data5.txt" For Random As #1 Len = Len(nv)
    For i = 1 To 9
        nv.Square = CStr(i * i)
        nv.Cube = CStr(i * i * i)
        nv.SqrRoot = CStr(Sqr(i))
        Put #1,i,nv
    Next
    
    For i = 1 To 9
        Get #1,nv
        Debug.Print "第"; i; "号记录:",nv.Square,nv.Cube,nv.SqrRoot
    Next
    
    Close #1
End Sub


进行随机文件存取操作,大致包括以下一些内容:

(1)在打开文件进行随机访问之前,使用Type…End Type语句定义一个记录类型(如Numval),该类型包括多个数据项,并与文件中记录应包括的域一致。

当通过Dim定义一个变量(如nv)为一个记录类型Numval时,该变量也就包含该类型的多个数据项,以后可通过nv.squre、nv.cube、nv.sqroot进行引用

?
(2)指定Random类型打开文件,记录定长,打开文件后,就可以存或取任一个记录

(3)分别通过Get和Put语句,并指定记录号进行读一个记录或存一个记录

一定要建立好记录与记录号之间的关系

1. 读语句
格式:Get #文件号[,记录号],变量?
功能:从一个随机文件中读出指定记录到一个变量

?
2. 写语句

格式:Put #文件号[,记录号],变量?
功能:把变量的值写入随机文件的记录中。?

默认情况下,记录号编号为上一次使用的记录号加1

文件基本操作

可以在应用程序中很方便地对文件和文件夹进行操作

(1)建立文件夹语句(MrDir):MkDir [路径]文件夹名?
示例:MkDir "D:VBTemp"

?
(2)改变当前文件夹语句(ChDir):ChDir 路径
示例:ChDir "D:VBDat"

(3)删除文件夹语句(RmDir):RmDir [路径]文件夹名?
示例:RmDir "D:VBTemp"

?
(4)删除文件语句(Kill):Kill [路径]文件名?
示例:Kill "D:VBdatal.dat"?
Kill "D:VBdat*.*"

(5)拷贝文件语句(FileCopy):

FileCopy[路径1]源文件[,[路径2]目标文件]?
示例:FileCopy"C:aaa.txt","D:Tempbbb.txt"


(6)文件的改名和移动:

Name原名As 新名?
改名示例:Name "C:aaa.txt" As"C:ccc.txt"?
移动示例:Name "C:Aaa.txt" As"C:TmpAaa.txt"

(7)调用应用程序

格式:Shell(命令字符串[,窗口类型])

功能:调用指定应用程序

示例:

x= Shell("C:WindowsExplorer.exe",1)

执行“C:Windows”文件夹下的应用程序Explorer.exe,并显示该程序窗口(例8.12)

MkDir - 建立文件夹

Sub dfjkld()
    For i = 1 To 20
        MkDir "C:UsersMcDelfinoDesktop练习文件夹 - " & Format(i,"00")     '注意Format改变格式
    Next
End Sub


RmDir - 删除文件夹

Sub dfksdlf()
    For i = 1 To 20 Step 2
        RmDir "C:UsersMcDelfinoDesktop练习文件夹 - " & Format(i,"00")
    Next
End Sub

Kill - 删除文件

Sub dfksdlf()
    Kill "C:UsersMcDelfinoDesktop练习1.txt"
End Sub
删除1.txt文件!
Sub dfksdlf()
    Kill "C:UsersMcDelfinoDesktop练习*.*"
End Sub
删除所有文件,有扩展名的文件!

FileCopy - 拷贝文件

拷贝文件,同时可以改变文件的文件名~

Sub djklfj()
    FileCopy "C:UsersMcDelfinoDesktop练习文件夹 - 01源文件.xlsx","C:UsersMcDelfinoDesktop练习文件夹 - 02目标文件.xlsx"
End Sub


Name 原名 As 新名 - 文件改名&文件移动

文件改名

Sub dkjflsdjfl()
    For i = 1 To 10
        Name "C:UsersMcDelfinoDesktop练习工作簿 - " & i & ".xlsx" As "C:UsersMcDelfinoDesktop练习工作簿 - " & Format(i,"00") & ".xlsx"
    Next
End Sub


文件移动

Sub dkjflsdjfl()
    For i = 1 To 10
        Name "C:UsersMcDelfinoDesktop练习工作簿 - " & Format(i,"00") & ".xlsx" As "C:UsersMcDelfinoDesktop工作簿 - " & Format(i,"00") & ".xlsx"
    Next
End Sub

Dir - 遍历文件

详见:http://www.52php.cn/article/p-cbdpvuol-ny.html

批量修改文件名

Sub jdslfjl()
    Dim MyFile As String
    Dim count As Integer
    count = 1
    MyFile = Dir("C:UsersMcDelfinoDesktop练习" & "*.xlsx")
    Name "C:UsersMcDelfinoDesktop练习" & MyFile As "C:UsersMcDelfinoDesktop练习" & Format(1,"00") & ".xlsx"
    Do While MyFile <> ""
        If MyFile = "" Then Exit Do
        count = count + 1
        MyFile = Dir
        Name "C:UsersMcDelfinoDesktop练习" & MyFile As "C:UsersMcDelfinoDesktop练习" & Format(count,"00") & ".xlsx"
    Loop
End Sub

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读