Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   asignar valor a variable por medio de nombre (https://www.clubdelphi.com/foros/showthread.php?t=74847)

ocram 14-07-2011 18:01:00

asignar valor a variable por medio de nombre
 
Hola a todos

Mi duda es que si alguien sabe como hacer para asignar un valor a una variable de la cual tengo su nombre en un string, es decir, yo tengo dos variables que se llaman VARDIM y NOMBRE de tipo string y digamos que la variable NOMBRE le asigno como valor el "nombre" de la otra variable
ej.
NOMBRE:= 'VARDIM';
ahora bien, como podria hacer para decir: a la variable que tenga de nombre el valor de la variable nombre asignale el valor de 'cualquier texto'. Para que al final de todo esto la variable VARDIM tenga el valor de 'cualquier texto'.
No creo que me hayan entendido pero les pondré pseudocodigo a ver si asi
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
   VARDIM, NOMBRE: String;
begin
   NOMBRE:= 'VARDIM';
   //quiero algo asi como lo siguiente
   variable(nombre):= 'Cualquier texto';
   showmessage(VARDIM);
end;

y que esto me mande el mensaje 'cualquier texto'

Gracias anticipadas

maeyanes 14-07-2011 18:08:07

Hola...

Si explicas para que quieres hacer tal operación, te podremos ayudar mejor.

Lo que quieres no se puede lograr en Delphi. Tal vez puedas lograr algo parecido usando un TStringList:

Código Delphi [-]
var
  Strings: TStringList;

begin
  Strings := TStringList.Create;
  try
    Strings.Add('VARDIM=');
    Strings.Values['VARDIM'] := 'Cualquier texto';
    ShowMessage(Strings.Values['VARDIM'])
  finally
    Strings.Free
  end
end;


Saludos...

oscarac 14-07-2011 18:09:44

yo si te entiendo y creeme que tambien estoy buscando lo mismo
antes cuando usaba FOX habia una instruccion

a = 'Vardin'
&a = 300


entonces la variable vardin tomaba el valor de 300, tambien estoy buscando esto en delphi

ecfisa 14-07-2011 18:31:34

Hola.

Como bién dice maeyanes ni en Delphi o Pascal es posible esa operación ya que el compilador convierte los nombres de variables en direcciónes de memoria y esa acción no es reversible.

Lo que se puede hacer es:
Código Delphi [-]
...
var
  Cadena: string;
  p: string absolute Cadena;
begin
  Cadena:= 'Hola';
  ShowMessage(p);
end;
Pero claro, no es lo mismo...

Saludos.

ocram 14-07-2011 18:32:03

lo que pasa es lo siguiente tengo una aplicacion que tiene cerca de 50 constantes y las tiene en el codigo y las quiero poner en una base de datos y de ahi jalar los valores, actualmente estan de la siguiente forma

const
cstrImpAddCC: String = 'ImpAddCC';
cstrImpAirFare: String = 'ImpAirFare';
cstrMantFloat: String = 'MantFloat';
cstrMantFix: String = 'MantFix';
...

entonces lo que quiero hacer es crear una tabla asi
VARIABLE VALOR
=========+=====
cstrImpAddCC ImpAddCC
cstrImpAirFare ImpAirFare
cstrMantFloat MantFloat
cstrMantFix MantFix

y ya en delphi crear las variables y asignarles el valor dependiendo del nombre


var
cstrImpAddCC: String;
cstrImpAirFare: String;
cstrMantFloat: String;
cstrMantFix: String;
...
//mas pseudocodigo
procedure asignavalor();
begin
consulta.open;
while not consulta.eof do begin
variable(consulta.fieldbuname('variable').asstring):= consulta.fieldbyname('valor').asstring;
consulta.next
end;
end;

y de esta forma asignar el valor a todas las variables, aqui el detalle es que como esas constantes se usan en todo el codigo entonces esta muuy complicado cambiarles el nombre


La franja horaria es GMT +2. Ahora son las 03:07:07.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi