extaer un texto cambiante de un archivo (.txt)

Iniciado por andrer03, 5 Noviembre 2008, 00:03 AM

0 Miembros y 1 Visitante están viendo este tema.

andrer03

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

                                                                                                                                           
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

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 :)

Dessa

#1
'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

Adrian Desanti

kennylive

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

andrer03

gracias dessa voy a probar tu codigo
y si kennylive  los numeros cambian dependiendo de la informacion del vichero en este caso (videos)

andrer03

como funciona instr para extrae las palabras despues de la cadena

Dessa

#5
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

Adrian Desanti

andrer03

sol funciona con la line que as programado como hago para que funcione con otra?

Dessa


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

Adrian Desanti

andrer03

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 :)

Dessa





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




Adrian Desanti