在chunck中读取文件的vbscript
我需要分块读取文本文件,这样我就不需要一次在屏幕上显示太多信息 我需要用户在单击“下一步”按钮时可以看到结果集中的下一个区块(每个区块由下一个关键字分隔) 我试着把它显示在表中,但用户看不懂 我的文本文件如下所示:-在chunck中读取文件的vbscript,vbscript,Vbscript,我需要分块读取文本文件,这样我就不需要一次在屏幕上显示太多信息 我需要用户在单击“下一步”按钮时可以看到结果集中的下一个区块(每个区块由下一个关键字分隔) 我试着把它显示在表中,但用户看不懂 我的文本文件如下所示:- C:\Users\abc\Desktop\New Folder\sample.txt AccountName->AbcPos AccountName->dblLayer queryAccount->qskxyz queryName->qixyz query
C:\Users\abc\Desktop\New Folder\sample.txt
AccountName->AbcPos
AccountName->dblLayer
queryAccount->qskxyz
queryName->qixyz
queryName->abc
queryName->def
next
C:\Users\abc\Desktop\New Folder\New folder\sample3.txt
AccountName->AbcPos
AccountName->dblLayer
queryAccount->qskxyz
queryName->qixyz
AccountName->Names
AccountName->prelLayer
queryAccount->serchTerm
queryName->myName1
next
C:\Users\abc\Desktop\New Folder\sample1.txt
AccountName->AbcPos
AccountName->dblLayer
queryAccount->qskxyz
queryName->qixyz
next
C:\Users\abc\Desktop\New Folder\sample2.txt
AccountName->AbcPos
AccountName->dblLayer
queryAccount->qskxyz
queryName->qixyz
queryName->abc
queryName->def
AccountName->Names
AccountName->prelLayer
queryAccount->serchTerm
queryName->myName1
next
我可以以文本流的形式读取文件,但在按部分读取时遇到了问题
Option Explicit
Const csSep = "->"
Dim oFS : Set oFS = CreateObject("Scripting.FileSystemObject")
Dim oTS : Set oTS = oFS.OpenTextFile("..\data\36060599.txt")
ReDim aData(4)
Do Until oTS.AtEndOfStream
Dim sLine : sLine = Trim(oTS.ReadLine())
Dim sValue : sValue = ""
If InStr(sLine, csSep) Then sValue = Split(sLine, csSep)(1)
Select Case True
Case ":" = Mid(sLine, 2, 1) ' the Path
aData(0) = sLine
Case "AccountName" = Left(sLine, 11)
aData(2 + IsEmpty(aData(1))) = sValue
Case "queryAccount" = Left(sLine, 12)
aData(3 + IsEmpty(aData(1))) = sValue
Case "queryName" = Left(sLine, 9)
aData(4 + IsEmpty(aData(1))) = sValue
Case "next" = sLine ' End Of Record
' WScript.Echo "<tr><td>" & Join(aData, "</td><td>") & "</td></tr>"
WScript.Echo "|" & Join(aData, "|") & "|"
ReDim aData(4)
End Select
Loop
oTS.Close
选项显式
Const csSep=“->”
Dim oFS:Set oFS=CreateObject(“Scripting.FileSystemObject”)
Dim oTS:设置oTS=oFS.OpenTextFile(“..\data\36060599.txt”)
雷迪姆·阿达塔(4)
直到oTS.AtEndOfStream
尺寸sLine:sLine=Trim(oTS.ReadLine())
尺寸sValue:sValue=“”
如果仪表(sLine,csSep),则S值=拆分(sLine,csSep)(1)
选择Case True
案例“=Mid(sLine,2,1)”路径
aData(0)=sLine
案例“AccountName”=左侧(sLine,11)
aData(2+IsEmpty(aData(1))=S值
案例“queryAccount”=左侧(sLine,12)
aData(3+IsEmpty(aData(1))=S值
案例“queryName”=左侧(sLine,9)
aData(4+IsEmpty(aData(1))=S值
案例“下一步”=记录的sLine结尾
“WScript.Echo”“&Join(aData”“)&”
WScript.Echo“|”和Join(aData“|”)和“|”
雷迪姆·阿达塔(4)
结束选择
环
加油,加油
正如他所说的omegastripes
您可以读取整个文件,将其拆分为next作为分隔符,然后 从结果数组中逐个显示元素
选项显式
尺寸标准文件、目录、边框、i
strFile=“NextFile.txt”
Contents=ReadFile(strFile,“全部”)
arrLines=拆分(内容为“下一步”)
对于i=LBound(arrLines)到UBound(arrLines)
如果第(i)款为“则
MsgBox arrLines(一)
如果结束
下一个
'*********************************************
函数读取文件(路径、模式)
常数ForReading=1
Dim objFSO、objFile、i、strLine
设置objFSO=CreateObject(“Scripting.FileSystemObject”)
设置objFile=objFSO.OpenTextFile(路径,ForReading)
如果mode=“byline”,则
Dim arrFileLines()
i=0
直到objFile.AtEndOfStream
Redim文件行(i)
strLine=objFile.ReadLine
斯特林=修剪(斯特林)
如果Len(strLine)>0,则
arrFileLines(i)=strLine
i=i+1
ReadFile=arrFileLines
如果结束
环
objFile.Close
如果结束
如果mode=“全部”,则
ReadFile=objFile.ReadAll
objFile.Close
如果结束
端函数
'*****************************************************************
您可以读取整个文件,用next
作为分隔符拆分它,然后从结果数组中逐个显示元素。
Option Explicit
Dim strFile,Contents,arrLines,i
strFile = "NextFile.txt"
Contents = ReadFile(strFile,"all")
arrLines = Split(Contents,"next")
For i=LBound(arrLines) to UBound(arrLines)
If arrLines(i) <> "" Then
MsgBox arrLines(i)
End If
Next
'*********************************************
Function ReadFile(path,mode)
Const ForReading = 1
Dim objFSO,objFile,i,strLine
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(path,ForReading)
If mode = "byline" then
Dim arrFileLines()
i = 0
Do Until objFile.AtEndOfStream
Redim Preserve arrFileLines(i)
strLine = objFile.ReadLine
strLine = Trim(strLine)
If Len(strLine) > 0 Then
arrFileLines(i) = strLine
i = i + 1
ReadFile = arrFileLines
End If
Loop
objFile.Close
End If
If mode = "all" then
ReadFile = objFile.ReadAll
objFile.Close
End If
End Function
'*****************************************************************