Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Comparar String con Constante (https://www.clubdelphi.com/foros/showthread.php?t=44518)

brandolin 08-06-2007 00:59:12

Comparar String con Constante
 
Hola a todos, paso a explicar el problema
Tengo las constantes siguiente:

cod1 = 100
cod2 = 101
cod3 = 102
cod3 = 103

y tengo un proceso que obtiene en un string una valor que es casualmente el nombre de la constante, y lo que quiero obtener es el valor de la constante... por ejemplo:

X := 'cod1';

y quiero comparar

if (X = nombre(cod1))
then Y := cod1;

siendo Nombre() la funcion que devolveria el nombre de la consnte y no su valor.

Alguna sugerencia. Gracias

PD: Esto en el anterior Clipper se llamaba macro sustitucion y se hacia con el @ antes del nombre de la variable....:confused:

roman 08-06-2007 05:46:05

Veo difícil que esto pueda hacerse en delphi, porque los nombres de las constantes son sólo para identificarlas en el código; el compilador sustituye su valor en cada expresión en la que aparece, de manera que el nombre se pierde en el ejecutable final.

No obstante hay alternativas. Por ejemplo, puedes valerte de un TStringList que 'englobe' las constantes:

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

...

Constantes.Values['cod0'] := 100;
Constantes.Values['cod1'] := 101;
Constantes.Values['cod2'] := 102;
Constantes.Values['cod3'] := 103;

...

if S = 'cod2' then
  Y := Constantes.Values[S];

La variable Constantes debes construirla ates de usarla con

Código Delphi [-]
Constantes := TStringList.Create;

y destruirla cuando ya no la uses:

Código Delphi [-]
Constantes := TStringList.Free;

Claro que en realidad ya no estamos hablando de constantes, pero puede satisfacer la necesidad.

// Saludos


La franja horaria es GMT +2. Ahora son las 20:26:55.

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