|
441
|
Programación / Programación Visual Basic / Re: extaer un texto cambiante de un archivo (.txt)
|
en: 9 Noviembre 2008, 13:19 pm
|
Otra opción de búsqueda sin For sería : Private Sub Command1_Click()
Open App.Path & "\mkvverify.txt" For Input As #1 Dim s As String: s = Input(LOF(1), #1) s = Replace(Replace(s, vbNewLine, ""), " ", "") Close #1
Dim pos1 As Long: pos1 = InStr(s, "Pixels:") Dim pos2 As Long: pos2 = InStr(s, "cropped:") Dim s1 As String: s1 = Mid(s, pos1 + 7, pos2 - pos1 - 7): Text1 = s1 MsgBox s1
pos1 = InStr(s, "track1") pos2 = Len(s) Dim s2 As String: s2 = Mid(s, pos1, pos2) pos1 = InStr(s2, "avg.bitrate:") pos2 = InStr(s2, "frames:") s2 = Mid(s2, pos1 + 12, pos2 - pos1 - 12): Text1 = s2 MsgBox s2
pos1 = InStr(s, "track2") pos2 = Len(s) Dim s3 As String: s3 = Mid(s, pos1, pos2) pos1 = InStr(s3, "avg.bitrate:") pos2 = InStr(s3, "frames:") s3 = Mid(s3, pos1 + 12, pos2 - pos1 - 12): Text1 = s3 MsgBox s3
End Sub
|
|
|
442
|
Programación / Programación Visual Basic / Re: extaer un texto cambiante de un archivo (.txt)
|
en: 8 Noviembre 2008, 18:03 pm
|
Private Sub Command1_Click()
Dim s As String, a() As String Open App.Path & "\mkvverify.txt" For Input As #1 s = Input(LOF(1), #1) Close #1 a = Split(s, vbNewLine)
Dim x As Long: Dim i As Long
For i = 0 To UBound(a) x = InStr(Replace(a(i), " ", ""), "avg.bitrate") If x > 0 Then MsgBox Mid(Replace(a(i), " ", ""), x + 12, InStr(Replace(a(i), " ", ""), "frames") - x - 12), , "LINEA " & i + 1 Exit For End If Next i
For i = 0 To UBound(a) x = InStr(Replace(a(i), " ", ""), "track2") If x > 0 Then x = InStr(Replace(a(i), " ", ""), "avg.bitrate") MsgBox Mid(Replace(a(i), " ", ""), x + 12, InStr(Replace(a(i), " ", ""), "frames") - x - 12), , "LINEA " & i + 1 Exit For End If Next i
End Sub
PD: sería bueno que para ir entendiendo el funcionamiento del code intentes hacerlo en solo For, saludos
|
|
|
444
|
Programación / Programación Visual Basic / Re: extaer un texto cambiante de un archivo (.txt)
|
en: 7 Noviembre 2008, 22:46 pm
|
For i = 0 To UBound(a) x = InStr(Replace(a(i), " ", ""), "avg.bitrate") If x > 0 Then MsgBox Mid(Replace(a(i), " ", ""), x + 12, InStr(Replace(a(i), " ", ""), "frames") - x - 12), , "LINEA " & i + 1 Exit For End If Next i
1) palabra anterior al dato a extraer sin espacios en este caso "avg.bitrate" 2) palabra posterior al dato a extraer sin espacios en estre caso "frames" 3) distancia en caracteres entre la palabra anterior y el dato a extraer en este caso "12" "avg.bitrate:"
|
|
|
445
|
Programación / Programación Visual Basic / Re: extaer un texto cambiante de un archivo (.txt)
|
en: 7 Noviembre 2008, 21:07 pm
|
Private Sub Command1_Click()
Dim s As String, a() As String Open App.Path & "\mkvverify.txt" For Input As #1 s = Input(LOF(1), #1) Close #1 a = Split(s, vbNewLine)
Dim x As Long: Dim i As Long
For i = 0 To UBound(a) x = InStr(Replace(a(i), " ", ""), "avg.bitrate") If x > 0 Then MsgBox Mid(Replace(a(i), " ", ""), x + 12, InStr(Replace(a(i), " ", ""), "frames") - x - 12), , "LINEA " & i + 1 Exit For End If Next i
End Sub
' cambia msgbox por: Text1 = Mid(Replace(a(i), " ", ""), x + 12, InStr(Replace(a(i), " ", ""), "frames") - x - 12)
|
|
|
447
|
Programación / Programación Visual Basic / Re: extaer un texto cambiante de un archivo (.txt)
|
en: 7 Noviembre 2008, 17:55 pm
|
Private Sub Command1_Click()
Dim s As String, a() As String Open App.Path & "\mkvverify.txt" For Input As #1 s = Input(LOF(1), #1) Close #1 a = Split(s, vbNewLine)
Dim x As Long: x = InStr(Replace(a(22), " ", ""), ":") 'If x > 0 Then Text1.Text = Mid(Replace(a(22), " ", ""), x + 1, Len(Replace(a(22), " ", ""))) 'Else 'Text1 = "En esta linea no hay dos puntos" 'End If
End Sub
|
|
|
449
|
Programación / Programación Visual Basic / Re: extaer un texto cambiante de un archivo (.txt)
|
en: 6 Noviembre 2008, 22:27 pm
|
Hola , no te funcionó el Mid ???, si es así prueba con este code: Private Sub Command1_Click()
Open App.Path & "\mkvverify.txt" For Input As #1 Dim s As String: s = Input(LOF(1), #1) s = Replace(Replace(s, vbNewLine, ""), " ", "") Close #1
Dim pos1 As Long: pos1 = InStr(s, "Pixels:") Dim pos2 As Long: pos2 = InStr(s, "cropped:") s = Mid(s, pos1 + 7, pos2 - pos1 - 7): Text1 = s
End Sub
Saludos
|
|
|
|
|
|
|