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

comprobar la sintaxis de un fichero

Estas en el tema de comprobar la sintaxis de un fichero en el foro de Programación General en Foros del Web. Hola buenos dias: Tengo un fichero que tiene la siguiente forma: 03401-11-064 AXA WINTERTHUR 9374669J997 0803-05-096 AXA WINTERTHUR 9631548000 02013-11-080 AXA WINTERTHUR 95404458500 0356-00-004 AXA ...
  #1 (permalink)  
Antiguo 19/09/2008, 04:54
 
Fecha de Ingreso: agosto-2008
Mensajes: 27
Antigüedad: 15 años, 9 meses
Puntos: 0
comprobar la sintaxis de un fichero

Hola buenos dias:

Tengo un fichero que tiene la siguiente forma:

03401-11-064 AXA WINTERTHUR 9374669J997
0803-05-096 AXA WINTERTHUR 9631548000
02013-11-080 AXA WINTERTHUR 95404458500
0356-00-004 AXA WINTERTHUR 91178084510
01214-07-064 MINISTERIO DE JUSTICIA 91873904544
028-09-096 MINISTERIO DE JUSTICIA 9139094920
02456-03-064 MINISTERIO DE JUSTICIA 91459651670
04626-13-096 MINISTERIO DE JUSTICIA 91763307090
02566-11-096 MINISTERIO DE JUSTICIA 91156026300
01226-03-000 MINISTERIO DE JUSTICIA 913459025

CAda uno de los campos esta separado por un tabulador.

Y lo que quiero es en primer lugar leer el fichero y comprobar que no existe ninguna linea vacia en el fichero.
2) Que existen tres campos separados por tabulador.

He hecho lo siguiente pero no sale, además no se si las comprobaciones las hago bien:

open(FIC,"clientesPrimarios");

$nb_line=0;

while ($line=<FIC>){
$nb_line++;
chop ($line);
if($line=~/^#/){next;}

#Se comprueba que no hay ninguna linea vacia
if($line=~/ /){
close(FIC);
}

@fields=split(/\t/,$line);

$campo1=$fields[0];
#Compruebo si el campo 1 es vacio o no
if($campo1=~/ /){
close(FIC);
# print FIC_LOG "SINTAXIS DE FICHERO INCORRECTA \n";

}
$campo2=$fields[1];
print "$campo2 \n";
if($campo2=~/ /){
close(FIC);
print FIC_LOG "SINTAXIS DE FICHERO INCORRECTA \n";

}
$campo3=$fields[2];
print "$campo3 \n";
if($campo3=~/ /){ close(FIC);
print FIC_LOG "SINTAXIS DE FICHERO INCORRECTA \n";


}
}

close(FIC);

Podrian ayudarme?
Gracias un saludo
~
  #2 (permalink)  
Antiguo 19/09/2008, 06:24
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
Respuesta: comprobar la sintaxis de un fichero

La lógica del programa está bien planteada...ahora tengo algunas dudas

if($line=~/^#/){next;} #que se supone que encuentra ^# ?

if($campo1=~/ /){ #ahí tienes un espacio entre las barras, dará positivo solo si la línea tiene un espacio en blanco

Espero que te sirva

Saludos
__________________
Esteban Quintana
  #3 (permalink)  
Antiguo 19/09/2008, 06:52
 
Fecha de Ingreso: agosto-2008
Mensajes: 27
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: comprobar la sintaxis de un fichero

Creo que ya lo tengo.

Gracias por todo.
Un saludo
  #4 (permalink)  
Antiguo 04/11/2008, 09:21
 
Fecha de Ingreso: noviembre-2008
Ubicación: Puebla, Pue.
Mensajes: 2
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: comprobar la sintaxis de un fichero

hola Raul21 oye mira yo estoy haciendo algo parecido a lo q tu histe no se si podras ayudar lo q necesito es como leer varios archivos q estan en cierto directorios e imprimirlo, lo q pasa q ya lo hice con uno solo y si sale pero necesito leer varios al mismo tiempo y q solo me impima las dos primeras lineas.

ok t lo agradesco de ante mano.
  #5 (permalink)  
Antiguo 05/11/2008, 05:30
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
Respuesta: comprobar la sintaxis de un fichero

colocá el código fuente please, sino es imposible saber donde esté el problema...abres el directorio y procesas cada archivo en un bucle ?

__________________
Esteban Quintana
  #6 (permalink)  
Antiguo 07/11/2008, 10:17
 
Fecha de Ingreso: noviembre-2008
Ubicación: Puebla, Pue.
Mensajes: 2
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: comprobar la sintaxis de un fichero

este es mi codigo pero en la parte donde mando a llamar al archivo necesito mandar a llmar o otros y imprimr de cada uni de elllo sus 2 primerias lineas


use strict;
use File::Find;
use CGI qw(:standard);

print "<HTML><BODY> \n";

my $dir = 'C:/directorios/tmp';

find(\&imprimir_archivo, $dir);


sub imprimir_archivo{
my $elemento = $_;

print "$elemento\n" ;


open(FH, 'C:/directorios/tmp/mom.edifasf.r4x.200810311028');
my @linea = (<FH>);
print "$linea[0]";
print "TIEMPO DE ACTUALIZACION: $linea[1]\n";



my ($sec,$min,$hora,$mdia,$mon,$ano,$wdia,$ydia,$isds t,@meses,@dias,$fecha);
($sec,$min,$hora,$mdia,$mon,$ano,$wdia,$ydia,$isds t) = localtime (time);
@meses = ('01','02','03','04','05','06','07','08','09','10' ,'11','12');
$ano += 1900;
$fecha="$ano$meses[$mon]$mdia\n";
$hora="$hora$min$sec\n";
print ("FECHA $fecha HORA $hora\n");



}
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 20:43.