Foros del Web » Programación para mayores de 30 ;) » Programación General »

leer de 2 ficheros y comparar campos

Estas en el tema de leer de 2 ficheros y comparar campos en el foro de Programación General en Foros del Web. Hola; Tengo la siguiente duda a ver si alguien puede solucionármela. Tengo dos ficheros distintos de esta forma: alarmas_actual.txt ERI_RN;0 NOK;1 SIE;0 alarmas_anterior.txt ERI_RN;1 NOK;1 ...
  #1 (permalink)  
Antiguo 25/02/2010, 06:02
 
Fecha de Ingreso: agosto-2008
Mensajes: 27
Antigüedad: 15 años, 8 meses
Puntos: 0
leer de 2 ficheros y comparar campos

Hola;

Tengo la siguiente duda a ver si alguien puede solucionármela.

Tengo dos ficheros distintos de esta forma:

alarmas_actual.txt
ERI_RN;0
NOK;1
SIE;0

alarmas_anterior.txt
ERI_RN;1
NOK;1
SIE;1

Y lo que quiero es recorrer ambos ficheros para luego comparar si el segundo campo de cada linea del fichero es igual o distinto para en funcion de eso realizar una cosa u otra.

Por ejemplo;

Tiene que leer la primera línea de cada fichero y comparar si el segundo campo(despues del ;) es igual o distinto en cada fichero.
Y así para cada una de las líneas.

Gracias, un saludo
  #2 (permalink)  
Antiguo 25/02/2010, 17:59
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 524
Antigüedad: 17 años, 11 meses
Puntos: 11
Respuesta: leer de 2 ficheros y comparar campos

Si las líneas siguen el mismo orden en los dos ficheros, entonces no necesitas preocuparte de mirar solo la segunda parte de la línea. Basta con ver si las líneas son distintas completamente.
Código Perl:
Ver original
  1. #!/usr/bin/perl
  2. open my $FICHERO, q[<], 'alarmas_actual.txt'  or  die "ERROR: No puedo leer alarmas_actual.txt:$!\n";
  3. my @alarmas_actual = <$FICHERO>;
  4. close $FICHERO;
  5.  
  6. open my $FICHERO, q[<], 'alarmas_anterior.txt'  or  die "ERROR: No puedo leer alarmas_anterior.txt:$!\n";
  7. my @alarmas_anterior = <$FICHERO>;
  8. close $FICHERO;
  9.  
  10. for (my $i = 0; $i < @alarmas_actual; $i++) {
  11.  
  12.     if ($alarmas_actual[$i] ne $alarmas_anterior[$i]) {
  13.         print "Líneas distintas en línea $i:\n";
  14.         print "\tActual  : $alarmas_actual[$i]";
  15.         print "\tAnterior: $alarmas_anterior[$i]";
  16.     }
  17. }
Sale:
Código:
Líneas distintas en línea 0:
        Actual  : ERI_RN;0
        Anterior: ERI_RN;1
Líneas distintas en línea 2:
        Actual  : SIE;0
        Anterior: SIE;1
__________________
JF^D Perl Programming en Español
  #3 (permalink)  
Antiguo 09/03/2010, 08:26
 
Fecha de Ingreso: agosto-2008
Mensajes: 27
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: leer de 2 ficheros y comparar campos

Buenas tardes;

Muchas gracias por la respuesta. ME ha servido perfectamente.

Un saludo

Etiquetas: campos, comparar, ficheros
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 16:16.