Autor
|
Tema: extaer un texto cambiante de un archivo (.txt) (Leído 5,994 veces)
|
andrer03
Desconectado
Mensajes: 72
|
Adrian Dessa. y si el texto a extraer cambiara de lugar es decir de linea y de posicion en la linea en este caso como ceria el codigo? el anterior codigo me sirvio para extraer los texto que se mantienen en su linea y pocion toda la vida gg gracias por ayudarme a ver si puedo ayudarte alguna ves compañero
|
|
|
En línea
|
|
|
|
Dessa
Desconectado
Mensajes: 624
|
Cuales serían los datos que quieres extraer del archivo mkvverify.txt ( pixels es uno, pero cuales serían los otros ??? )
|
|
|
En línea
|
Adrian Desanti
|
|
|
andrer03
Desconectado
Mensajes: 72
|
mira el texto completo es este
Duration : 00:04:19.735 File size: 35.2 MByte Segment 0 Duration : 00:04:19.735 Muxing App : libebml v0.7.7 + libmatroska v0.8.1 Writing App : mkvmerge v2.0.2 ('You're My Flame') built on Feb 21 2007 23:40:55 Segment UID : 89 C9 D4 5B 34 CD CF 43 91 04 A3 E1 5D 70 EB 37 Timecode Scale: 1,000,000 Track 0 Number : 1 UID : 0xE07EF2BC Type : audio CodecID : A_MPEG/L3 Enabled : yes Default : yes Forced : no Lacing : yes DefaultDuration : 26,122,448 MinCache : 0 MaxCache : 0 Language : und sampling frequency: 44100 Hz channels : 2 Track 1 Number : 2 UID : 0x00000001 Type : video CodecID : V_MPEG4/ISO/AVC Enabled : yes Default : yes Forced : no Lacing : no DefaultDuration : 41,708,332 MinCache : 1 MaxCache : 0 Language : eng Resolution : Pixels : 624x416 cropped : (0,0)-(624,416) Display : 3x2 Unit : pixel
Checking segment 0...
parsing Cues... done
Pos. in file: 4,172,319 bytes (1 MB/s) Timecode: 00:00:38.087 Pos. in file: 7,237,947 bytes (3 MB/s) Timecode: 00:01:00.227 Pos. in file: 8,905,594 bytes (5 MB/s) Timecode: 00:01:16.326 Pos. in file: 10,324,716 bytes (5 MB/s) Timecode: 00:01:26.309 Pos. in file: 11,796,027 bytes (6 MB/s) Timecode: 00:01:36.471 Pos. in file: 13,338,978 bytes (7 MB/s) Timecode: 00:01:44.479 Pos. in file: 16,917,644 bytes (10 MB/s) Timecode: 00:02:10.589 Pos. in file: 21,634,379 bytes (12 MB/s) Timecode: 00:02:42.746 Pos. in file: 25,445,433 bytes (15 MB/s) Timecode: 00:03:04.893 Pos. in file: 30,343,595 bytes (17 MB/s) Timecode: 00:03:38.984 Pos. in file: 34,890,414 bytes (20 MB/s) Timecode: 00:04:03.076
raw stream sizes: track 1 : 6,201,460 avg. bitrate: 191 kbps frames: 9,944 track 2 : 30,637,513 avg. bitrate: 944 kbps frames: 6,184 ----------------------------------------------------------------------------- sum of tracks : 36,838,973 segment size : 36,958,750 ----------------------------------------------------------------------------- overhead : 119,777
me interesa extrae la parte track 1 : 6,201,460 avg. bitrate: 191 kbps frames: 9,944 lo que pasa que esta linea cambia de lugar y si colo el numero de linea que le coresponde otro dia con otro archivo mkv la linea no sera la misma bajara la posicion o subira de posicion
|
|
|
En línea
|
|
|
|
Dessa
Desconectado
Mensajes: 624
|
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)
|
|
« Última modificación: 7 Noviembre 2008, 21:11 pm por Dessa »
|
En línea
|
Adrian Desanti
|
|
|
andrer03
Desconectado
Mensajes: 72
|
esto es lo que buscaba pero para dactarlo a otras lineas como hago ?
|
|
|
En línea
|
|
|
|
Dessa
Desconectado
Mensajes: 624
|
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:"
|
|
|
En línea
|
Adrian Desanti
|
|
|
andrer03
Desconectado
Mensajes: 72
|
na no funciona conmigo
|
|
|
En línea
|
|
|
|
Dessa
Desconectado
Mensajes: 624
|
porque no escribes el codigo que has puesto y me dices que dato quieres extraer con dicho code.
|
|
|
En línea
|
Adrian Desanti
|
|
|
andrer03
Desconectado
Mensajes: 72
|
raw stream sizes: track 1 : 6,201,460 avg. bitrate: 191 kbps frames: 9,944 track 2 : 30,637,513 avg. bitrate: 944 kbps frames: 6,184
para extarer la que pone track 2
|
|
|
En línea
|
|
|
|
Dessa
Desconectado
Mensajes: 624
|
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
|
|
« Última modificación: 8 Noviembre 2008, 18:23 pm por Dessa »
|
En línea
|
Adrian Desanti
|
|
|
|
|