我创建了一个带有计时器的应用程序,它将根据文件的内容更改标签的文本。
我的文本文件:
00:00:05 "Some Text"
00:00:10 "Some Text"
00:00:25 "Some Text"就像字幕文件一样,我的表单将在每个时间戳上更改标签文本。
我使用这段代码读取文本文件:
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行,则不起作用。
解决这个问题的办法是什么?
发布于 2015-06-10 12:24:41
您应该使用一个循环,而不是硬编码0、1和2。
Dim Lines = File.ReadAllLines(MyFile)
For Each line In Lines
Dim splittedLine() As String = line.Split
'whatever you do with the splitted line
Next发布于 2015-06-10 12:41:03
我会这样做:
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()然后从我的样本数据中得到以下结果:

如您所见,数组包含显示文本和文本本身的实际时间。现在应该很容易使用计时器来比较当前时间和下一个时间戳,并移动一个索引来跟踪要显示的当前行。
https://stackoverflow.com/questions/30756156
复制相似问题