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 - leogtz

#2001
Scripting / Re: Batch que haga un ping
8 Abril 2010, 21:58 PM
Código (dos) [Seleccionar]
ping google.com > nul 2>&1 && (echo Online) || (echo Offline)
#2002
Scripting / Re: Ayuda con los comandos batch
8 Abril 2010, 10:01 AM
Y set e if No son variables.

Set es un comando e if es una estructura condicional, aunque para el cmd.exe sea un comando interno.
#2003
Las dudas sobre Batch van en el subforo de Scripting.
#2004
Scripting / Re: RAE Search, soft [PERL]
6 Abril 2010, 21:21 PM
Gracias, lo he actualizado ya, quedó algo así:


También le agregué un botón para copiar todo al portapapeles.



Y por supuesto la licencia GPL:


El código queda así:

Código (perl) [Seleccionar]
#!/usr/bin/perl
use warnings;
use strict;
use LWP::Simple;
use Gtk2 '-init';
use constant TRUE => 1;
use constant FALSE => 0;
use utf8;

binmode STDOUT, ":encoding(UTF-8)";

sub raeSearch()
{
        my $rae = get("http://buscon.rae.es/draeI/SrvltGUIBusUsual?LEMA=$_[0]");
my $resultado;
        while ($rae =~ m/name="[\d_]+"> (.*?) <\/p/smgix)
        {
                my $desc = $1;
                # Quitar las marcas HTML
                $desc =~ s/<.*?>//gsm;
                # Quitar los espacios a los lados
                $desc =~ s/^\s+//sm;
                $desc =~ s/\s+$//sm;
                # Quitar espacios excesivos
                $desc =~ s/\s+/ /gsm;
$resultado .= "$desc\n";
        }
# Saber si $resultado está vacio:
if(!defined($resultado))
{
return "La palabra \"$_[0]\" no se encuentra en el diccionario. RAE\n";
} else {
return $resultado;
}
}

sub hide_on_delete
{
my ($widget) = @_;
$widget->hide;
return 1;
}

# Propiedades de ventana:
my $window = Gtk2::Window->new();
$window->set_title("RAE Search");
$window->set_border_width(3);
$window->signal_connect(destroy => sub{Gtk2->main_quit});
$window->set_auto_startup_notification(TRUE);
$window->set_decorated(TRUE);
$window->set_default_icon_from_file("camel.ico");
$window->move(0, 0);
$window->resize(700, 100);
$window->set_resizable(TRUE);

# Frame :

my $frame = Gtk2::Frame->new("Entrada");

# VBox :

my $vbox = Gtk2::VBox->new(FALSE, 10);
$vbox->pack_start($frame, TRUE, TRUE, 0);

# HBox :

my $hbox = Gtk2::HBox->new(FALSE, 6);

# Entry:

my $dir_entry = Gtk2::Entry->new_with_max_length(30);
$dir_entry->set_text("encono");
$dir_entry->set_activates_default(FALSE);
$dir_entry->set_position(100);

# Button :

my $button = Gtk2::Button->new("_Buscar");
$button->set_alignment(2.6, 4.5);
$button->set_focus_on_click(TRUE);

# TextView :

my $textview = Gtk2::TextView->new();
$textview->set_border_window_size('top', 1);
my $buffer = $textview->get_buffer;

# Button (button and clipboard widget) :

my $button_clipboard = Gtk2::Button->new("_Clipboard");
$button_clipboard->set_focus_on_click(TRUE);
my $clipboard = Gtk2::Clipboard->get(Gtk2::Gdk->SELECTION_CLIPBOARD);

$button->signal_connect(clicked => sub
{
$buffer->set_text(&raeSearch($dir_entry->get_text));
}
);

$button_clipboard->signal_connect(clicked => sub
{
$clipboard->set_text(&raeSearch($dir_entry->get_text));
}
);

# Button (Quit) :

my $button_quit = Gtk2::Button->new("_Salir");
$button_quit->set_alignment(3.5, 4.5);
$button_quit->set_focus_on_click(TRUE);
$button_quit->signal_connect(clicked => sub
{
Gtk2->main_quit;
}
);

# AboutDialog :

my $about = Gtk2::AboutDialog->new;
$about->set_comments("Un buscador de palabras en el diccionario de la Real Academia Española");
$about->set_website("leorocko13\@hotmail.com");
$about->set_authors("Leo Gutierrez Ramirez");
$about->set_copyright("(c) Leo Gutiérrez Ramírez");
$about->set_program_name("RAE Search");
$about->set_version("1.0");
$about->set_website_label("leorocko13\@hotmail.com");
open(my $file, q[<], "./licencia.txt") or die("No se pudo abrir el archivo \"licencia.txt\". _$!");
my $license;
while(<$file>)
{
$license .= $_;
}
close($file) or warn("Error cerrando el archivo \"licencia.txt\"");
$about->set_license($license);

# Button (about) :

my $button_about = Gtk2::Button->new("_About ...");
$button_about->set_focus_on_click(TRUE);
$button_about->signal_connect(clicked => sub {
$about->run;
&hide_on_delete($about);
}
);

# Scroll Window :

my $scroll = Gtk2::ScrolledWindow->new();
$scroll->set_policy('automatic', 'automatic');
$scroll->set_shadow_type('out');
$scroll->add($textview);

$vbox->pack_start($scroll, TRUE, TRUE, 0);
$vbox->pack_start($button_clipboard, TRUE, TRUE, 2);
$frame->add($hbox);
$hbox->pack_start($dir_entry, FALSE, FALSE, 0);
$hbox->pack_start($button, FALSE, FALSE, 0);
$hbox->pack_end($button_about, FALSE, FALSE, 0);
$hbox->pack_end($button_quit, FALSE, FALSE, 0);
$window->add($vbox);
$window->show_all;
Gtk2->main;



Con perl se pueden hacer muchísimas cosas, en cpan hay más de 8000 módulos que te permiten hacer lo que quieras, está gtk, gtk2, tk, Qt, etc, etc.

Por cierto, he visto que en los repositorios hay un software llamada lemurae, hecho en python, parecido al que yo hice, ¿alguno sabe como poner un programita simple como este en los repositorios?
#2005
Scripting / Re: Ayuda con Batch.
6 Abril 2010, 20:19 PM
Lo que debes de hacer:

En una variable ir concatenando los asteriscos:

Código (dos) [Seleccionar]
@echo off
:code
set /p "lineas=Ingresa un numero : "
if not defined lineas (goto:code)
set "string=*"
:loop
echo %string%
set "string=%string%*"
set /a "cont+=1"
if %cont% neq %lineas% (goto:loop)
set /p "="
exit /b 0


No tiene caso que te compliques tanto con tantos gotos y etiquetas.

Incluso podrías con FOR:
Código (dos) [Seleccionar]
@echo off
setlocal enabledelayedexpansion
:code
set /p "lineas=Ingresa un numero : "
if not defined lineas (goto:code)
set "string=*"
for /l %%_ in (1, 1, %lineas%) do (
echo !string!
set "string=!string!*"
)
set /p "="
exit /b 0


Aquí otra menera de como se haría por ejemplo en C:

Código (dos) [Seleccionar]
@echo off
rem Piramide de 5 lineas.
for /l %%i in (1, 1, 5) do (
for /l %%j in (1, 1, %%i) do (
< nul set /p "=*"
)
echo.
)
pause>nul
exit /b 0


Cualquier duda aquí estamos.
#2006
CitarVuelvo y te aclaro, lo de los zombies de Haiti no tiene absolutamente nada que ver con 'paranormal' ni espiritismos..

Entonces desde ya habría que dejarles de decir "zombies", eso es lo que crea la confusión.
#2007
No, no hay vida.
#2008
Scripting / RAE Search, soft [PERL]
6 Abril 2010, 01:59 AM
Hola, aquí les dejo este pequeño programita que hice para buscar entradas en la Real Academia Española, le puse interfaz gráfica con Gtk2:



Aquí está el código:

Código (perl) [Seleccionar]
#!/usr/bin/perl
use warnings;
use strict;
use LWP::Simple;
use Gtk2 '-init';
use constant TRUE => 1;
use constant FALSE => 0;

binmode STDOUT, ":encoding(UTF-8)";

sub raeSearch()
{
       my $rae = get("http://buscon.rae.es/draeI/SrvltGUIBusUsual?LEMA=$_[0]");
my $resultado;
       while ($rae =~ m/name="[\d_]+"> (.*?) <\/p/smgix)
       {
               my $desc = $1;
               # Quitar las marcas HTML
               $desc =~ s/<.*?>//gsm;
               # Quitar los espacios a los lados
               $desc =~ s/^\s+//sm;
               $desc =~ s/\s+$//sm;
               # Quitar espacios excesivos
               $desc =~ s/\s+/ /gsm;
$resultado .= "$desc\n";
       }
return $resultado;
}

# Propiedades de ventana:
my $window = Gtk2::Window->new();
$window->set_title("Rae Search");
$window->set_border_width(3);
$window->signal_connect(destroy => sub{Gtk2->main_quit});
$window->set_auto_startup_notification(TRUE);
$window->set_decorated(TRUE);
$window->set_default_icon_from_file("camel.ico");
$window->move(0, 0);
$window->resize(700, 100);
$window->set_resizable(TRUE);

# Frame:
my $frame = Gtk2::Frame->new("Entrada");

# VBox:
my $vbox = Gtk2::VBox->new(FALSE, 10);
$vbox->pack_start($frame, TRUE, TRUE, 0);

# HBox:
my $hbox = Gtk2::HBox->new(FALSE, 6);

# Entry:
my $dir_entry = Gtk2::Entry->new_with_max_length(30);
$dir_entry->set_text("encono");
$dir_entry->set_activates_default(FALSE);
$dir_entry->set_position(100);

# Button:
my $button = Gtk2::Button->new("_Buscar");
$button->set_focus_on_click(TRUE);
my $rae;

# TextView  :
my $textview = Gtk2::TextView->new();
$textview->set_border_window_size('top', 1);
my $buffer = $textview->get_buffer;

$button->signal_connect(clicked => sub
{
$buffer->set_text(&raeSearch($dir_entry->get_text));
}
);

# Scroll Window :

my $scroll = Gtk2::ScrolledWindow->new();
$scroll->set_policy('automatic', 'automatic');
$scroll->set_shadow_type('out');
$scroll->add($textview);
$vbox->pack_end($scroll, TRUE, TRUE, 0);
$frame->add($hbox);
$hbox->pack_start($dir_entry, FALSE, FALSE, 0);
$hbox->pack_start($button, FALSE, FALSE, 0);
$window->add($vbox);
$window->show_all;
Gtk2->main;


Agradezco a explorer de perlenespanol.com por la ayuda brindada.

El programa es sencillo, pero me sirvió mucho, aprendí bastantes cosas con este proyectito.

El código necesita este icono para funcionar:
http://icone.goldenweb.it/download_file/d2/animals/c/jenanimals/file/camel/ext/.ico/default.html

O sino quieren  descargar el icono, solo quiten esta línea:
Código (perl) [Seleccionar]
$window->set_default_icon_from_file("camel.ico");

Saludos.
#2009
Las rutas siempre trabajalas con dobles comillas.

set "var=c:\ventas\emp.dat"
if exist "%var%" (goto dale) else goto falta


Tú código no lo veo mal, mira, déjalo así:

@echo off
cls
if exist "c:\ventas\emp.dat" (goto:dale) else (goto:falta)
:dale
cd \ventas
start /low /wait sispv.exe
goto FIN
:falta
cd \ventas
copy "c:\ventas\emp" "c:\ventas\emp.dat"
start /low /wait sispv.exe
:fin
exit


¿Te da un error en pantalla?
#2010
Scripting / Re: Ordenar usuarios en Bash
5 Abril 2010, 04:50 AM
Hola, Flakito81, no te he entendido muy bien, pero bueno, veamos.

El comando:
Código (bash) [Seleccionar]
ps -u USUARIO

Te podría facilitar las cosas, ahora, si lo trabajas con "wc" o "awk":

Código (bash) [Seleccionar]
leo@lein:~/Escritorio$ ps -u leo | wc -l
54
leo@lein:~/Escritorio$ ps -u root | wc -l
64
leo@lein:~/Escritorio$


Yo en mi caso no te puedo ayudar mucho porque solo tengo un usuario en mi máquina:

Código (bash) [Seleccionar]
leo@lein:~/Escritorio$ who | awk '{print$1}' | uniq | wc -l
1
leo@lein:~/Escritorio$


O incluso podrías usar esto:

Código (bash) [Seleccionar]
leo@lein:~/Escritorio$ ps aux -u leo | grep -ci "leo"
53
leo@lein:~/Escritorio$ ps aux -u root | grep -ci "root"
66
leo@lein:~/Escritorio$


Usando -c para las ocurrencias.

O incluso podrías hacer esto (no probado con más de 1 usuario):

Código (bash) [Seleccionar]
for usuario in $(who | awk '{print $1}' | uniq); do echo -e "$usuario : `ps -u $usuario | wc -l`"; done

Código (bash) [Seleccionar]

for usuario in $(who | awk '{print $1}' | uniq); do echo -e "$usuario : `ps -u $usuario | wc -l`"; done | sort


Solo tengo un usuario en mi máquina, así que no puedo ayudarte mucho, pero publica tus avances y el código para ver que se puede hacer.