• Publicidad

Generación de reporte

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Generación de reporte

Notapor leo21 » 2009-07-28 13:39 @610

Hola.

Soy nuevo en Perl y debo escribir un pequeño programa que lea un reporte pero que elimine parte de la información original.

El problema es que cuando lo compilo aparece el siguiente error:
"FORMAT NOT TERMINATED AT CODIGO_PERAL LINE 28, AT END OF LINE SYNTAX ERROR AT CODIGO_PERAL LINE 28, AT EOF"

Codigo_peral es el nombre de mi archivo y la línea 28 es la última línea de código.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perluse strict;
  2. use warnings;
  3. my ($nombre,$valor1,$valor_stress,$diferencia);
  4. open (ENTRADA, "<Comparacion.txt") or die "imposible abrir el archivo : $!\n";
  5. open (SALIDA, ">excel1.txt") or die "$!\n";  format FORMATO =@<<<< @<<<<<< @<<<<<< @<<<<<<< @<<<< @<<<< @<<<<<< @<<<<<< @<<<<<<< @<<<< @<<<< undef, undef, undef, undef, undef, undef, $nombre, $valor1, $valor_stress, undef, $diferencia.
  6. while (<ENTRADA> ) { @lineas = split /|/;
  7.  write SALIDA;  }
  8. close ENTRADA;
  9. close SALIDA;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

¿Podrían por favor decirme por qué se genera este error?

Yo lancé el archivo en una máquina con la opción perl -s nombre de mi archivo y no me salió ningún error, aunque el código no hace nada de todos modos.
:(

Pero al lanzarlo en otra máquina obtuve el error que ya escribí en la parte superior.

De antemano, muchas gracias.
Última edición por explorer el 2009-07-28 14:28 @644, editado 3 veces en total
Razón: Ortografía, sintaxis
leo21
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2009-07-28 13:07 @588

Publicidad

Re: Generacion Reporte

Notapor explorer » 2009-07-28 14:02 @626

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

El error dice que el formato no está bien, y por lo que se ve, es así: está todo liado en una línea. Así no se definen los formatos. Y deben acabar con un '.' en la última línea, y tampoco aparece: está en la línea anterior mezclado con la definición de formato. Quizás sea así (no probado):

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. format FORMATO =
  2. @<<<< @<<<<<< @<<<<<< @<<<<<<< @<<<< @<<<< @<<<<<< @<<<<<< @<<<<<<< @<<<< @<<<<
  3. undef, undef, undef, undef, undef, undef, $nombre, $valor1, $valor_stress, undef, $diferencia
  4. .
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Más información en perlform.

Para comprobar la sintaxis de un programa, no es con -s, sino con -c. Más información en perlrun.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Generación de reporte

Notapor leo21 » 2009-07-29 08:14 @385

Hola de nuevo,

Muchas gracias por la respuesta. Ya funciona el código.

Ahora estoy intentando mejorar el código. Yo tengo varios reportes; debo leerlos a todos, eliminado algunas columnas que contienen información repetida y luego generar un nuevo reporte.

Para eso usé dos while() anidados, pero no sé cómo guardar la información obtenida con el primer split() (primer while()) y luego adicionarle la información del segundo split() (segundo while()).

Mi código es el siguiente:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4.  
  5. my ($nombre, $valor1, $valor_stress, $diferencia, $X, $Y, $Z, $A, $B, $C,$a, $b, $c, $d, $e, $f);
  6.  
  7. $nombre = 0;
  8. $valor1 = 0;
  9. $valor_stress = 0;
  10. $diferencia = 0;
  11. $X = 0;
  12. $Y = 0;
  13. $Z = 0;
  14. $A = 0;
  15. $B = 0;
  16. $C = 0;
  17.  
  18. my (@lineas);
  19.  
  20.  
  21. open (ENTRADA, "<Comparacion.txt") or die "imposible abrir el archivo : $!\n";
  22. open (ENTRA, "<COMPARACION.txt") or die "imposible abrir el archivo : $!\n";
  23. open (SALIDA, ">excel1.txt") or die "$!\n";  
  24.  
  25. format SALIDA =
  26.  @<<<<   @<<<<<< @<<<<<< @<<<<<<< @<<<<<< @<<<<<<   @<<<<<<<<  @<<<<<<<<<  @<<<<<<<<        @<<<<<<       @<<<<<< @<<<<<< @<<<<<<< @<<<<<< @<<<<    @<<<
  27.  $X,      $Y,      $Z,    $A,     $B,     $C,       $nombre,    $valor1,   $valor_stress,   $diferencia,  $a,     $b,     $c,     $d,      $e,      $f
  28. .
  29.  
  30.  
  31. # Reader the file IN,
  32.    while ( <ENTRADA> )
  33.    {
  34.    
  35.    ($X, $Y, $Z, $A, $B, $C, $nombre, $valor1, $valor_stress, $diferencia) = split;
  36.    
  37.    # write SALIDA;
  38.    }
  39.  
  40. # Reader the file IN,
  41.     while ( <ENTRA> ) {
  42.    
  43.     ($a, $b, $c, $d, $e, $f) = split;
  44.    
  45.      write SALIDA;
  46.     }
  47.  
  48. # close of files
  49. close ENTRADA;
  50. close ENTRA;
  51. close SALIDA;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


El formato de mis archivos de entrada es algo así:

Código: Seleccionar todo
nombre | estado|error|
fff    |ttt    |ggggg|
tttt   |yyyy   |uuuu8| 


Muchas gracias de antemano por su respuesta.

Leo21
Última edición por explorer el 2009-07-29 12:17 @553, editado 1 vez en total
Razón: Ortografía, sintaxis, coloreado de código
leo21
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2009-07-28 13:07 @588

Re: Generación de reporte

Notapor leo21 » 2009-07-29 09:04 @419

Hola otra vez,

Le hice unos cambios a mi código; ahora me parece que es un poco más claro y lógico.
Sin embargo sigo teniendo las mismas inquietudes, porque no funciona.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4.  
  5. my ($nombre, $valor1, $valor_stress, $diferencia, $X, $Y, $Z, $A, $B, $C,$a, $b, $c, $d, $e, $f, $g, $h, $i, $j, $k, $l);
  6.  
  7. $nombre = 0;
  8. $valor1 = 0;
  9. $valor_stress = 0;
  10. $diferencia = 0;
  11. $X = 0;
  12. $Y = 0;
  13. $Z = 0;
  14. $A = 0;
  15. $B = 0;
  16. $C = 0;
  17.  
  18. my (@lineas);
  19.  
  20.  
  21. open (ENTRADA, "<Comparacion.txt") or die "imposible abrir el archivo : $!\n";
  22. open (ENTRA, "<COMPARACION.txt") or die "imposible abrir el archivo : $!\n";
  23. open (SALIDA, ">excel1.txt") or die "$!\n";  
  24.  
  25. format SALIDA =
  26.  @<<<<   @<<<<<<   @<<<<<           @<<<<<       @<<<<   @<<<<    @<<<<<<    @<<<<<<<     @<<<<<<    @<<<<      
  27.  $nombre, $valor1, $valor_stress,   $diferencia,  $a,     $h,     $i,        $j,          $k,         $l
  28. .
  29.  
  30.  
  31. # Reader the file IN,
  32.    while ( <ENTRADA> )
  33.    {
  34.     chomp;
  35.    
  36.    ($X, $Y, $Z, $A, $B, $C, $nombre, $valor1, $valor_stress, $diferencia, $a) = split(" ",$_,11);
  37.    
  38.     #write SALIDA;si se deja esta instruccion el programa sobreescribe  la informacion.
  39.    }
  40.  
  41. # Reader the file IN,
  42.     while ( <ENTRA> ) {
  43.      chomp;
  44.      
  45.     ($b, $c, $d, $e, $f, $g, $h, $i, $j, $k, $l) = split(" ",$_,11);
  46.    
  47.    
  48.      write SALIDA;
  49.     }
  50.  
  51. # close of files
  52. close ENTRADA;
  53. close ENTRA;
  54. close SALIDA;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Gracias de antemano por la respuesta.
Última edición por explorer el 2009-07-29 12:21 @556, editado 1 vez en total
Razón: Ortografía, bloques de código
leo21
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2009-07-28 13:07 @588

Re: Generación de reporte

Notapor explorer » 2009-07-29 12:35 @566

Primero, recuerda que puedes reeditar tus propios mensajes, por lo que no necesitas enviar tu código de nuevo en cada mensaje.

Segundo, en el código pones que si dejas el primer write() descomentado, sobreescribe el fichero de salida. Es que eso es justo lo que le estás pidiendo hacer cuando en el open() pones '>': nada más que lo abras ya quedará sobreescrito lo que tuviera antes.

Si quieres mantener la información del primer reporte, y añadirle después la del segundo, la puedes almacenar toda en un arreglo, por ejemplo. Y luego, sacarla toda hacia el reporte de salida.

En el reporte de ejemplo que has puesto, se ven que las columnas están separadas con caracteres '|' mientras que en el código usas split() con caracteres en blanco. ¿En qué quedamos? :wink:

Si la idea es que el segundo reporte tiene columnas de significados distintos a los del primero, creo que tendrás el problema de que el form sacará los valores viejos de esas variables. Entonces, acuérdate de poner esas variables a valores indefinidos: undef $nombre; antes de entrar en el segundo while().

La solución ideal, al ser tantas variables, sería hacer una estructura de datos de un arreglo de diccionarios, pero tal como lo tienes ahora, para unos pocos reportes, te vale perfectamente la idea de sacar los datos mientras los vas leyendo.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Generación de reporte

Notapor leo21 » 2009-07-30 08:09 @381

Hola,
Gracias por la respuesta. Sigo haciéndole mejoras a mi código... pero todavía no he logrado que funcione correctamente.

Quisiera formularles dos preguntas:
  1. El problema que tengo es que Perl genera un archivo más o menos así:

    Código: Seleccionar todo
    Ref_ valor  Comp_Valor   valor_3
    0.222         9.22        7.63
    55.00         78.96       90.52 Ref_ valor Comp_Valor valor_3

    0.222         9.22        7.63    59.55      78.5    0.285         
    55.00         78.96       90.52   82.85      85.62   0.25


    El archivo no está alineado, él imprime primero la información proveniente del primer archivo y cuando acaba imprime la del segundo (lo está haciendo por pasos). Como tengo dos while() y dos write() es lógico lo que hace.

    Mi primera pregunta es ¿cómo puedo especificarle a Perl que él debe imprimir todo en un solo paso?
  2. En mis archivos de origen los datos son mostrados de la siguiente manera:

    Código: Seleccionar todo
    Nombre                    |  valor 1                   | valor 2
    ENLACE_ghy1256  TIPO1:A   |  0.00777 {0.252} {52.965}  |  0.89995


    y cuando él genera mi reporte de salida muestra algo así:

    Código: Seleccionar todo
    Nombre              |  valor 1     | valor 2
    ENLACE_  TIPO1:     | 0.00777 {0.  |  0.8


    Él no toma los datos completos solo la primera parte, se supone que mi split() divide el archivo cuando encuentra el símbolo '|', pero no funciona.

    Mi segunda pregunta es: ¿Cómo le puedo especificar a Perl que debe tomar el dato completo sin importar si hay algún símbolo o si hay espacios entre el? (mis datos tienen un formato complicado :? , ¿¿¿nooo??? )

Gracias de antemano
Leo21
leo21
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2009-07-28 13:07 @588

Re: Generación de reporte

Notapor explorer » 2009-07-30 11:05 @503

leo21, están saliendo los valores recortados porque en el format() están indicados tamaños de campo más pequeños que los valores que quieres imprimir. Por eso Perl los recorta.

Mi recomendación es que no uses format/write(). Con un printf te vale.

Para ayudarte de verdad, deberíamos ver unas pocas líneas de los dos ficheros de entrada. Y un ejemplo de cómo te gustaría que fuera la salida a partir de esos ficheros.

Lo que sí se ve es que estás usando split() para separar por espacios en blanco, así que en ese caso, Perl no se da cuenta de los caracteres '|'.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Generación de reporte

Notapor leo21 » 2009-07-31 02:25 @142

Hola,
Mi primer archivo de origen es así:
Código: Seleccionar todo
-------+--------------------------+---------+------+----------+----------------+---------------------------+--------------------------+--------------------------+---------------------------------------------------------------------------------------------------------------
key    | message                  | gravity | type | Category | Name           | UpGroup                   | RefValor                 | CompValor                | Diferencia                                                                                                     
-------+--------------------------+---------+------+----------+----------------+---------------------------+--------------------------+--------------------------+---------------------------------------------
d111   | Different pin            | error   | diff | satt     | cap_yt         | pin:A                     | 0.007777                 | 0.0215                   |0.0011273   0.0011215 -> 5.8e-06  or  0.51%                                                                 
d111   | Different cap            | error   | diff | satt     | cap_r          | pin:A                     | 0.00177777               | 0.7                      |0.0012079   0.0012059 -> 2e-06  or  0.17%                                                                   
d112   | Different cap            | error   | diff | catt     | cap_r          | pin:A                     | {{9.589e-4} {0.0012324}} | {{9.566e-4} {0.0012301}} |                                                                                                           
d111   | Different cap            | error   | diff | satt     | cap_f          | pin:A                     | 0.0010466                | 0.7                      | 0.0010466   0.0010371 -> 9.5e-06  or  0.91%                                                                 
d112   | Different cap            | error   | diff | catt     | cap_fe         | pin:A                     | {{9.041e-4} {0.0012}}    | {{9.033e-4} {0.0011948}} |                                                                               
d111   | Different pin            | error   | diff | satt     | pin_c          | pin:B                     | 0.001229                 | 0.0012196                |  0.001229   0.0012196 -> 9.4e-06  or  0.76%                                                                 
d111   | Different cap            | error   | diff | satt     | cap_r          | pin:B                     | 0.0013422                | 0.0013405                | 0.0013422   0.0013405 -> 1.7e-06  or  0.13%                                           


El segundo archivo es igual pero los valores de Refvalor y Com_valor son diferentes.

Y para salida yo quisiera tener el mismo formato solo que un poco más largo porque tendrían las columnas que vienen del primer archivo (nombre, pin Refvalor, Comvalor y diferencia) más las columnas Ref_alor(2), Comp_valor(2) y Diferencia(2) dadas por el segundo archivo de origen.

A mi código le hecho algunos cambios y ahora se ve:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl
use strict;
use warnings;

my (@nombre, @valor1, @valor_stress, @diferencia, @V_1, @V_S, @D, @pin, $contador);

my (@lineas);


open (ENTRADA, "<Comparacion.txt") or die "imposible abrir el archivo : $!\n";
open (ENTRA, "<COMPARACION.txt") or die "imposible abrir el archivo : $!\n";
open (SALIDA, ">excel1.txt") or die "$!\n";  

format SALIDA_TOP =

Name                       Pin                    Ref_Valor                                                      Comp_valor                                                                   Differential                                                           Ref_Valor                                     Comp_valor                          Differential                          
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
.                      

#format SALIDA =
#  @<<<<<<<<<<<<<<<<<<    @<<<<<<<<<<<<<<<<<<    @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<    @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<        @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<         @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<   @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 # @lineas[5],                @lineas[6],                  @lineas[7],                                                        @lineas[8],                                                               @lineas[10],                                                             @V_1,                                         @V_S,                                  @D                                                                            
#.
 
format SALIDA =
@<<<<<<<<<<<<<<<<<<    @<<<<<<<<<<<<<<<<<<    @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<    @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<        @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<         @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<   @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
@nombre, @pin,@valor1,@valor_stress,@diferencia,@V_1 @V_S, @D                                                                           .
 
$contador = 2;

# Reader the file IN,
   while ( <ENTRADA> ) {
    chomp;
   
       #(@lineas) = split(/\|/,$_,11);
      (undef, undef, undef, undef, undef, @nombre, @pin, @valor1, @valor_stress, undef, undef, @diferencia) = split(/\|/,$_,11);
      if ($contador =1){
          next if /Name/;
     
    write SALIDA;
   
   }
  }
 
# Reader the file IN,
 
   
    while ( <ENTRA> ) {
     chomp;
     
     
        (undef, undef, undef, undef, undef, undef, undef, @V_1, @V_S, undef, undef, @D) = split(/\|/,$_,11);
        if ($contador =1){
          next if /Name/;
        }
   
     write SALIDA;
    }
 
 
# close of files
close ENTRADA;
close ENTRA;
close SALIDA;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Mi gran problema es que el archivo de salida se ve:


Código: Seleccionar todo
Nombre|Pin|refvalor|Comvalor  |Diferencia |refvalor(2)|comvalor(2)|Diferencia(2)
xxxxxx xx   xxxxxxxx xxxxxxxx  xxxxxxxxxxx
ssssss ss   ssssssss sssssssss sssssssssss
wwwwww ww   wwwwwwww wwwwww  yyyyyyyyy yyyyyyyyyyy  yyyyyyyyyy


La idea es que cuando el programa imprime los valores del segundo archivo no empieza desde la primera línea: empieza desde la línea donde se había quedado, quiero decir que si el primer archivo de origen tenía 20 líneas él empezará a imprimir desde la línea 20 y entonces el archivo se ve muy extraño.

Mi pregunta es: ¿cómo puedo evitar que pase eso? :?

Gracias de antemano,

Leo21
Última edición por explorer el 2009-07-31 03:54 @204, editado 3 veces en total
Razón: Ortografía, sintaxis, bloques de código
leo21
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2009-07-28 13:07 @588

Re: Generación de reporte

Notapor explorer » 2009-07-31 07:40 @361

Para evitar que salgan las líneas del segundo fichero al final de la salida del primero, debes leer e imprimir las líneas de todos los ficheros a la vez, una a una.

Es decir:
* leer una línea del primer fichero,
* leer una línea del segundo fichero,
* extraer las columnas de los dos ficheros que te interesan,
* sacar la línea resultado.

Pero esto solo funciona si
* los dos ficheros de entrada tienen el mismo número de líneas
* la información de la línea N del primer fichero corresponde con la información de la línea N del segundo fichero.

En ese caso, un programa como este:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use diagnostics;
  5.  
  6. ## Definimos los campos (empezando en 0) de las posiciones de las columnas en el primer fichero
  7. my @pos1 = (
  8.     5, # Nombre
  9.     6, # Pin
  10.     7, # Ref_valor
  11.     8, # Com_valor
  12.     9, # Diferencia
  13. );
  14.  
  15. ## Definimos los campos (empezando en 0) de las posiciones de las columnas en el segundo fichero
  16. my @pos2 = (
  17.     7, # Ref_valor2
  18.     8, # Com_valor2
  19.     9, # Diferencia2
  20. );
  21.  
  22. ## Definimos los campos que nos interesa sacar, en este orden
  23. my @campos_salida = qw(
  24.     Nombre
  25.     Pin
  26.     Ref_valor
  27.     Com_valor
  28.     Diferencia
  29.     Ref_valor2
  30.     Com_valor2
  31.     Diferencia2
  32. );
  33.  
  34. open  FICHERO1, '<kk1.txt' or die "No puedo abrir el fichero: $!\n";
  35. open  FICHERO2, '<kk2.txt' or die "No puedo abrir el fichero: $!\n";
  36. open  SALIDA,   '>kk3.txt' or die "No puedo escribir: $!\n";
  37.  
  38. print SALIDA join('|', @campos_salida),"\n";
  39.  
  40. while (my $linea1 = <FICHERO1>) {       # Leemos la línea del primer fichero
  41.     chomp $linea1;                      # Quitamos el retorno de carro
  42.     my $linea2 = <FICHERO2>;            # Leemos la línea del segundo fichero
  43.     chomp $linea2;                      # Quitamos el retorno de carro
  44.  
  45.     my @campos1 = split /\|/, $linea1;  # Dividimos en campos
  46.  
  47.     @campos1 = @campos1[ @pos1 ];       # Nos quedamos solo con los que nos interesan
  48.  
  49.     my @campos2 = split /\|/, $linea2;  # Dividimos en campos
  50.  
  51.     @campos2 = @campos2[ @pos2 ];       # Nos quedamos solo con los que nos interesan
  52.  
  53.     for (@campos1, @campos2) {          # Quitamos los espacios en blanco que sobran
  54.         s/^\s*//;
  55.         s/\s*$//;
  56.     }
  57.                                         # Salida de todos los campos
  58.     print SALIDA join('|', @campos1, @campos2), "\n";
  59. }
  60.  
  61. close FICHERO1;
  62. close FICHERO2;
  63. close SALIDA;
  64.  
  65. __END__
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Genera una salida como esta:
Código: Seleccionar todo
Nombre|Pin|Ref_valor|Com_valor|Diferencia|Ref_valor2|Com_valor2|Diferencia2
cap_yt|pin:A|0.007777|0.0215|0.0011273   0.0011215 -> 5.8e-06  or  0.51%|0.007777|0.0215|0.0011273   0.0011215 -> 5.8e-06  or  0.51%
cap_r|pin:A|0.00177777|0.7|0.0012079   0.0012059 -> 2e-06  or  0.17%|0.00177777|0.7|0.0012079   0.0012059 -> 2e-06  or  0.17%
cap_r|pin:A|{{9.589e-4} {0.0012324}}|{{9.566e-4} {0.0012301}}||{{9.589e-4} {0.0012324}}|{{9.566e-4} {0.0012301}}|
cap_f|pin:A|0.0010466|0.7|0.0010466   0.0010371 -> 9.5e-06  or  0.91%|0.0010466|0.7|0.0010466   0.0010371 -> 9.5e-06  or  0.91%
cap_fe|pin:A|{{9.041e-4} {0.0012}}|{{9.033e-4} {0.0011948}}||{{9.041e-4} {0.0012}}|{{9.033e-4} {0.0011948}}|
pin_c|pin:B|0.001229|0.0012196|0.001229   0.0012196 -> 9.4e-06  or  0.76%|0.001229|0.0012196|0.001229   0.0012196 -> 9.4e-06  or  0.76%
cap_r|pin:B|0.0013422|0.0013405|0.0013422   0.0013405 -> 1.7e-06  or  0.13%|0.0013422|0.0013405|0.0013422   0.0013405 -> 1.7e-06  or  0.13%

que para mí ya es procesable para otros programas, ya que consiste en una base de datos, cuyos registros son líneas y los campos están separados por '|'.

Otra cosa es que quieras sacar los datos en formato tabular (anchos fijos), pero entonces tienes que calcular los tamaños máximos (el ancho) de cada columna.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados

cron