Vie May 18, 2007 2:40 pm
|
 |
jrodola
Perlero Nuevo

|
Registrado: 18 May 2007
Mensajes: 6
|
|
| ¿Convertir un texto plano a un html/xml? |
|
|
Hola a todos,
Os quería preguntar si alguno sabe, tiene algún ejemplo o me puede dar una pista (qué tipo de funciones a usar..) de cómo se puede pasar un fichero que está en texto plano (es una tabla con valores que sale como output de un programa y que se guarda en un .log) a un html para que se pueda ver via web.
Soy nuevo en esto del perl, así que estoy muy perdido.
Cualquier sugerencia será bienvenida.
Muchas gracias por adelantado
Saludos,
Javi |
|
|
|

Vie May 18, 2007 5:02 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4225
Ubicación: Valladolid, España
|
|
|
|
|
Bienvenido a los foros de Perl en Español.
Sería interesante ver un ejemplo de ese fichero, aunque sea con datos inventados. Y un ejemplo de cómo quieres la salida.
Se puede hacer un programa muy sencillo que genere la salida en html. También hay multitud de módulos que realizan justo esa tarea: convertir una tabla de datos en html, como el Data::Table, el HTML::Table, HTML::TextToHTML o incluso un comando completo: txt2html. |
|

Sab May 19, 2007 5:46 am
|
 |
jrodola
Perlero Nuevo

|
Registrado: 18 May 2007
Mensajes: 6
|
|
|
|
|
Muchas gracias.
He encontrado googleando esto: http://cwashington.netreach.net/depo/view.asp?Index=77
Tiene muy buena pinta, aunque sólo pasa de txt a html sin procesar lo que hay dentro.
Miraré lo que me acabas de comentar.
Un ejemplo de un txt a procesar sería esto:
| Código: |
Date: 2007-04-25
Object Counter 13:30 13:45 14:00 14:15 14:30 14:45 15:00 15:15 15:30 15:45 16:00
IurLink=Iur_111 pmNoNormalRabReleaseCs64 0 0 0 0 0 0 0 0 0 0 0
IurLink=Iur_111 pmNoNormalRabReleaseCsStream 0 0 0 0 0 0 0 0 0 0 0
IurLink=Iur_111 pmNoNormalRabReleasePacket 0 0 0 0 0 0 0 0 0 0 0
IurLink=Iur_111 pmNoNormalRabReleasePacketStream 0 0 0 0 0 0 0 0 0 0 0
IurLink=Iur_111 pmNoNormalRabReleaseSpeech 0 0 0 0 0 0 0 0 0 0 1
IurLink=Iur_111 pmNoOfRlForDriftingUesPerDrnc 0 0 0 0 0 0 0 0 0 0 0
IurLink=Iur_111 pmNoSystemRabReleaseCs64 0 0 0 0 0 0 0 0 0 0 0
IurLink=Iur_111 pmNoSystemRabReleaseCsStream 0 0 0 0 0 0 0 0 0 0 0
IurLink=Iur_111 pmNoSystemRabReleasePacket 0 0 0 0 0 0 0 0 0 0 0
IurLink=Iur_111 pmNoSystemRabReleasePacketStream 0 0 0 0 0 0 0 0 0 0 0
IurLink=Iur_111 pmNoSystemRabReleaseSpeech 0 0 0 0 0 0 0 0 0 0 0 |
Es decir, es una tabla simple, por eso tengo que maniobrar para que el script meta también etiquetas <tr> <td> y <table>
Muchas gracias por tu ayuda.
Saludos |
|

Sab May 19, 2007 3:32 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4225
Ubicación: Valladolid, España
|
|
|
|
|
Pero... si el formato está facilísimo...
Hacer el programa es muy fácil...
| Perl: | #!/usr/bin/perl -l
use CGI qw':standard *table';
print start_html ("Tabla");
print start_table ();
while ( <DATA> ) {
chomp;
if ( /^Date/ ) {
print caption ($_);
}
else {
@campos = split " ", $_;
if ( /^Object/ ) {
print Tr (th ([ @campos ]));
}
else {
print Tr (td ([ @campos ]));
}
}
}
print end_table;
print end_html;
__DATA__
Date: 2007- 04- 25
Object Counter 13: 30 13: 45 14: 00 14: 15 14: 30 14: 45 15: 00 15: 15 15: 30 15: 45 16: 00
IurLink=Iur_ 111 pmNoNormalRabReleaseCs64 0 0 0 0 0 0 0 0 0 0 0
IurLink=Iur_ 111 pmNoNormalRabReleaseCsStream 0 0 0 0 0 0 0 0 0 0 0
IurLink=Iur_ 111 pmNoNormalRabReleasePacket 0 0 0 0 0 0 0 0 0 0 0
IurLink=Iur_ 111 pmNoNormalRabReleasePacketStream 0 0 0 0 0 0 0 0 0 0 0
IurLink=Iur_ 111 pmNoNormalRabReleaseSpeech 0 0 0 0 0 0 0 0 0 0 1
IurLink=Iur_ 111 pmNoOfRlForDriftingUesPerDrnc 0 0 0 0 0 0 0 0 0 0 0
IurLink=Iur_ 111 pmNoSystemRabReleaseCs64 0 0 0 0 0 0 0 0 0 0 0
IurLink=Iur_ 111 pmNoSystemRabReleaseCsStream 0 0 0 0 0 0 0 0 0 0 0
IurLink=Iur_ 111 pmNoSystemRabReleasePacket 0 0 0 0 0 0 0 0 0 0 0
IurLink=Iur_ 111 pmNoSystemRabReleasePacketStream 0 0 0 0 0 0 0 0 0 0 0
IurLink=Iur_ 111 pmNoSystemRabReleaseSpeech 0 0 0 0 0 0 0 0 0 0 0 | (perdón por la soberbia, estoy un poco borracho por culpa de la boda de un amigo. Quizás también no he elegido la mejor solución). |
|

Dom May 20, 2007 6:04 am
|
 |
jrodola
Perlero Nuevo

|
Registrado: 18 May 2007
Mensajes: 6
|
|
|
|
|
Hola
El fichero de texto plano como input va cambiando, no siempre es el mismo, así que no se le puede meter en el código. ¿Cómo se le puede meter como argumento? ¿Con @ARGV?
Gracias de nuevo
Saludos,
Javi |
|
Dom May 20, 2007 6:24 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4225
Ubicación: Valladolid, España
|
|
|
|
|
Sí que puedes pasárselo como argumento al programa:
| Código: |
| programa.pl fichero.log |
luego, sólo tienes que cambiar <DATA> por <>.
Lo que hace Perl es abrir el fichero pasado como argumento a tu programa y lo conecta a la entrada estándar, por eso usamos <>.
Más información: perlrun. |
|
Dom May 20, 2007 7:18 am
|
 |
jrodola
Perlero Nuevo

|
Registrado: 18 May 2007
Mensajes: 6
|
|
|
|
|
¡Muchas gracias por todo, de verdad!
Mañana lo pruebo y te cuento.
Saludos
Javi |
|

Lun May 21, 2007 3:48 am
|
 |
jrodola
Perlero Nuevo

|
Registrado: 18 May 2007
Mensajes: 6
|
|
|
|
|
Hola,
El texto que quiero procesar es:
| Código: |
1) RNC Node Traffic Performance
Report from 2007-05-21 07:45 UTC to 2007-05-21 08:44 UTC
Start Time: 2007-05-21 07:45:00 End Time: 2007-05-21 08:30:00
Object Counter
CS64CCSR 99.7
CS64Drop 0
NoRrcConnReq 14420
PSCCSR 90.5
PSDrop 9.3
RrcSuc 98.8
SpchCCSR 99.1
SpchDrop 0.6
2) RNC Node Traffic Performance, Hour by Hour
Report from 2007-05-21 07:45 UTC to 2007-05-21 08:44 UTC
Date: 2007-05-21
Object Counter 07:00 08:00
CS64CCSR 0 99.8
CS64Drop N/A 0
NoRrcConnReq 3380 11040
PSCCSR 100 87.8
PSDrop 0 12.0
RrcSuc 98.6 98.9
SpchCCSR 98.4 99.2
SpchDrop 0.6 0.6
[...] |
La cosa sería separarlo en dos tablas diferentes, cada una con su título, como esto:
¿Me puedes echar una mano para ver cómo puedo separarlo en dos tablas?
Muchísimas gracias de nuevo por todo.
Saludos,
Javi |
|

Powered by phpBB © 2001, 2005 phpBB Group
|