Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - explorer

#41
Hola. He encontrado una solución, pero como no conozco Pascalscript, yo he usado Perl v5.18:
#!/usr/bin/perl
use v5.18; # garantizamos un buen soporte de Unicode
use utf8::all; # activamos todo el soporte para UTF-8
use re '/xu'; # las exp. reg. tendrán estas opciones, por defecto

my @tests =
( 'kill the noise - all in my head feat. awolnation (batou mix)'
, 'artist - track name feat. Mister 漢字仮--名交じり文 [usa remix]'
, 'kill th-e noise - all in my head (feat awolnation)'
, 'Dj E-nergy C-21 - My Super-hero track! featuring Dj Ass-hole (usa remix)'
, 'Dj E-nergy C-21 - My Super-hero track! (feat Dj Ass-hole)'
);

my $del1 = qr/[([]/;
my $del2 = qr/[])]/;
my $featuring = qr/
   (?<d1>$del1)?
   (?<featuring>feat(?:uring|[.]|) \s .+?)
   (?(<d1>)$del2)
/;
my $artista = qr/(?<artista>.+?)/;
my $resto = qr/
   (?<cancion>.+?) \s+
   (?:$featuring \s*)?
   (?<extra>$del1 .+? $del2)?
   $
/;
my $titulo = qr/^ $artista \s+ - \s+ $resto $/;


for my $test (@tests) {

   $test =~ /$titulo/;

   say $test;
   say join " ", @+{qw(artista featuring)}, '-', @+{qw(cancion extra)};
   say '-' x 30;
}

Lo que sale es:
kill the noise - all in my head feat. awolnation (batou mix)
kill the noise feat. awolnation - all in my head (batou mix)
------------------------------
artist - track name feat. Mister 漢字仮--名交じり文 [usa remix]
artist feat. Mister 漢字仮--名交じり文 - track name [usa remix]
------------------------------
kill th-e noise - all in my head (feat awolnation)
kill th-e noise feat awolnation - all in my head
------------------------------
Dj E-nergy C-21 - My Super-hero track! featuring Dj Ass-hole (usa remix)
Dj E-nergy C-21 featuring Dj Ass-hole - My Super-hero track! (usa remix)
------------------------------
Dj E-nergy C-21 - My Super-hero track! (feat Dj Ass-hole)
Dj E-nergy C-21 feat Dj Ass-hole - My Super-hero track!
------------------------------
#42
Con shell, no puedes. Bash solo entiende aritmética entera.

Debes usar el comando bc para esas operaciones. Por ejemplo (desde la línea de comandos o en un script):

bc -l <<< '(2+4+7)/3'
Sale:
4.33333333333333333333

En un script puedes guardar el resultado en una variable, así:
a=$(bc -l <<< '(8+4+7)/3')
echo $a

O así:
b=$(echo '(8+4+7)/3' | bc -l)

Si el programa empieza a hacerse largo, es mejor usar algo con más potencia, como un Perl, Python, Ruby, javascript, etc.

Otra opción es usar zsh o ksh.
#43
«Perl 6 es la próxima generación en la familia de lenguajes de programación Perl, y un lenguaje hermano del bien establecido Perl 5. A la espera del lanzamiento de una versión de prueba en septiembre, y un primer lanzamiento público en diciembre, es un buen momento para comprobar sus programas Perl 6.

El soporte para Perl 6 se ofrece por parte de Paul Cochrane, Rob Hoelz, Nick Logan y Tony O'Dell».

Perl 6 en Travis-CI
#44
Con la función chr() puedes convertir un entero en un carácter cuyo código ASCII es el indicado por el entero.

https://docs.python.org/2/library/functions.html#chr

Y para poner los '0' delanteros, se puede usar format (%)

https://docs.python.org/2/library/stdtypes.html#string-formatting-operations

Sería algo así:
Código (python) [Seleccionar]
print dict([ (chr(x), '%04d' % (x-ord('a')+6)**2) for x in range(ord('a'), ord('z')+1) ])
Sale:

{'a': '0036', 'c': '0064', 'b': '0049', 'e': '0100', 'd': '0081', 'g': '0144', 'f': '0121', 'i': '0196', 'h': '0169', 'k': '0256', 'j': '0225', 'm': '0324', 'l': '0289', 'o': '0400', 'n': '0361', 'q': '0484', 'p': '0441', 's': '0576', 'r': '0529', 'u': '0676', 't': '0625', 'w': '0784', 'v': '0729', 'y': '0900', 'x': '0841', 'z': '0961'}

En Perl quedaría casi igual (pero más corto, claro):
Código (perl) [Seleccionar]
%codigo = map { $_ => sprintf "%04d", (ord($_)-ord("a")+6)**2 } "a".."z"
#45
Scripting / Re: Modificar archivo xml
26 Agosto 2015, 23:25 PM
Se puede hacer con un poco de Perl, desde la misma línea de comandos...

Código (bash) [Seleccionar]
perl -E '$_ = do { local $/; open F, $ARGV[0]; <F> }; s{^\s*<(\w+)>\s*</\1>\s?\n}{}gm; print' code_38243.xml(cambiando code_38243.xml por el nombre del archivo xml a procesar).

Con este archivo de entrada:
Código (xml) [Seleccionar]
<data>
 <meta>
   <sender type="IMEI">400234062240570</sender>
   <receiver type="E-mail Account">usuario@micorreo.com</receiver>
   <time>2015-01-10T19:52:06Z</time>
   <protocol>SBD</protocol>
   <type>NAL GPS Report 6</type>
   <Numero> </Numero>
   <Direccion></Direccion>
 </meta>
</data>
el resultado es:
Código (xml) [Seleccionar]
<data>
 <meta>
   <sender type="IMEI">400234062240570</sender>
   <receiver type="E-mail Account">usuario@micorreo.com</receiver>
   <time>2015-01-10T19:52:06Z</time>
   <protocol>SBD</protocol>
   <type>NAL GPS Report 6</type>
 </meta>
</data>

La misma solución, en forma de programa:
Código (perl) [Seleccionar]
#!/usr/bin/perl
$xml = do { local $/; open F, $ARGV[0]; <F> }; # leer nombre de archivo desde la línea de comandos
$xml =~ s{^\s*<(\w+)>\s*</\1>\s?\n}{}gm; # quitar etiquetas sin contenido
print $xml; # resultado

#46
No tienes por qué usar ningún programa para aprender javascript.

En Internet encontrarás muchos recursos para aprenderlo sin tener que instalar nada.

Puedes empezar por https://code.org/learn puedes realizar muchas actividades, y al final de ellos, puedes ver el código javascript que has usado. Por ejemplo, en https://studio.code.org/hoc/18 se puede resolver con este código:
Código (javascript) [Seleccionar]
while (notFinished()) {
 if (isPathForward()) {
   moveForward();
 } else {
   turnLeft();
 }
}
Naturalmente, esto es una super-simplificación de lo que es javascript, pero te puede ayudar a pensar como un programador, y a acostumbrarte a la sintaxis.

Puedes luego seguir algún curso que se centre más en escribir código para la web, y un poco más adelante, puedes divertirte con este reto: http://play.elevatorsaga.com/

Finalmente, das el salto a CodinGame: https://www.codingame.com/home y te pones a resolver todos los retos o participar en sus concursos.
#47
Ya está publicada la agenda de eventos (casi 100). Ya podéis escoger el track que más os interesa.
#48
Scripting / Re: programa en perl con opciones
27 Julio 2015, 23:05 PM
Una forma rápida de gestionar opciones en la línea de comandos es usando la opción -s. Ejemplo:
Código (perl) [Seleccionar]
#!/usr/bin/perl -s
if ($h) {
    print "Uso:\n\t$0 -h -l";
}

Y ahora ya podemos ejecutarlo
$ programa.pl -h
Uso:
./programa.pl -h -l


Más información en tu propio ordenador en perldoc perlrun, y en la Web (traducido al español).
#49
Hace unos días que hemos perdido a una gran persona: José Rey (JREY en CPAN, @perliscopio).


#50
Scripting / Re: memorizar comandos
7 Julio 2015, 01:25 AM
Lo mismo me pasó cuando me enfrenté a perlfunc.

Mi consejo es que leas lo que hace cada función, pero sin entrar en profundidad. Solo una lectura rápida para saber que existe.

Es algo así como un peón de albañil que hojea los catálogos de tipos de ladrillos caravista: tendrá ventaja al saber que existen 22 tipos distintos de esos ladrillos, frente a sus compañeros que creen que solo existen dos (el normal y el esquinero).