【C005】VB - 数据文件(二)随机文件
随机文件
随机文件中每一个记录定长,并设置记录号,记录号从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, i, 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:\VB\Temp"
(2)改变当前文件夹语句(ChDir):ChDir 路径
示例:ChDir "D:\VB\Dat"
(3)删除文件夹语句(RmDir):RmDir [路径]文件夹名
示例:RmDir "D:\VB\Temp"
(4)删除文件语句(Kill):Kill [路径]文件名
示例:Kill "D:\VB\datal.dat"
Kill "D:\VB\dat\*.*"
(5)拷贝文件语句(FileCopy):
FileCopy[路径1]源文件[, [路径2]目标文件]
示例:FileCopy"C:\aaa.txt", "D:\Temp\bbb.txt"
(6)文件的改名和移动:
Name原名As 新名
改名示例:Name "C:\aaa.txt" As"C:\ccc.txt"
移动示例:Name "C:\Aaa.txt" As"C:\Tmp\Aaa.txt"
(7)调用应用程序
格式:Shell(命令字符串[,窗口类型])
功能:调用指定应用程序
示例:
x= Shell("C:\Windows\Explorer.exe",1)
执行“C:\Windows”文件夹下的应用程序Explorer.exe, 并显示该程序窗口(例8.12)
MkDir - 建立文件夹
Sub dfjkld() For i = 1 To 20 MkDir "C:\Users\McDelfino\Desktop\练习\文件夹 - " & Format(i, "00") '注意Format改变格式 Next End Sub
RmDir - 删除文件夹
Sub dfksdlf() For i = 1 To 20 Step 2 RmDir "C:\Users\McDelfino\Desktop\练习\文件夹 - " & Format(i, "00") Next End Sub
Kill - 删除文件
Sub dfksdlf() Kill "C:\Users\McDelfino\Desktop\练习\1.txt" End Sub
删除1.txt文件!
Sub dfksdlf() Kill "C:\Users\McDelfino\Desktop\练习\*.*" End Sub
删除所有文件,有扩展名的文件!
FileCopy - 拷贝文件
拷贝文件,同时可以改变文件的文件名~
Sub djklfj() FileCopy "C:\Users\McDelfino\Desktop\练习\文件夹 - 01\源文件.xlsx", "C:\Users\McDelfino\Desktop\练习\文件夹 - 02\目标文件.xlsx" End Sub
Name 原名 As 新名 - 文件改名&文件移动
文件改名
Sub dkjflsdjfl() For i = 1 To 10 Name "C:\Users\McDelfino\Desktop\练习\工作簿 - " & i & ".xlsx" As "C:\Users\McDelfino\Desktop\练习\工作簿 - " & Format(i, "00") & ".xlsx" Next End Sub
文件移动
Sub dkjflsdjfl() For i = 1 To 10 Name "C:\Users\McDelfino\Desktop\练习\工作簿 - " & Format(i, "00") & ".xlsx" As "C:\Users\McDelfino\Desktop\工作簿 - " & Format(i, "00") & ".xlsx" Next End Sub
Dir - 遍历文件
详见:http://blog.csdn.net/alexbnlee/article/details/6932339
批量修改文件名
Sub jdslfjl() Dim MyFile As String Dim count As Integer count = 1 MyFile = Dir("C:\Users\McDelfino\Desktop\练习\" & "*.xlsx") Name "C:\Users\McDelfino\Desktop\练习\" & MyFile As "C:\Users\McDelfino\Desktop\练习\" & Format(1, "00") & ".xlsx" Do While MyFile <> "" If MyFile = "" Then Exit Do count = count + 1 MyFile = Dir Name "C:\Users\McDelfino\Desktop\练习\" & MyFile As "C:\Users\McDelfino\Desktop\练习\" & Format(count, "00") & ".xlsx" Loop End Sub
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)