• Publicidad

script Perl pst2pdf y pdfTeX

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

Re: script Perl pst2pdf y pdfTeX

Notapor pablgonz » 2011-12-16 18:27 @810

Perfecto, esta opción es bastante cómoda, por decirlo de alguna manera, en un script.

Ahora tengo un último inconveniente: tenía la función renaming() y todo iba bien hasta que añadí la opción --force. Para trabajar en Linux ya lo resolví, pero en Windows me falla
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. # Renaming .ppm needed for Windows
  2. if ( $^O eq 'MSWin32' ) {
  3.     my $dren    = "$tempDir/$imageDir";
  4.     my $fichero = '';
  5.     my $ppmren  = '';
  6.     my $renNo   = 1;
  7.     if ( opendir( DIR, $dren ) ) {
  8.         foreach ( readdir DIR ) {
  9.             $fichero = $_;
  10.             if ( $fichero =~ /([^\d]+)(\d+).ppm/ ) {
  11.                 my $renNo   = int($2);
  12.                 my $newname = "$name-tmp-$renNo.ppm";
  13.                 $ppmren = rename( "$dren/$fichero", "$dren/$newname" );
  14.             }
  15.         }
  16.     }
  17.     else {
  18.         print "dont open" . $dren;
  19.     }
  20.     closedir DIR;
  21. }
  22.  
  23. # end renaming
  24.  
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
porque ahora se generan dos tipos de archivos:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
test1-tmp-1-000001.ppm
test1-tmp-000001.ppm
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
y no doy con el cambio en la línea
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. ~ /([^\d]+)(\d+).ppm/)
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
para que solo capture test1-tmp- e ignore lo que va después. Una última ayuda con esto para cerrar (en forma definitiva) el tema.

Saludos,
Pablo
pablgonz
Perlero nuevo
Perlero nuevo
 
Mensajes: 236
Registrado: 2010-09-08 21:03 @919
Ubicación: Concepción (Chile)

Publicidad

Re: script Perl pst2pdf y pdfTeX

Notapor explorer » 2011-12-17 17:42 @779

En el código que pones, no estás usando la captura $1 en ninguna parte, solo la $2.

Si sólo quieres capturar el número que está delante de .ppm, solo necesitas poner

/(\d+)\.ppm/
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

Re: script Perl pst2pdf y pdfTeX

Notapor pablgonz » 2011-12-17 20:38 @901

explorer escribiste:En el código que pones, no estás usando la captura $1 en ninguna parte, solo la $2.
Upss, tienes razón, publiqué una prueba que estaba haciendo... pero cambiando la línea a
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $newname = "$1$renNo.ppm";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
no funcionará en algunas ocasiones, me explico: los ficheros que quiero renombrar pueden tener las siguientes formas:
Sintáxis: [ Descargar ] [ Ocultar ]
  1. test1-tmp-000001.ppm 
  2. test1-tmp-000002.ppm 
  3. test1-tmp-000003.ppm 
o
Sintáxis: [ Descargar ] [ Ocultar ]
  1. test1-tmp-1-000001.ppm  
  2. test1-tmp-2-000002.ppm  
  3. test1-tmp-3-000003.ppm 
o
Sintáxis: [ Descargar ] [ Ocultar ]
  1. test1-tmp-1-1.ppm  
  2. test1-tmp-2-1.ppm  
  3. test1-tmp-3-1.ppm 

explorer escribiste:Si solo quieres capturar el número que está delante de .ppm, solo necesitas poner
/(\d+)\.ppm/
Revisé perlretut.html#Extracting-matches pero no logro dar con la línea correcta.

Lo que deseo hacer es lo siguiente: si tengo un fichero con este nombre
Sintáxis: [ Descargar ] [ Ocultar ]
  1. test-tmp-cambio.ppm 
quiero dividirlo de la siguiente forma: en $1 guardar test-tmp- (donde test puede incluir números, espacio en blanco, _ o - y -tmp- ); en $2 guardar cambio (donde cambio puede tener cualquiera de las tres formas que muestro arriba) de forma más simple en $1 guardar $name-tmp- y en $2 guardar (cambio).ppm. En mi lógica debería funcionar, pero, sólo he tenido intentos fallidos.

Gracias por la pronta respuesta.
Pablo
pablgonz
Perlero nuevo
Perlero nuevo
 
Mensajes: 236
Registrado: 2010-09-08 21:03 @919
Ubicación: Concepción (Chile)

Re: script Perl pst2pdf y pdfTeX

Notapor pablgonz » 2011-12-17 23:33 @023

Cambié las líneas a esto:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. # Renaming .ppm
  2. my $dren = "$tempDir/$imageDir";
  3. my $fichero = '';
  4. my $ppmren = '';
  5. my $renNo = 1;
  6. if(opendir(DIR,$dren)){
  7. foreach (readdir DIR){
  8.        $fichero = $_;
  9.        if ( $fichero =~ /($name-tmp-)(\d+|\d+[-]\d+).ppm/) {
  10.         my $renNo   = int($2);
  11.         my $newname="$1$renNo.ppm";
  12.         $ppmren = rename("$dren/$fichero","$dren/$newname");
  13.         }
  14.                 }
  15.         }
  16. else
  17.         {
  18. print "dont open".$dren;
  19.         }
  20. closedir DIR;
  21. # end renaming
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
y funciona de maravilla, no estoy seguro de que sea la mejor forma, pero, funciona.
Sólo me queda una pregunta y doy el asunto por cerrado, la opción -force del script genera todo lo que necesito, pero, me percato de lo siguiente: al usar -force crea y procesa una imagen extra, es decir si el script sin -force genera 4 imágenes, con -force creará 5, donde la imagen 4 y la 5 son iguales, esto no afecta el proceso ni el archivo final, sólo hace trabajo extra y por aprendizaje y curiosidad me gustaría saber porqué pasa esto.

Agradecido de los comentarios y ayuda brindada,
Pablo
pablgonz
Perlero nuevo
Perlero nuevo
 
Mensajes: 236
Registrado: 2010-09-08 21:03 @919
Ubicación: Concepción (Chile)

Re: script Perl pst2pdf y pdfTeX

Notapor explorer » 2011-12-18 13:33 @606

pablgonz escribiste:no estoy seguro de que sea la mejor forma, pero, funciona.
Con el siguiente programa
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use diagnostics;
  5. use 5.010;
  6.  
  7. my @ficheros = qw(
  8.     test1-tmp-000001.ppm
  9.     test1-tmp-000002.ppm
  10.     test1-tmp-000003.ppm
  11.     test1-tmp-1-000001.ppm  
  12.     test1-tmp-2-000002.ppm  
  13.     test1-tmp-3-000003.ppm
  14.     test1-tmp-1-1.ppm  
  15.     test1-tmp-2-1.ppm  
  16.     test1-tmp-3-1.ppm
  17. );
  18.  
  19. for my $fichero (@ficheros) {
  20.     $fichero =~ m/^(.+-tmp-)(.+)\.ppm/;
  21.     say "[$1][$2]";
  22. }
  23.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Sale:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
[test1-tmp-][000001]
[test1-tmp-][000002]
[test1-tmp-][000003]
[test1-tmp-][1-000001]
[test1-tmp-][2-000002]
[test1-tmp-][3-000003]
[test1-tmp-][1-1]
[test1-tmp-][2-1]
[test1-tmp-][3-1]
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


pablgonz escribiste:Sólo me queda una pregunta y doy el asunto por cerrado,
Lo dudo ;)

pablgonz escribiste:al usar -force crea y procesa una imagen extra, es decir si el script sin -force genera 4 imágenes, con -force creará 5. Esto no afecta el proceso ni el archivo final, sólo hace trabajo extra y por aprendizaje y curiosidad me gustaría saber porqué pasa esto.
Tendrás que preguntárselo al programa... es decir, hacer una traza de sus operaciones. Lo puedes hacer con el truco del print() comentado antes.
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

Re: script Perl pst2pdf y pdfTeX

Notapor pablgonz » 2011-12-18 15:10 @673

explorer escribiste:
pablgonz escribiste:Sólo me queda una pregunta y doy el asunto por cerrado,
Lo dudo ;)
jeje, tienes razón.

explorer escribiste:Tendrás que preguntárselo al programa... es decir, hacer una traza de sus operaciones. Lo puedes hacer con el truco del print() comentado antes.
Lo resolví, desde la última vez que escribí a la fecha, tenía un sub runFORCE(); extra (por eso generaba +1 ficheros).

Muchas gracias por la ayuda, aprender Perl del modo difícil (ensayo y error o sólo con tutoriales) es un poco complicado, sumado a eso las desventajas que tiene trabajar en Win32 para esto (con gedit y una consola se simplifica la vida por kilos), veré si me consigo un buen libro con algún amigo de la universidad para este verano, en todo caso, Perl está muy bien documentado, pero en español, solo este foro tiene la ayuda necesaria para un novato.

Sin más que desear una feliz navidad a todos, se despide,
Pablo.
pablgonz
Perlero nuevo
Perlero nuevo
 
Mensajes: 236
Registrado: 2010-09-08 21:03 @919
Ubicación: Concepción (Chile)

Re: script Perl pst2pdf y pdfTeX

Notapor explorer » 2011-12-18 17:38 @777

Te olvidas de mencionar la traducción de la documentación de perldoc al español, que se coloca en CPAN como POD2::ES, aunque está un poco retrasado con respecto a la documentación que ya tenemos traducida.

P.D. PERL no existe. Se dice Perl o perl. Más información en la sección Nombre de la página Perl de la Wikipedia.
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

Re: script Perl pst2pdf y pdfTeX

Notapor pablgonz » 2011-12-18 18:01 @792

Tienes razón, es más, al actualizar a OpenSuse 12.1 me percaté que los warnings y demás, estaban en español, a diferencia de mi versión de Perl (ahora escrito de forma correcta) en Win32 (ActivePerl).

explorer escribiste:P.D. PERL no existe. Se dice Perl o perl. Más información en la sección Nombre de la página Perl de la Wikipedia.

La ortografía de PERL en mayúsculas es por eso usada como jerga para detectar a individuos ajenos a la comunidad. Sin embargo, se han sugerido varios retroacrónimos, incluyendo el cómico Pathologically Eclectic Rubbish Lister (Contabilizador de Basura Patológicamente Ecléctico).
lo tendré presente para la próxima :D
pablgonz
Perlero nuevo
Perlero nuevo
 
Mensajes: 236
Registrado: 2010-09-08 21:03 @919
Ubicación: Concepción (Chile)

Re: script Perl pst2pdf y pdfTeX

Notapor explorer » 2011-12-18 19:08 @839

¿Puedes poner un ejemplo de warning de Perl, en español?

¿Qué versión de Perl es?
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

Re: script Perl pst2pdf y pdfTeX

Notapor pablgonz » 2011-12-18 19:35 @858

Upsss :? , warning no, de error sí. Me enredo entre lo que arroja Perl y lo que arroja cada sistema (en Win32 y OpenSuse 11.1 sistemas en español, lo da en inglés).
pablgonz
Perlero nuevo
Perlero nuevo
 
Mensajes: 236
Registrado: 2010-09-08 21:03 @919
Ubicación: Concepción (Chile)

AnteriorSiguiente

Volver a Básico

¿Quién está conectado?

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