Josmanue escribiste:Vale, ya lo he sacado del bucle while y ahora me devuelve esto:Sigue sin pillar los campos que empiezan por '@' aunque los separa bien.#1UIDSP103FEC061003TIE103000@ODSP105@OTty0@ORGo Home@OP2
Fuente:1, UIDSP103FEC061003TIE103000@ODSP105@OTty0@ORGo Home@OP2
UID SP103
FEC 061003
TIE 103000
@OD SP105
@OT ty0
@OR Go Home
@OP 2
la cadena sql_or tiene: INSERT INTO ordenes SET origen_orden = 'SP103', hora = '10:30:00', dia = '061003';
No da errores, pero si estos mensajes:Possible attempt to separate words with commas at ./pfinal.pl line 87.
Name "main::OT" used only once: possible typo at ./pfinal.pl line 142.
Name "main::OP" used only once: possible typo at ./pfinal.pl line 142.
Josmanue escribiste:Ademas creo que no me vale el 'if' este, ahora entra aki tanto para la cadena de ordenes como para la cadena de partes que esta en el programa en 'else'.
if ( ($fuente, $trama) = $linea =~ /(expresion regular)/ ) {
if ( $trama =~ /\@/ ) {
# Procesamos trama de órdenes
}
else {
# Procesamos trama normal
}
}
Y no entiendo muy bien a que es debido, ¿se puede arreglar o elimino el 'use warnings' para que no me salga y punto?Possible attempt to separate words with commas at ./pfinal.pl line 87.
Name "main::fuente" used only once: possible typo at ./pfinal.pl line 129.
Possible attempt to separate words with commas at ./pfinal.pl line 87.
Name "main::fuente" used only once: possible typo at ./pfinal.pl line 129.
Use of uninitialized value in numeric eq (==) at ./pfinal.pl line 318, <> line 3.
Use of uninitialized value in numeric eq (==) at ./pfinal.pl line 318, <> line 5.
Use of uninitialized value in numeric eq (==) at ./pfinal.pl line 318, <> line 6.
Use of uninitialized value in numeric eq (==) at ./pfinal.pl line 318, <> line 7.
Use of uninitialized value in numeric eq (==) at ./pfinal.pl line 318, <> line 8.
Use of uninitialized value in numeric eq (==) at ./pfinal.pl line 318, <> line 10.
Use of uninitialized value in numeric eq (==) at ./pfinal.pl line 318, <> line 11.
if(($fuente, $trama)=$linea =~/(?:#(1|2)((?:$campos2)+))/)
else
{
#Con esto sacamos el valor del campo "#" y lo almacenamos en $fuente
#lo hago separado de los demas porque es el único campo que no empieza
#con tres caracteres.
next unless my($fuente, $trama)=$linea =~/(?:#(1|2)(($campos)+))/;
$trama{FUE} = $fuente;
##print "Fuente:$fuente\n";
## Bucle en el que recorremos los campos para identificarlos #######################
while ( $trama =~/($campos)/g )
## Busqueda de los servicios: ########################################################
my $sth = $dbh1->prepare("SELECT servicio FROM unidades WHERE unidad = '$trama{UID}'")
or die $dbh1->errstr;
$sth->execute() or die $sth->errstr;
my $dato = $sth->fetchrow_array();
##print "En sth hay: $sth\n";
print "El servicio correspondiente es: $dato\n";
##Seleccionamos e insertamos en la Base de Datos adecuada: ###########################
if ($dato == 3)
{
my $filas = $dbh1->do($sql)
or die $dbh1->errstr;
print "\$INFOK*\r\n";
}
if(($fuente, $trama)=$linea =~/(?:#(1|2)((?:$campos2)+))/)
if(($fuente, $trama)=$linea =~/(?:#(1|2)((?:$campos)+))/)
if((($fuente, $trama)=$linea =~/(?:#(1|2)((?:$campos)+))/) ||(($fuente, $trama)=$linea =~/(?:#(1|2)((?:$campos2)+))/))
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 13 invitados