首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从文本文件中读取第5行

从文本文件中读取第5行
EN

Stack Overflow用户
提问于 2017-02-22 02:44:30
回答 3查看 1.3K关注 0票数 1

我必须通过vb脚本从日志文件中读取第5行。有人能指点我怎么做吗?

我使用下面的代码,它只读取最后一行和回送最后一行和行计数,需要增强它。

代码语言:javascript
复制
Dim fh, fso, sLastLine, lineCount

Set fso = CreateObject("Scripting.FileSystemObject")
Set fh = fso.OpenTextFile( "E:\Coding\VB\demo.txt" )
sLastLine = ""
lineCount = 0
Do Until fh.AtEndOfStream
    lineCount = lineCount + 1
    sLastLine =  fh.ReadLine()
Loop
fh.Close

WScript.Echo sLastLine
WScript.Echo lineCount

demo.txt的内容如下:

代码语言:javascript
复制
zcZcxZCsdfdfsfd
aaaaa
bbbb
cccc
dddd
eeee

最后有四个空白行,我必须读这里的"eeee“。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-02-22 12:35:13

一个简单的解决方案是使用来自System.Collections.Queue框架的.net。它的工作原理很简单,而且不需要大量内存,因为在读取文本行时会丢弃它们,但它确实需要安装.net框架。任何版本的.net框架都可以。

代码语言:javascript
复制
Option Explicit

Const LastLinesCount = 5

Dim DemoFile : Set DemoFile = CreateObject("Scripting.FileSystemObject").OpenTextFile("demo.txt")
Dim Queue : Set Queue = CreateObject("System.Collections.Queue")
Dim i

Do While Not DemoFile.AtEndOfStream
    Queue.Enqueue DemoFile.ReadLine
    If Queue.Count > LastLinesCount then Queue.Dequeue
Loop

For i = 1 to LastLinesCount
    WScript.echo Queue.Dequeue
Next

DemoFile.Close
票数 2
EN

Stack Overflow用户

发布于 2017-02-22 03:01:48

听起来你可以修剪末端,得到最后一行(没有测试):

代码语言:javascript
复制
Set fso = CreateObject("Scripting.FileSystemObject")
Set fh = fso.OpenTextFile( "E:\Coding\VB\demo.txt" )
text = Trim(fh.ReadAll())
i = InStrRev(text, vbLf)
line = Mid(text, i + 1)
票数 0
EN

Stack Overflow用户

发布于 2017-02-22 03:56:14

怎么样

代码语言:javascript
复制
Set fso = CreateObject("Scripting.FileSystemObject")
Set fh = fso.OpenTextFile("D:\demo.txt")
strin = Split(fh.readall, vbNewLine)
wscript.echo strin(fh.Line - 5)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42381747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档