有没有办法在vbscript中设置起始读取行?
问题描述:
我有一个文本文件,它有超过85K行 有没有办法设置起始行?例如;我已经阅读并将第1-10行写入其他文件,并希望获得第12行中的值以将其添加到我写的最后一行中。我想仅读取线12有没有办法在vbscript中设置起始读取行?
- 文本/样品/ 1 /的GetValue/12
- 文本/样品/ 2 /的GetValue/11
- 文本/样品/ 3 /的GetValue/10
- 文本/样品/ 4 /的GetValue/9
- 文本/样品/ 5 /的GetValue/8
- 文本/样品/ 6 /的GetValue/7
- 文本/样品/ 7 /的GetValue/6
- 文本/样品/ 8 /的GetValue/5
- 文本/样品/ 9 /的GetValue/4
- 文本/样品/ 10 /的GetValue/3
- 文本/样品/ 11 /的GetValue/2
- Text/Sample/12/GetValue/1
答
这里的功能,可以做的伎俩一个例子:
Option Explicit
Dim Title,FromLine,ToLine,fso,Readfile,strBuff,InputFile,TotalNbLines
Title = "Extract Lines From TextFile"
InputFile = "c:\test.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
Set Readfile = Fso.OpenTextFile(InputFile,1)
strBuff = Readfile.ReadAll
TotalNbLines = Readfile.Line
Readfile.Close
'*******************************************************************************************************
MsgBox "The total number of lines in this file """& InputFile &""" = "& TotalNbLines,VbInformation,Title
'*******************************************************************************************************
MsgBox "Extract the 3 last lines" & vbcrlf & vbcrlf &_
ExtractLinesFromTextFile(InputFile,TotalNbLines - 2,TotalNbLines),64,Title 'To extract the 3 last lines
'*******************************************************************************************************
MsgBox "Extract line from line 1 to 2" & vbcrlf & vbcrlf &_
ExtractLinesFromTextFile(InputFile,1,2),64,Title 'Extract line from line 1 to 2
'*******************************************************************************************************
MsgBox "Extract line N°2" & vbcrlf & vbcrlf &_
ExtractLinesFromTextFile(InputFile,2,2),64,Title 'Extract line N°2
'*******************************************************************************************************
MsgBox "Extract line from line 1 to 5" & vbcrlf & vbcrlf &_
ExtractLinesFromTextFile(InputFile,1,5),64,Title 'Extract line from line 1 to 5
'*******************************************************************************************************
MsgBox "Extract line from line 1 to 10" & vbcrlf & vbcrlf &_
ExtractLinesFromTextFile(InputFile,1,10),64,Title'Extract line from line 1 to 10
'*******************************************************************************************************
MsgBox "Extract line N° 12" & vbcrlf & vbcrlf &_
ExtractLinesFromTextFile(InputFile,12,12),64,Title'Extract line N° 12
'*********************************************************************************************************
Public Function ExtractLinesFromTextFile(ByRef TextFile, ByRef FromLine, ByRef ToLine) '<-- Inclusive
Const TristateUseDefault = -2 'To Open the file using the system default.
On Error Resume Next
If FromLine <= ToLine Then
With CreateObject("Scripting.FileSystemObject").OpenTextFile(TextFile,1,true,TristateUseDefault)
If Err.number <> 0 Then
MsgBox err.description,16,err.description
Exit Function
Else
Do Until .Line = FromLine Or .AtEndOfStream
.SkipLine
Loop
Do Until .Line > ToLine Or .AtEndOfStream
ExtractLinesFromTextFile = ExtractLinesFromTextFile & (.ReadLine & vbNewLine)
Loop
End If
End With
Else
MsgBox "Error to Read Line in TextFile", vbCritical,"Error to Read Line in TextFile"
End If
End Function
'*********************************************************************************************************
读/写文件不能正常工作的计算机上的方式。 –
@Edss检查我的答案! – Hackoo
谢谢@Hackoo;但我已经找到了一个使用Readall的解决方案,并且在Split和Do Loop上工作 – Edss