在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
'*****************************************************************