Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: andrer03 en 5 Noviembre 2008, 00:03 am



Título: extaer un texto cambiante de un archivo (.txt)
Publicado por: andrer03 en 5 Noviembre 2008, 00:03 am
hola haber si alguien me puede ayudar
tengo un cli o como se llamen que funcionan con msdos o ficheros .bat el nombre del cli es (mkvverify.exe)
bueno cuando meto el codigo me genera un texto(.txt) como este

Código:
                                                                                                                                            
Duration : 00:01:02.490
File size: 12.8 MByte
Segment 0
  Duration      : 00:01:02.490
  Muxing App    : libebml v0.7.7 + libmatroska v0.8.1
  Writing App   : mkvmerge v2.3.0 ('Freak U') built on Sep  8 2008 18:32:16
  Segment UID   : 83 5E 73 12 7E 95 B8 E6 B2 83 1E 95 A1 16 C0 4F
  Timecode Scale: 1,000,000
    Track 0
      Number            : 1
      UID               : 0x00000001
      Type              : video
      CodecID           : V_MPEG4/ISO/AVC
      Enabled           : yes
      Default           : yes
      Forced            : no
      Lacing            : no
      DefaultDuration   : 40,000,000
      MinCache          : 1
      MaxCache          : 0
      Language          : eng
      Resolution        :
      Pixels          : 672x384
        cropped         : (0,0)-(672,384)
        Display         : 7x4
        Unit            : pixel
    Track 1
      Number            : 2
      UID               : 0x2FA27A92
      Type              : audio
      CodecID           : A_MPEG/L2
      Enabled           : yes
      Default           : yes
      Forced            : no
      Lacing            : yes
      DefaultDuration   : 23,999,999
      MinCache          : 0
      MaxCache          : 0
      Language          : und
      sampling frequency: 48000 Hz
      channels          : 2

bueno el texto es ese bueno por ejemplo quisiera extraer a un texbox  lo que esta en rojo pero como siempre los pixel cambiam. yo e pensado si hay alguna forma de descartar la palabra pixels ya que esta no cambia
Pixels          : 672x384

este es el codigo que uso para extrae un linea del texto pero lo que quiero es no extaer todas las palabras de la linea seleccionada a extraer
Código:
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)
Text1.Text = a(19)
End Sub

un saludo y gracias de antemano :)


Título: Re: extaer un texto cambiante de un archivo (.txt)
Publicado por: Dessa en 5 Noviembre 2008, 03:58 am
'Hola, fijate cambiando esta linea de tu code:

Text1.Text = Mid(Replace(a(19), " ", ""), 8, Len(Replace(a(19), " ", "")))

'cambia el 19 por el que corresponda, saludos



Título: Re: extaer un texto cambiante de un archivo (.txt)
Publicado por: kennylive en 5 Noviembre 2008, 17:58 pm
no se si e entendido bien, lo que quieres es sacar la linea

    Pixels          : 672x384

de un fichero txt sabiendo que el     672x384 puede cambiar y pillar ese valor en una variable, ¿es asi?

si es asi simplemente... instr


Título: Re: extaer un texto cambiante de un archivo (.txt)
Publicado por: andrer03 en 5 Noviembre 2008, 18:43 pm
gracias dessa voy a probar tu codigo
y si kennylive  los numeros cambian dependiendo de la informacion del vichero en este caso (videos)


Título: Re: extaer un texto cambiante de un archivo (.txt)
Publicado por: andrer03 en 6 Noviembre 2008, 21:20 pm
como funciona instr para extrae las palabras despues de la cadena


Título: Re: extaer un texto cambiante de un archivo (.txt)
Publicado por: Dessa en 6 Noviembre 2008, 22:27 pm
Hola , no te funcionó el Mid ???, si es así prueba con este code:

Código:

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



Título: Re: extaer un texto cambiante de un archivo (.txt)
Publicado por: andrer03 en 6 Noviembre 2008, 23:57 pm
sol funciona con la line que as programado como hago para que funcione con otra?


Título: Re: extaer un texto cambiante de un archivo (.txt)
Publicado por: Dessa en 7 Noviembre 2008, 00:07 am

Por supuesto, es que tu pregunta inicial solo se refiere a los pixeles, ahora, a que linea te refieres ?

 


Título: Re: extaer un texto cambiante de un archivo (.txt)
Publicado por: andrer03 en 7 Noviembre 2008, 16:25 pm
pues lo que pasa que con el codigo pimero que me as dado funciono bien con las lineas
del texto que puse
peror hay otras texto(.txt) que no se matienen en la pocicion de linea otras bajan 3 lineas mas abago bueno y eso si baja el texto de linea no sirve el codigo para extraer la palabra  gracias por tu ayuda compañero :)


Título: Re: extaer un texto cambiante de un archivo (.txt)
Publicado por: Dessa en 7 Noviembre 2008, 17:55 pm
Código:



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






Título: Re: extaer un texto cambiante de un archivo (.txt)
Publicado por: andrer03 en 7 Noviembre 2008, 19:47 pm
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  ;D gracias por ayudarme a ver si puedo ayudarte alguna ves compañero ;)


Título: Re: extaer un texto cambiante de un archivo (.txt)
Publicado por: Dessa en 7 Noviembre 2008, 20:04 pm
Cuales serían los datos que quieres extraer del archivo mkvverify.txt ( pixels es uno, pero cuales serían los otros ??? )


Título: Re: extaer un texto cambiante de un archivo (.txt)
Publicado por: andrer03 en 7 Noviembre 2008, 20:19 pm
mira el texto completo es este

Código:



                                                                               

                                                                               

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


Título: Re: extaer un texto cambiante de un archivo (.txt)
Publicado por: Dessa en 7 Noviembre 2008, 21:07 pm
Código:

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)




Título: Re: extaer un texto cambiante de un archivo (.txt)
Publicado por: andrer03 en 7 Noviembre 2008, 22:20 pm
esto es lo que buscaba pero para dactarlo a otras lineas como hago ?


Título: Re: extaer un texto cambiante de un archivo (.txt)
Publicado por: Dessa 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:"
 


Título: Re: extaer un texto cambiante de un archivo (.txt)
Publicado por: andrer03 en 7 Noviembre 2008, 22:56 pm
na no funciona conmigo


Título: Re: extaer un texto cambiante de un archivo (.txt)
Publicado por: Dessa en 7 Noviembre 2008, 23:02 pm
porque no escribes el codigo que has puesto y me dices que dato quieres extraer con dicho code.


Título: Re: extaer un texto cambiante de un archivo (.txt)
Publicado por: andrer03 en 8 Noviembre 2008, 15:12 pm
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


Título: Re: extaer un texto cambiante de un archivo (.txt)
Publicado por: Dessa en 8 Noviembre 2008, 18:03 pm
Código:


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


Título: Re: extaer un texto cambiante de un archivo (.txt)
Publicado por: Dessa en 9 Noviembre 2008, 13:19 pm
Otra opción de búsqueda sin For sería :

Código:

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





Título: Re: extaer un texto cambiante de un archivo (.txt)
Publicado por: andrer03 en 9 Noviembre 2008, 21:22 pm
ok gracias por tu ayuda creo q ya solucione con todos los codigo que has puestos  :)
y eso gracias de nuevo si surge algo ya preguntare :D