开发者社区> 长征2号> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

FSO的几个应用函数[VB]

简介:
+关注继续查看

  1None.gif'FSO的几个应用函数
  2None.gif
  3None.gif'1.读取文件中所有字符的函数
  4None.gif'其实就是通过ReadLine(读取行),通过 While Not cnrs.AtEndOfStream 的条件进行循环读取行,
  5None.gif'来达到读取文件中所有字符。当然也可以使用ReadAll代替多个ReadLine,但主要缺点是将格式进行换行等问题需要再次解决。
  6None.gif'引用函数 call FSOFileRead("xxx文件") 即可
  7None.gif
  8None.gifFunction FileReadAll(filename As StringAs String
  9None.gifOn Error GoTo errlabel
 10None.gifDim fso As New FileSystemObject
 11None.gifIf Not fso.FileExists(filename) Then
 12None.gifFileReadAll = ""
 13None.gifExit Function
 14None.gifElse
 15None.gifDim cnrs As TextStream
 16None.gifDim rsline As String
 17None.gifrsline = ""
 18None.gifSet cnrs = fso.OpenTextFile(filename, 1)
 19None.gifWhile Not cnrs.AtEndOfStream
 20None.gifrsline = rsline & cnrs.ReadLine
 21None.gifWend
 22None.gifFileReadAll = rsline
 23None.gifExit Function
 24None.gifEnd If
 25None.giferrlabel:
 26None.gifFileReadAll = ""
 27None.gifEnd Function
 28None.gif
 29None.gif'2读取文件中某一行中所有字符的函数
 30None.gif'这次即使用了readall方法,通过split函数将读取的内容以换行为条件,进行数组的定义,
 31None.gif'提取 lineNum-1(数组从0记数) 所对应的数组值即为 读取的该行值 ,也就是该行中所有的字符了。
 32None.gif'函数的调用 call FSOlinedit("xxx文件",35) 表示显示xxx文件的第35行内容
 33None.gif
 34None.gifFunction LineEdit(filename As String, lineNum As IntegerAs String
 35None.gifOn Error GoTo errlabel
 36None.gifIf lineNum < 1 Then
 37None.gifLineEdit = ""
 38None.gifExit Function
 39None.gifEnd If
 40None.gifDim fso As New FileSystemObject
 41None.gifIf Not fso.FileExists(filename) Then
 42None.gifLineEdit = ""
 43None.gifExit Function
 44None.gifElse
 45None.gifDim f As TextStream
 46None.gifDim tempcnt As String
 47None.gifDim temparray
 48None.gifSet f = fso.OpenTextFile(filename, 1)
 49None.gifIf Not f.AtEndOfStream Then tempcnt = f.ReadAll
 50None.giff.Close
 51None.gifSet f = Nothing
 52None.giftemparray = Split(tempcnt, Chr(13& Chr(10))
 53None.gifIf lineNum > UBound(temparray) + 1 Then
 54None.gifLineEdit = ""
 55None.gifExit Function
 56None.gifElse
 57None.gifLineEdit = temparray(lineNum - 1)
 58None.gifEnd If
 59None.gifEnd If
 60None.gifExit Function
 61None.giferrlabel:
 62None.gifLineEdit = ""
 63None.gifEnd Function
 64None.gif
 65None.gif'3.读取文件中最后一行内容的函数
 66None.gif'其实和读取某一行的函数类似,主要即是 数组的上界ubound值 就是最末的值 ,故为最后一行。函数的引用也很简单。
 67None.gif
 68None.gifFunction LastLine(filename As StringAs String
 69None.gifOn Error GoTo errlabel
 70None.gifDim fso As New FileSystemObject
 71None.gifIf Not fso.FileExists(filename) Then
 72None.gifLastLine = ""
 73None.gifExit Function
 74None.gifEnd If
 75None.gifDim f As TextStream
 76None.gifDim tempcnt As String
 77None.gifDim temparray
 78None.gifSet f = fso.OpenTextFile(filename, 1)
 79None.gifIf Not f.AtEndOfStream Then
 80None.giftempcnt = f.ReadAll
 81None.giff.Close
 82None.gifSet f = Nothing
 83None.giftemparray = Split(tempcnt, Chr(13& Chr(10))
 84None.gifLastLine = temparray(UBound(temparray))
 85None.gifEnd If
 86None.gifExit Function
 87None.giferrlabel:
 88None.gifLastLine = ""
 89None.gifEnd Function
 90None.gif
 91None.gif'在ASP中自动创建多级文件夹的函数
 92None.gif'FSO中有个方法是CreateFolder,但是这个方法只能在其上一级文件夹存在的情况下创建新的文件夹,
 93None.gif'所以我就写了一个自动创建多级文件夹的函数,在生成静态页面等方面使用非常方便.
 94None.gif'--------------------------------
 95None.gif' 自动创建指定的多级文件夹
 96None.gif' strPath为绝对路径
 97None.gif
 98None.gifFunction AutoCreateFolder(strPath) As Boolean
 99None.gifOn Error Resume Next
100None.gifDim astrPath
101None.gifDim ulngPath As Integer
102None.gifDim i As Integer
103None.gifDim strTmpPath As String
104None.gif
105None.gifIf InStr(strPath, "\"<= 0 Or InStr(strPath, ":"<= 0 Then
106None.gifAutoCreateFolder = False
107None.gifExit Function
108None.gifEnd If
109None.gifDim objFSO As New FileSystemObject
110None.gifIf objFSO.FolderExists(strPath) Then
111None.gifAutoCreateFolder = True
112None.gifExit Function
113None.gifEnd If
114None.gifastrPath = Split(strPath, "\")
115None.gifulngPath = UBound(astrPath)
116None.gifstrTmpPath = ""
117None.gifFor i = 0 To ulngPath
118None.gifstrTmpPath = strTmpPath & astrPath(i) & "\"
119None.gifIf Not objFSO.FolderExists(strTmpPath) Then
120None.gif' 创建
121None.gifobjFSO.CreateFolder (strTmpPath)
122None.gifEnd If
123None.gifNext
124None.gifSet objFSO = Nothing
125None.gifIf Err = 0 Then
126None.gifAutoCreateFolder = True
127None.gifElse
128None.gifAutoCreateFolder = False
129None.gifEnd If
130None.gifEnd Function
131None.gif
132None.gif   '一个文件备份通用过程:
133None.gif   'Filename = 文件名,Drive = 驱动器,Folder = 文件夹(一层)
134None.gifPublic Sub BackupFile(filename As String, Drive As String, folder As String)
135None.gif   Dim fso As New FileSystemObject '创建 FSO 对象实例
136None.gif   Dim Dest_path As String, Counter As Long
137None.gif   Counter = 0
138None.gif   Do While Counter < 6 '如果驱动器没准备好,继续检测。共检测 6 秒
139None.gif   Counter = Counter + 1
140None.gif   Call Waitfor(1'间隔 1 秒
141None.gif   If fso.Drives(Drive).IsReady = True Then
142None.gif   Exit Do
143None.gif   End If
144None.gif   Loop
145None.gif   If fso.Drives(Drive).IsReady = False Then '6 秒后目标盘仍未准备就绪,退出
146None.gif   MsgBox " 目标驱动器 " & Drive & " 没有准备好! ", vbCritical
147None.gif   Exit Sub
148None.gif   End If
149None.gif   If fso.GetDrive(Drive).FreeSpace < fso.GetFile(filename).Size Then
150None.gif   MsgBox "目标驱动器空间太小!", vbCritical '目标驱动器空间不够,退出
151None.gif   Exit Sub
152None.gif   End If
153None.gif   If Right(Drive, 1<> ":" Then
154None.gif   Drive = Drive & ":"
155None.gif   End If
156None.gif   If Left(folder, 1<> "\" Then
157None.gif   folder = "\" & folder
158None.gif   End If
159None.gif   If Right(folder, 1<> "\" Then
160None.gif   folder = folder & "\"
161None.gif   End If
162None.gif   Dest_path = Drive & folder
163None.gif   If Not fso.FolderExists(Dest_path) Then '如果目标文件夹不存在,创建之
164None.gif   fso.CreateFolder Dest_path
165None.gif   End If
166None.gif   fso.CopyFile filename, Dest_path & fso.GetFileName(filename), True
167None.gif   '拷贝,直接覆盖同名文件
168None.gif   MsgBox " 文件备份完毕。", vbOKOnly
169None.gif   Set fso = Nothing
170None.gifEnd Sub
171None.gif   
172None.gif'延时过程,Delay 单位约为 1 秒
173None.gifPrivate Sub Waitfor(Delay As Single)
174None.gif   Dim StartTime As Single
175None.gif   StartTime = Timer
176None.gif   Do Until (Timer - StartTime) > Delay
177None.gif   Loop
178None.gifEnd Sub
179None.gif


本文转自peterzb博客园博客,原文链接:http://www.cnblogs.com/peterzb/archive/2006/04/23/382793.html,如需转载请自行联系原作者。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Hive 分析函数lead、lag实例应用
Lag和Lead分析函数可以在同一次查询中取出同一字段的后N行的数据(Lag)和前N行的数据(Lead)作为独立的列。这种操作可以代替表的自联接,并且LAG和LEAD有更高的效率,其中over()表示当前查询的结果集对象,括号里面的语句则表示对这个结果集进行处理。
101 0
论计算机应用技术对企业信息化的影响
计算机技术的应用,对企业降低管理成本,提高经营效益有着重要的作用,企业要想在越来越严峻的市场环境下进一步发展壮大也必须进行信息化改革,来适应我国经济体制的转变。计算机的应用技术与企业信息化的管理密不可分,所以本文简要阐述了企业信息化和计算机应用技术的基本含义,分析计算机应用技术对企业信息化的影响与联系,并对如何推动计算机应用技术在企业信息化建设中的应用给出了一些建议。
1248 0
go Flag应用
仿nginx命令行 go语言些命令行程序是不错的选择,所以它可以轻松达到如上图类似nginx命令行的效果 例子 package main import ( "flag" "fmt" "os" ) // var...
886 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载