我使用VB.NET并且我有一个文本框,其中包含以下信息(根据列表框中选择的视频文件而变化): -
type: ffmpeg-producer
filename: C:\caspar\Server\media\\adi.divx
width: 640
height: 360
progressive: false
fps: 25
loop: false
frame-number: 0
nb-frames: 4626
file-frame-number: 0
file-nb-frames: 4626
单击按钮时,我需要将数据添加到变量中。因此,例如,我需要从行
获取4626nb-frames:4626
和
中的25行fps:25
并将它们放在变量中,然后计算实际持续时间。
答案 0 :(得分:0)
Public Function GetValue(ByVal varName As String) As String
Dim lines() As String = Split(TextBox1.Text, Delimiter:=Environment.NewLine)
For Each line As String In lines
Dim words() As String = Split(line, Delimiter:=": ", Limit:=2)
If words(0) = varName And words.Length = 2 Then
Return words(1)
End If
Next
Return Nothing
End Function
答案 1 :(得分:0)
您还可以使用正则表达式方法。如果您不熟悉正则表达式,我强烈建议您加入正则表达式。
以下是您要做的事情(txtMyTextbbox是文本框,保存您的数据:
Dim strRegex as String = "([\w-]*):\s*(.*)"
Dim myRegex As New Regex(strRegex, RegexOptions.None)
Dim strTargetString As String = txtMyTextbox.Text
For Each myMatch As Match In myRegex.Matches(strTargetString)
If myMatch.Success Then
dim category = myMatch.Groups(1).Value
dim value = myMatch.Groups(2).Value
End If
Next
此代码循环遍历文本框文本中的所有匹配项,并查找文本后跟冒号后跟空格和行的其余部分。每个匹配都在myMatch变量中捕获,您可以通过myMatch.Groups(1).value访问冒号前的部分,并通过第二个组访问冒号后的部分(不包括空格)。
如果您还有其他问题,请发表评论。