From: Leandro Lucarella Date: Sat, 23 Oct 2004 22:57:05 +0000 (+0000) Subject: Callgen toma los códigos de origen/destino de la entrada estándar, soportando el... X-Git-Tag: svn_import~94 X-Git-Url: https://git.llucax.com/z.facultad/75.08/llamadas.git/commitdiff_plain/0cfabf03d95503fd3d9a3772ca2b46fa7cb1940b?hp=b97ed10380459f2042ba3867c76aab8eb017ee73 Callgen toma los códigos de origen/destino de la entrada estándar, soportando el formato de oridesti.txt. Ejemplo: cat ../inst/oridesti.txt | ./callgen --- 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);