Filtrar datos

28/09/2004 - 21:00 por mfernandez | Informe spam
Hola a todos.

Necesito que me ayuden, quiero en excel o access filtrar o
importar datos de un archovo *.txt. Pero solo las filas
que yo quiera. Este archivo *.txt. es un log generado, el
archivo se presenta de esta manera:

Mon Sep 27 06:29:28 2004: [567] radrecv: Request from host
64.46.84.33 code=1, idˆ, lengthv
Mon Sep 27 06:29:28 2004: [567] User-Name = "editor"
Mon Sep 27 06:29:28 2004: [567] Password = "_f\340\271\217
\321e\2667p\370\022\216m\333C"
Mon Sep 27 06:29:28 2004: [567] NAS-IP-Address =
64.46.84.33
Mon Sep 27 06:29:28 2004: [567] NAS-Port = 3
Mon Sep 27 06:29:28 2004: [567] NAS-Port-Type = Async
Mon Sep 27 06:29:28 2004: [567] Service-Type = Framed-User
Mon Sep 27 06:29:28 2004: [567] Framed-Protocol = PPP
Mon Sep 27 06:29:28 2004: [567] Sending Accept of id 88 to
64.46.84.33 (64.46.84.33)
Mon Sep 27 06:29:28 2004: [567] Service-Type = Framed-User
Mon Sep 27 06:29:28 2004: [567] Framed-Protocol = PPP
Mon Sep 27 06:29:28 2004: [567] Framed-IP-Address =
255.255.255.254
Mon Sep 27 06:29:28 2004: [567] Framed-IP-Netmask =
255.255.255.255
Mon Sep 27 06:29:28 2004: [567] Framed-Routing = None
Mon Sep 27 06:29:28 2004: [567] Framed-Compression = Van-
Jacobson-TCP-IP
Mon Sep 27 06:29:28 2004: [567] Framed-MTU = 1500
Mon Sep 27 06:29:28 2004: [567] Session-Timeout = 0
Mon Sep 27 06:29:28 2004: [567] Idle-Timeout = 900
Mon Sep 27 06:29:29 2004: [567] radrecv: Request from host
64.46.84.33 code=4, id‰, length’
Mon Sep 27 06:29:29 2004: [567] Acct-Session-Id
= "AF000166"
Mon Sep 27 06:29:29 2004: [567] User-Name = "editor"
Mon Sep 27 06:29:29 2004: [567] NAS-IP-Address =
64.46.84.33
Mon Sep 27 06:29:29 2004: [567] NAS-Port = 3
Mon Sep 27 06:29:29 2004: [567] NAS-Port-Type = Async
Mon Sep 27 06:29:29 2004: [567] Acct-Status-Type = Start
Mon Sep 27 06:29:29 2004: [567] Acct-Authentic = RADIUS
Mon Sep 27 06:29:29 2004: [567] Service-Type = Framed-User
Mon Sep 27 06:29:29 2004: [567] Framed-Protocol = PPP
Mon Sep 27 06:29:29 2004: [567] Framed-IP-Address =
64.46.84.57
Mon Sep 27 06:29:29 2004: [567] Acct-Delay-Time = 0
Mon Sep 27 06:29:29 2004: [567] Sending Accounting-
Response for id 89 to 64.46.84.33 (64.46.84.33)


De los cuales al momento de abrir en excel o access me
copie solo:
Mon Sep 27 06:29:28 2004: [567] User-Name = "editor"
Mon Sep 27 06:29:29 2004: [567] Acct-Session-Id
= "AF000166"
Mon Sep 27 06:38:10 2004: [567] Acct-Input-Octets = 99992
Mon Sep 27 06:38:10 2004: [567] Acct-Output-Octets = 622809

Entre otras filas

Gracias por la ayuda.
 

Leer las respuestas

#1 Héctor Miguel
29/09/2004 - 08:50 | Informe spam
hola, mfernandez !

... filtrar o importar datos de un archovo *.txt ... solo las filas que yo quiera.
... el archivo se presenta de esta manera: =>[fragmentos de la consulta]<> Mon Sep 27 06:29:28 2004: [567] User-Name = "editor"
Mon Sep 27 06:29:29 2004: [567] Acct-Session-Id = "AF000166"
Mon Sep 27 06:29:29 2004: [567] User-Name = "editor"
... al momento de abrir ... me copie solo:
Mon Sep 27 06:29:28 2004: [567] User-Name = "editor"
Mon Sep 27 06:29:29 2004: [567] Acct-Session-Id = "AF000166"
Mon Sep 27 06:38:10 2004: [567] Acct-Input-Octets = 99992
Mon Sep 27 06:38:10 2004: [567] Acct-Output-Octets = 622809
Entre otras filas



te expongo un ejemplo con una macro para excel 'escrita' en un modulo de codigo 'normal'
para 'ir leyendo' cada linea del archvo 'log' [.txt] y si esta 'entre' las [otras] lineas...
las ira 'pasando' ->en la hoja activa<- y ->a partir de la celda activa<-
1° modifica la asignacion del nombre del archivo [y su ruta] en la variable 'Archivo'
2° 'ajusta' los elementos asignados a la matriz de la variable 'Datos'

si cualquier duda [o... 'falla' :-(]... ¿comentas?
saludos,
hector.
en un modulo de codigo 'normal' ==Sub LeerDatosLOG()
Dim Archivo As String, Datos As Variant, Log As Byte, _
Linea As String, Dato As Integer, Fila As Long
Archivo = "C:\Mis documentos\El archvo log.txt"
Datos = Array("User-Name", "Acct-Session-Id", _
"Acct-Input-Octets", "Acct-Output-Octets")
Log = FreeFile
Open Archivo For Input As #Log
Do While Not EOF(Log)
Line Input #Log, Linea
For Dato = 0 To UBound(Datos)
If InStr(Linea, Datos(Dato)) > 0 Then
ActiveCell.Offset(Fila) = Linea
Fila = Fila + 1
Exit For
End If
Next
Loop
Close #Log
End Sub

Preguntas similares