Foros del Web » Programando para Internet » PHP »

Extraer solo 3 campos de un txt, sin repetir resultados

Estas en el tema de Extraer solo 3 campos de un txt, sin repetir resultados en el foro de PHP en Foros del Web. Quel tal, quisiera saber si alguien me puede dar una idea en lo siguiente. Tengo un archivo de texto generado por otro programa el cual ...
  #1 (permalink)  
Antiguo 09/08/2010, 11:20
 
Fecha de Ingreso: septiembre-2004
Mensajes: 41
Antigüedad: 20 años, 1 mes
Puntos: 0
Exclamación Extraer solo 3 campos de un txt, sin repetir resultados

Quel tal, quisiera saber si alguien me puede dar una idea en lo siguiente.
Tengo un archivo de texto generado por otro programa el cual tiene muchos campos en cada segmento, de los cuales suelen repetirse valores al azar, lo que quiero es extraer 3 valores de cada segmento sin repetir los resultados extraidos, aqui el contenido de mi archivo datos.txt

Código:
CM> 0x000e4aac ['DHCP Client Thread' id=0x807c8fa0] BcmDhcpClientIf::ProcessPacket:  (DHCP ClientIf for IP Stack1) INFO - Parsed the DHCP packet:

DHCP Packet contents:
                       Type = 2
                       Hops = 0
                        Xid = 0x5c76374
                       Secs = 0
                      Flags = 0x8000
              Bcast Enabled = true
        pfDhcpLeaseSettings = 0x805542ec

DHCP Lease Settings:
                             Is Valid = true
                    DHCP Message Type = Offer
                Hardware Type (htype) = 1
               Hardware Length (hlen) = 6
           Client IP Address (ciaddr) = 0.0.0.0
             Your IP Address (yiaddr) = 10.36.128.65
                My offered IP address = 10.36.128.65
      TFTP Server IP address (siaddr) = 192.168.4.1
      Relay Agent IP address (giaddr) = 10.36.128.1
     Client Hardware Address (chaddr) = 00:1c:fb:2f:09:40
                     TFTP Server Name = (12 of 12 bytes) '192.168.4.1'
                        Boot Filename = (16 of 16 bytes) 'cm-001cfb2f0940'
                         DHCP Options = (125 of 125 bytes)
                      (1) Subnet Mask = 255.255.224.0
                  (2) UTC Time Offset = -18000
                (3) Router IP address = 10.36.128.1
           (4) Time Server IP address = 192.168.4.1; 192.168.4.1
            (7) Log Server IP address = 192.168.4.1; 192.168.4.1
                      (51) Lease time = 1382400
          (54) DHCP Server IP address = 192.168.4.1
                    (122) PacketCable = 
  01 04 c0 a8   04 01 02 04   c0 a8 04 01 
                  (67) Boot File Name = 'cm-001cfb2f0940'

0x000e4aac ['DHCP Client Thread' id=0x807c8fa0] BcmDhcpClientIf::ProcessPacket:  (DHCP ClientIf for IP Stack3) INFO - Parsed the DHCP packet:

DHCP Packet contents:
                       Type = 2
                       Hops = 0
                        Xid = 0x5c76374
                       Secs = 0
                      Flags = 0x8000
              Bcast Enabled = true
        pfDhcpLeaseSettings = 0x80552f0c

DHCP Lease Settings:
                             Is Valid = true
                    DHCP Message Type = Offer
                Hardware Type (htype) = 1
               Hardware Length (hlen) = 6
           Client IP Address (ciaddr) = 0.0.0.0
             Your IP Address (yiaddr) = 10.36.128.65
                My offered IP address = 10.36.128.65
      TFTP Server IP address (siaddr) = 192.168.4.1
      Relay Agent IP address (giaddr) = 10.36.128.1
     Client Hardware Address (chaddr) = 00:1c:fb:2f:09:40
                     TFTP Server Name = (12 of 12 bytes) '192.168.4.1'
                        Boot Filename = (16 of 16 bytes) 'cm-001cfb2f0940'
                         DHCP Options = (125 of 125 bytes)
                      (1) Subnet Mask = 255.255.224.0
                  (2) UTC Time Offset = -18000
                (3) Router IP address = 10.36.128.1
           (4) Time Server IP address = 192.168.4.1; 192.168.4.1
            (7) Log Server IP address = 192.168.4.1; 192.168.4.1
                      (51) Lease time = 1382400
          (54) DHCP Server IP address = 192.168.4.1
                    (122) PacketCable = 
  01 04 c0 a8   04 01 02 04   c0 a8 04 01 
                  (67) Boot File Name = 'cm-001cfb2f0940'

0x001919c8 ['DHCP Client Thread' id=0x807c8fa0] BcmDhcpClientIf::ProcessPacket:  (DHCP ClientIf for IP Stack3) INFO - Parsed the DHCP packet:

DHCP Packet contents:
                       Type = 2
                       Hops = 0
                        Xid = 0x5c76374
                       Secs = 0
                      Flags = 0x8000
              Bcast Enabled = true
        pfDhcpLeaseSettings = 0x80552f0c

DHCP Lease Settings:
                             Is Valid = true
                    DHCP Message Type = Offer
                Hardware Type (htype) = 1
               Hardware Length (hlen) = 6
           Client IP Address (ciaddr) = 0.0.0.0
             Your IP Address (yiaddr) = 10.36.138.20
                My offered IP address = 10.36.138.20
      TFTP Server IP address (siaddr) = 192.168.4.1
      Relay Agent IP address (giaddr) = 10.36.128.1
     Client Hardware Address (chaddr) = 00:1c:fb:32:e1:be
                     TFTP Server Name = (12 of 12 bytes) '192.168.4.1'
                        Boot Filename = (16 of 16 bytes) 'cm-001cfb32e1be'
                         DHCP Options = (125 of 125 bytes)
                      (1) Subnet Mask = 255.255.224.0
                  (2) UTC Time Offset = -18000
                (3) Router IP address = 10.36.128.1
           (4) Time Server IP address = 192.168.4.1; 192.168.4.1
            (7) Log Server IP address = 192.168.4.1; 192.168.4.1
                      (51) Lease time = 1382400
          (54) DHCP Server IP address = 192.168.4.1
                    (122) PacketCable = 
  01 04 c0 a8   04 01 02 04   c0 a8 04 01 
                  (67) Boot File Name = 'cm-001cfb32e1be'
De todo este texto solo quiero extraer lo siguiente:
Código:
My offered IP address  Client Hardware Address (chaddr)  (67) Boot File Name
10.36.128.65           00:1c:fb:2f:09:40                 cm-001cfb2f0940
10.36.138.20           00:1c:fb:32:e1:be                 cm-001cfb32e1be
Dicho Resultado me gustaria mostrarlo en pantalla y a su vez se genere otro archivo de texto con los resultados.
se que tengo que empezar con:
Código PHP:
if ($file fopen"/ruta/datos.txt",  "r")) { 

   
// Aqui  código para recuperar datos NO SE QUE HACER

    
fclose($file); 

Agradeceria mucho su ayuda.
__________________
El conocimiento es mi adicción y la programación mi pasión
:adios:

Última edición por cyber-bot-; 09/08/2010 a las 11:45
  #2 (permalink)  
Antiguo 09/08/2010, 19:25
 
Fecha de Ingreso: septiembre-2004
Mensajes: 41
Antigüedad: 20 años, 1 mes
Puntos: 0
Respuesta: Extraer solo 3 campos de un txt, sin repetir resultados

Nuevamente yo,aqui preguntandome si me exprese mal o no hay nadie que conozca la forma de hacer lo que necesito si alguien sabe, espero pueda darme una mano gracias.
__________________
El conocimiento es mi adicción y la programación mi pasión
:adios:
  #3 (permalink)  
Antiguo 09/08/2010, 19:31
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Extraer solo 3 campos de un txt, sin repetir resultados

hola
bueno, revisa esto

este es solo un ej pero pues aparte de eso,
necesitarias un while que lea todo el contenido línea por línea,
y revise el contenido actual contra, por ej, un array de búsqueda,
donde tendrias lo que quieres buscar y si coincide con alguna
de las palabras a buscar, lo guarde en un array nuevo, y luego
usas ese array nuevo para escribir en el nuevo archivo

te aconsejo que busques aquí en los foros o en la web
sobre manipulación archivos de texto con php

saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Etiquetas: campos, extraer, repetir, resultados, txt
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:42.