Resumen: variables..
Ing. Efren Fitz Rodriguez
efitz@zea.chapingo.mx
Tue, 30 Sep 1997 19:52:56 -0600 (CST)
Hola Heladia y Daniel:
Muchas gracias por su respuesta respecto al mensaje (..Variables).
Ante nada mil disculpas por esta contestacion tardia..
Efectivamente el problema se resolvio haciendo uso de arreglos
asociativos (hash).
Lo primero que intente fue hacer uso de la funcion eval() pero sin
resultado alguno.
Comentando un poco al respecto del problema:
se tiene una serie de archivos con datos meteorologicos. (Ejemplo)
01/01/96,24.02,9.79,16.60,1.86,0.95,1.48,31.50,0.00,8.90,158.20,0.00,...
02/01/96,22.52,7.57,14.94,1.80,0.73,1.28,26.89,0.00,6.73,188.40,0.00,...
03/01/96,23.71,5.05,13.83,1.40,0.79,1.09,23.40,0.00,4.38,169.20,0.00,...
04/01/96,25.09,7.00,14.74,1.44,0.58,1.08,20.43,0.00,4.67,135.70,0.00,...
05/01/96,24.97,5.62,14.35,1.47,0.69,1.05,23.40,0.00,4.29,183.50,0.00,...
06/01/96,24.53,5.39,14.77,1.79,0.78,1.23,25.02,0.00,7.11,191.40,0.00,...
:
:
cuyo significado es:
Fecha,Tmx,Tmn,Tmd,PVSmx,PVSmn,PVSmd, VVmx, VVmn, VVmd, DVmd, Prec,...
Se parte del echo que existe una forma con el objetivo de que el
usuario seleccione que variables desea, asi como de que mes y anio..
Lo primero que intente fue hacer una funcion que me regresara una
cadena (variable escalar) que contendria los variables seleccionadas por
el usuario... que no funciono..
Entonces hice una funcion que regresara un hash que contiene las vars.
seleccionadas por el usuario
sub var_cliente{
%vars=("aFecha","$dato[0]");
if (todos los datos){
%vars = ("aFecha","$dato[0]","bTmx","$dato[1]",.Todasvar)
}
else{
%vars = (%vars,"bTmx","$dato[1]") if (Tmx);
%vars = (%vars,"cTmn","$dato[2]") if (Tmn);
%vars = (%vars,"dTmd","$dato[3]") if (Tmd);
:
:
Para cada variable.....
}
return %vars;
}
PREGUNTA ....
para construir este hash habria otra manera . por ejemplo intente...
$vars{bTmx} .= $dato[1] if (Tmx);
:
: para cada variable.....
esto es correcto? o de plano estoy metiendo la pata con esta sintaxis
lo primero que hice esta funcionando bien.... pero al momento de desplegar
los datos esto se despliegan de manera aleatoria, si le doy un sort los
ordena, pero de acuerdo al nombre de la llave.
La idea es desplegarlos en el orden que tiene en la "forma" y como los
seleccione el usuario.
Para resolver esto, a la llave de cada variable le antepuse, como se
habran
dado cuenta, un caracter a, b, c, d..... y al aplicar el sort los ordena
de acuerdo a como estan en la forma donde interactua el usuario..
Esto me parece un poco truculento, no se si exista alguna manera de
desplegar el contenido de un hash pero en el orden en que fue capturado..
Como se despliegan los datos es con lo sig..
foreach (keys %Vars) {
print "$Vars{$_}";
}
bueno amigos espero no haberlos aburrido y mucho menos distraerlos mucho
tiempo de sus ocupaciones..
Sus comentarios al respecto de las 2 dudas anteriores, son bienvenidas.
Ante todo gracias por la atencion al presente..
Saludos:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ing. Efrén Fitz Rodríguez Webmaster
Centro de Cómputo Universitario Tel/Fax (595) 505-75
Universidad Autónoma Chapingo Tel. (595) 422-00
E-mail: efitz@taurus1.chapingo.mx ext. 5756
efitz@scorpionix.chapingo.mx
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~