Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-06-2007
brandolin brandolin is offline
Miembro
 
Registrado: jul 2003
Ubicación: Mendoza
Posts: 324
Poder: 21
brandolin Va por buen camino
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....
Responder Con Cita
  #2  
Antiguo 08-06-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
comparar un string con un rango de valores locorez Varios 2 09-01-2006 16:54:43
ShowHint Constante .. se puede? ingel Varios 5 14-11-2005 16:36:49
Cambiar una constante D@byt Varios 3 24-05-2005 17:03:11
Comparar String davidgaldo Varios 1 30-04-2004 11:29:53
Comparar dos variables string, bien facil... emeceuy Varios 8 09-02-2004 22:12:04


La franja horaria es GMT +2. Ahora son las 14:43:22.


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
Copyright 1996-2007 Club Delphi