2015-11-25 2 views
-2

Я использую VB.NET, и у меня есть текстовое поле, которое содержит следующую информацию (которая изменяется в зависимости от видеофайла, выбранного в списке): -поиск фразы в строке текстового поля 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 

Когда я нажимаю кнопку, мне нужно добавить данные к переменной. Так, например, я должен был бы взять 4626 от линии

NB-кадры: 4626

и 25 из

линии кадров в секунду: 25

и поместите их в переменные, чтобы затем вычислить фактическую продолжительность.

+1

Мне любопытно, где вы получите эту информацию, прежде чем поместить ее в текстовое поле. –

+1

@the_lotus это похоже на stdout, захваченный чем-то (возможно, ffmpeg-кодирование). Длительность и т. Д. Может быть получена с помощью MediaProps – Plutonix

+0

, информация из файла lib, используемого для связи с Caspar CG. Привет, послушайте Media Props. –

ответ

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 
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 и часть после двоеточия (исключая пробел) через вторую группу.

Оставить комментарий, если у вас есть дополнительные вопросы.

Смежные вопросы