• Publicidad

Respuesta del servidor

Así que programas sin strict y las expresiones regulares son otro modo de hablar. Aquí encontrarás respuestas de nivel avanzado, no recomendable para los débiles de corazón.

Respuesta del servidor

Notapor Naika » 2008-11-09 13:05 @587

Hola, no sé si exactamente mi pregunta puede ir en esta sección, pero bueno ahí va.
Estoy realizando una pequeña Intranet, en la cuál el usuario carga un fichero de texto, este fichero se muestra en una tabla y por cada fila el usuario tiene una opción que marcar.
Finalmente se envía la petición mediante un botón final.
Mi problema es éste, si el tamaño del fichero es pequeño, unas 6 o 7 líneas, una vez que se procesa el fichero, se muestra la respuesta HTML sin problemas, pero en cambio si el fichero es más grande, todo el proceso interno se hace correctamente, pero cuando finaliza muestra la página HTML en blanco.
¿Alguien sabe qué puede estar pasando? ¿o hay alguna idea?

Muchas gracias. Cómo se podrá observar es mi primera aplicación en Perl.

¡Ah! no estoy utilizando CGI, imprimo, leo, la plantilla HTML mediante read_file() de la librería File::Slurp y envío la plantilla mediante un print() :D
Naika
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2008-11-09 12:56 @581

Publicidad

Notapor explorer » 2008-11-10 11:31 @521

Bienvenido a los foros de Perl en Español, Naika.

Ver algo de tu código sería interesante...

Quizás sea un simple problema con el vaciado de caché... Pon a 1 la variable especial $|.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor Naika » 2008-11-11 02:44 @155

Hola explorer, gracias por responder, he inicializado la variable que me indicas por cada fila del fichero que leo e inserto en la BD, pero sigue pasando lo mismo.

El código que utilizo para cargar las filas del fichero en la tabla de la BD es el siguiente:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
sub ProcesarFichero ($ $ $ $){
   my $NombreFichero=shift;
   my $tipoaccion = shift;
   my $AlumnosInsertados = shift; # referencia
   my $AlumnosRepetidos = shift; # referencia
   
  if (-e,$NombreFichero){
    #Fichero existe
   
    my $RutaFichero='c:/temp/'.$NombreFichero;
    my $i=0;
    my $salida;
   
   
    if ($tipoaccion eq 'alta') {
      my @text = read_file( $RutaFichero ) ;

           
      overwrite_file('c:\temp\test123.txt',"");
     
      append_file('c:\temp\test123.txt',"numero de filas ".scalar(@text)."\n");
      for ($i = 0; $i < scalar(@text); $i++) {
       
         chomp($text[$i]);
         
         my $linea=$text[$i];
         
        append_file('c:\temp\test123.txt',"-$i-$text[$i]-<br>\n");        
         
         my $NIF=substr($linea,0,10);
         my $curso=substr($linea,21,3);
            if (($NIF ne '') and ($curso ne '')){
           if (ValidarLinea($linea)==1){
           my $NIF=substr($linea,0,10);
         
           
           if (ValidarNIF($NIF)==1){
              $salida=InsertarAlumnos($linea);
              append_file('c:\temp\test123.txt',"el NIF insertado".$NIF."\n");
                     
               if ($salida==1){
                  #insertar sin  problemas
                  $$AlumnosInsertados=$$AlumnosInsertados + 1;
             
                }else{
                 #con problemas
                 $$AlumnosRepetidos=$$AlumnosRepetidos + 1;
           
                }
            }else{
               $$AlumnosRepetidos=$$AlumnosRepetidos + 1;
            }
        }
        else {
          $$AlumnosRepetidos=$$AlumnosRepetidos + 1;
         
        }
       }else{
        append_file('c:\temp\text123.txt',"NIf vacio".$NIF."\n");
       }
       $|=1;
     } # finfor
     append_file('c:\temp\test123.txt',"NUM. LINEAS =".scalar(@text)."<BR>\n");
      $$AlumnosRepetidos=scalar(@text) - $$AlumnosInsertados;
    }
Coloreado en 0.005 segundos, usando GeSHi 1.0.8.4


y después de esta función dibujo el resultado con el siguiente código:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
sub DibujarSalidaAlta($ $ $){
   my $DIRPLANTILLAESINE = shift;
   my $AlumnosInsertados = shift;
   my $AlumnosRepetidos = shift;
   
   
    print "Content-type: text/html\n\n";
   my $plantillaAlta = read_file($DIRPLANTILLAESINE."OpcionesESINE.htm");

   
   
 append_file('c:\temp\test123.txt',"ini dibujarsalidaalta\n");
   my $sustituye0='<input  type="file" name="archivo"><br>';
   $plantillaAlta=~ s/\<!--SeleccionaArchivo-->/$sustituye0/;
   my $sustituye1;
   
   $sustituye1="Alumnos Insertados: ".$AlumnosInsertados."\n";
   $plantillaAlta=~ s/<!--CargadosAlta1-->/$sustituye1/;
#  
   my $sustituye2="Alumnos con Problemas: ".$AlumnosRepetidos."\n";
   $plantillaAlta=~ s/<!--CargadosAlta2-->/$sustituye2/;
   print "Content-type: text/html\n\n";
   print $plantillaAlta;
   append_file('c:\temp\test123.txt'," Imprimo plantilla de alta\n");  

}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Muchas gracias por tu tiempo.
Naika
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2008-11-09 12:56 @581

Notapor Naika » 2008-11-11 03:53 @204

Hola otra vez,
ya lo he solucionado, el error estaba en insertar alumnos, cuando el alumno estaba repetido no devolvía 0 que era el resultado que yo esperaba, así que se quedaba en un bucle de errores llegando a afectar a el controlador de la BD.

Muchas Gracias por el interés.
Naika
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2008-11-09 12:56 @581

Notapor explorer » 2008-11-11 05:08 @255

La variable especial $| solo es necesario ponerla una vez, generalmente al principio del programa, o justo antes de empezar a escribir.

Recuerda que puedes borrar o modificar tus propios mensajes.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Avanzado

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado