首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vb.net File.ReadAllLines方法

Vb.net File.ReadAllLines方法
EN

Stack Overflow用户
提问于 2015-06-10 12:18:00
回答 2查看 9.2K关注 0票数 0

我创建了一个带有计时器的应用程序,它将根据文件的内容更改标签的文本。

我的文本文件:

代码语言:javascript
复制
00:00:05 "Some Text"    
00:00:10 "Some Text"     
00:00:25 "Some Text"

就像字幕文件一样,我的表单将在每个时间戳上更改标签文本。

我使用这段代码读取文本文件:

代码语言:javascript
复制
Dim Lines = File.ReadAllLines(MyFile)
Dim line1() As String = Lines.ElementAtOrDefault(0).Split
Dim line2() As String = Lines.ElementAtOrDefault(1).Split
Dim line3() As String = Lines.ElementAtOrDefault(2).Split

但是,如果文件有超过3行,则不起作用。

解决这个问题的办法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-10 12:24:41

您应该使用一个循环,而不是硬编码0、1和2。

代码语言:javascript
复制
Dim Lines = File.ReadAllLines(MyFile)
For Each line In Lines
  Dim splittedLine() As String = line.Split
  'whatever you do with the splitted line
Next
票数 1
EN

Stack Overflow用户

发布于 2015-06-10 12:41:03

我会这样做:

代码语言:javascript
复制
Dim now = DateTime.Now

Dim data = _
( _
    From line in File.ReadLines(MyFile) _
    Let timestamp = now.Add(TimeSpan.Parse(line.Substring(0, 8))) _
    Let text = String.Join(" ", line.Split().Skip(1)) _
    Select New With { .TimeStamp = timestamp, .Text = text } _
).ToArray()

然后从我的样本数据中得到以下结果:

如您所见,数组包含显示文本和文本本身的实际时间。现在应该很容易使用计时器来比较当前时间和下一个时间戳,并移动一个索引来跟踪要显示的当前行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30756156

复制
相关文章

相似问题

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