From 0cfabf03d95503fd3d9a3772ca2b46fa7cb1940b Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Sat, 23 Oct 2004 22:57:05 +0000 Subject: [PATCH] =?utf8?q?Callgen=20toma=20los=20c=C3=B3digos=20de=20orige?= =?utf8?q?n/destino=20de=20la=20entrada=20est=C3=A1ndar,=20soportando=20el?= =?utf8?q?=20formato=20de=20oridesti.txt.=20Ejemplo:=20cat=20../inst/oride?= =?utf8?q?sti.txt=20|=20./callgen?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- util/callgen | 40 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/util/callgen b/util/callgen index 2580ee8..8fb3828 100755 --- a/util/callgen +++ b/util/callgen @@ -7,18 +7,49 @@ # Bajo licencia GPL. # # Uso: -# ./gencall.pl [cant_archivos [min_lineas [max_lineas]]] +# ./callgen [cant_archivos [min_lineas [max_lineas]]] # # cant_archivos Cantidad de archivos a generar. +# min_lines Mínima cantidad de líneas que puede tener un archivo. +# max_lines Máxima cantidad de líneas que puede tener un archivo. # +# Por la entrada estándar debe recibir los códigos de países para origen y/o +# destino. Toma los dos primeros caracteres por línea como un código, ignorando +# el resto, de manera que se puede hacer: +# cat oridesti.txt | ./gencall # Configuración $CANT_ARCHS=10; $MIN_LINEAS=1000; $MAX_LINEAS=5000; +#{{{ Variables globales +our @codes; # Códigos de origen/destino +#}}} + #{{{ Funciones +#{{{ load_codes() - Obtiene códigos de origen/destino de la entrada estándar +# Uso: load_codes() +sub load_codes() +{ + while (<>) + { + ; + push(@codes, substr($_, 0, 2)); + } +} +#}}} + +#{{{ get_rnd_code() - Obtiene un códigos de origen/destino al azar +# Uso: get_rnd_code() +sub get_rnd_code() +{ + my $cant = @codes; + return $codes[rnd($cant-1)]; +} +#}}} + #{{{ rnd() - Genera números aleatorios # Uso: rnd(MAX) - genera número de 0 a MAX (inclusive) # rnd(MIN, MAX) - genera número de MIN a MAX (inclusive) @@ -59,12 +90,12 @@ sub line() if (rnd(1) == 1) { $f_tipo = 'E'; - $f_orig = char().char(); + $f_orig = get_rnd_code(); } else { $f_tipo = 'S'; - $f_dest = char().char(); + $f_dest = get_rnd_code(); } my $f_prest = char().char().char().char().char().char().char().char().char(); return "$f_linea;$f_minutos;$f_fecha;$f_hora;$f_tipo;$f_dest;$f_orig;$f_prest"; @@ -72,7 +103,7 @@ sub line() #}}} #{{{ gen() - Genera un archivo con entre MIN y MAX llamadas -# Uso: gen MIN MAX +# Uso: gen(MIN, MAX) sub gen($$) { my ($ini, $fin) = @_; @@ -92,6 +123,7 @@ sub gen($$) #{{{ Programa srand; my $cant = $ARGV[0] ? $ARGV[0] : $CANT_ARCHS; +load_codes(); for (my $i = 0; $i < $cant; ++$i) { gen($ARGV[1] ? $ARGV[1] : $MIN_LINEAS, $ARGV[2] ? $ARGV[2] : $MAX_LINEAS); -- 2.43.0