实训 外部数据读写操作
1.1实训目标
掌握外部文本文件读写操作方法
能够使用外部文件中的数据作为数据驱动测试的数据源
1.2任务描述
使用外部文本文件中的数据作为用户登录Flight飞机订票系统的用户名和密码
1.3覆盖的知识点
VBS对文本文件的追加、修改、删除、读取操作
1.4实训参考步骤
'************************************
'函数功能:检查文件是否存在
'输入参数:
' pathway - 文件全路径
'返回值:
' 如果文件存在,返回True,否则返回False
'示例调用:
'MsgBox CheckFileExists("D:\")
'*************************************
Function CheckFileExists (FilePath)
dim oFSO
Set oFSO = CreateObject ("Scripting.FileSystemObject")
CheckFileExists = oFSO.FileExists(FilePath)
Set oFSO = Nothing
End Function
'************************************
'函数功能:如果文件夹不存在则创建文件夹
'输入参数:
' fldr - 文件夹全路径
'返回值:
' 无
'示例调用:
'Call CreatFolderIfNotExist("D:\test")
'*************************************
Function CreatFolderIfNotExist(fldr)
Dim fso, msg
Set fso = CreateObject("Scripting.FileSystemObject")
If Not (fso.FolderExists(fldr)) Then
Set f = fso.CreateFolder(fldr)
End If
End Function
'************************************
'函数功能:读取指定行内容
'输入参数:
' pathway - 文件全路径
' rowcount - 行数
'返回值:
' 该行内容
'示例调用:
'MsgBox ReadLine("c:\c.txt", 2)
'*************************************
Function ReadLine(pathway, rowcount)
Dim fso,myfile,i,flag
flag = 1
Set fso=CreateObject("scripting.FileSystemObject")
If fso.FileExists(pathway) Then
Set myfile = fso.openTextFile(pathway,1,False)
Else
flag = 0
write的返回值 End If
For i=1 to rowcount-1
If Not myfile.AtEndOfLine Then
myfile.SkipLine
End If
Next
If flag = 1 Then
If Not myfile.AtEndOfLine Then
ReadLine = myfile.ReadLine
Else
ReadLine = "越界"
End If
myfile.close
Else
ReadLine = "文件不存在"
End If
End Function
'************************************
'函数功能:计算文本文件总行数
'输入参数:
' FileName - 文件全路径
'返回值:
' 该文本文件总行数
'示例调用:
'MsgBox NumberOfLines("c:\c.txt")
'*************************************
Function NumberOfLines(FileName)
Dim lineCount
lineCount = 0
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile(FileName, 1)
Do Until objTextFile.AtEndOfStream
Redim Preserve arrFileLines(lineCount)
arrFileLines(lineCount) = objTextFile.ReadLine
lineCount = lineCount +1
Loop
NumberOfLines = UBound(arrFileLines)
objTextFile.Close
End Function
'************************************
'函数功能:向文本文件追加行
'输入参数:
' pathway - 文件全路径
' words - 新行内容
'返回值:
' 无
'示例调用:
'call WriteFile_Append("D:\", "Hello World")
'*************************************
Public Function WriteFile_Append(pathway,words)
Dim fileSystemObj,fileSpec,logFile,way
Set fileSystemObj = CreateObject("Scripting.FileSystemObject")
fileSpec = pathway
Set logFile = fileSystemObj.OpenTextFile(fileSpec, 8, true)
logFile.WriteLine (CStr(words))
logFile.Close
Set logFile = Nothing
End Function
'************************************
'函数功能:改写文本文件所有内容
'输入参数:
' pathway - 文件全路径
' words - 文本内容
'返回值:
' 无
'示例调用:
'call WriteFile_Change("D:\", "Hello World")
'*************************************
Public Function WriteFile_Change(pathway,words)
Dim fileSystemObj,fileSpec,logFile,way
Set fileSystemObj = CreateObject("Scripting.FileSystemObject")
fileSpec = pathway
Set logFile = fileSystemObj.OpenTextFile(fileSpec, 2, True)
logFile.WriteLine (CStr(words))
logFile.Close
Set logFile = Nothing
End Function
'************************************
'函数功能:全部替换文本文件中指定字符串
'输入参数:
' filepath - 文件全路径
' from - 被改写字符串
' too - 目标字符串
'返回值:
' 无
'示例调用:
'call fileReplace("c:\", "2008114", "test")
'*************************************
Function fileReplace(filepath,from, too)
Dim fso,myfile
Set fso=CreateObject("scripting.FileSystemObject")
Set myfile = fso.openTextFile(filePath,1,false)
cc = myfile.ReadAll
myfile.Close
temper = Replace(cc,from,too)
Dim fileSystemObj,fileSpec,logFile,way
Set fileSystemObj = CreateObject("Scripting.FileSystemObject")
fileSpec = pathway
Set logFile = fileSystemObj.OpenTextFile(filePath, 2, true)
logFile.WriteLine (CStr(temper))
logFile.Close
Set logFile = Nothing
End Function
'************************************
'函数功能:在指定行之间插入一行
'输入参数:
' fileFullPath - 文件全路径
' lineFrom / lineTo 指定行
' content - 插入文本内容
'返回值:
' 无
'示例调用:
'call insertLineBetween("c:\", 3, 4, "Test Line")
'*************************************
Function insertLineBetween(fileFullPath, lineFrom, lineTo, content)
Dim tempBefore(), tempAfter(), lineCount, i
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论