Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-01-2009
noob noob is offline
Miembro
 
Registrado: sep 2008
Posts: 212
Poder: 18
noob Va por buen camino
Case pero con cadenas en vez de con caracteres

Hola, tengo este código:

Código Delphi [-]
  if Cadena = 'uno' then
    // Acciones a tomar
  if Cadena = 'dos' then
    // Acciones a tomar
  if Cadena = 'tres' then
    // Acciones a tomar
  if Cadena = 'cuatro' then
    // Acciones a tomar

pero me gustaría hacerlo de tal forma que no hubiera tantos ifs ya que lo que se evalúa es siempre la misma variable, Cadena.

¿Podría hacerse algo como esto?

Evaluo la cadena
Si es uno --> // Acciones a tomar
Si es dos --> // Acciones a tomar
Si es tres --> // Acciones a tomar
Si es cuatro --> // Acciones a tomar

Se que si lo que se evalúa es un caracter sí que se puede pero me temo que con cadenas de texto es imposible, ¿me equivoco?

Saludos.
Responder Con Cita
  #2  
Antiguo 21-01-2009
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 21
Chris Va por buen camino
No sé si se podrá, pero puedes intentar provandando con constantes.
Código Delphi [-]
CONST
UNO = 'uno';
DOS = 'dos';
...

Case Value of
UNO: // code
DOS: //code
...
end;
Saludos.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #3  
Antiguo 21-01-2009
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 21
Chris Va por buen camino
Si no funciona el anterio, puedes:
Código Delphi [-]
procedure evaluar(valor_inicial: string);
var
elementos: TStringlist;
inx: Integer;
begin
try
elementos := TStringlist.create;
elementos.text := 'uno,dos,tres,cuatro,cinco'; // enumerar todos los posibles casos

inx := elementos.indexof(valor_inicial);

case inx of
0: // codigo para cuando sea "uno"
1: // código para "dos"
...
end;

finally
elementos.free;
end;
end;
end;
Saludos.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #4  
Antiguo 21-01-2009
noob noob is offline
Miembro
 
Registrado: sep 2008
Posts: 212
Poder: 18
noob Va por buen camino
Voy a probar, muchas gracias.
Responder Con Cita
  #5  
Antiguo 21-01-2009
noob noob is offline
Miembro
 
Registrado: sep 2008
Posts: 212
Poder: 18
noob Va por buen camino
@D&W

Creo que para añadir elementos a la lista sería así:
Código Delphi [-]
elementos.Add := ('uno');
elementos.Add := ('dos');
elementos.Add := ('tres');
elementos.Add := ('cuatro');
elementos.Add := ('cinco');

Saludos.
Responder Con Cita
  #6  
Antiguo 21-01-2009
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 21
Chris Va por buen camino
Cita:
Empezado por noob Ver Mensaje
@D&W

Creo que para añadir elementos a la lista sería así:
Código Delphi [-]elementos.Add := ('uno'); elementos.Add := ('dos'); elementos.Add := ('tres'); elementos.Add := ('cuatro'); elementos.Add := ('cinco');


Saludos.
No es necesario escribir tantas líneas.
Si no funciona con el código que escribí anteriormente, que realmente no estoy seguro:
Código Delphi [-]
elementos.text := 'uno,dos,tres,cuatro,cinco'; // enumerar todos los posibles casos
Entonces, solo hay que hacer una ligera modificación. Que con éste código si estoy seguro de que funciona.
Código Delphi [-]
elementos.text := StringReplace('uno,dos,tres,cuatro,cinco', ',', #13#10); // enumerar todos los posibles casos
Saludos.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
Respuesta



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
Conectar una db con otra pero estando en un pc diferente pero en red solram MySQL 0 04-07-2007 22:41:32
CASE o IFF en SQL dark_c SQL 3 13-01-2007 20:07:33
Comparar cadenas de caracteres sacadas de un fichero papulo Varios 20 22-12-2006 14:43:33
Uso del Case IVAND SQL 4 05-04-2006 17:39:48
Como el SUM pero con caracteres casandra SQL 5 15-08-2005 23:39:33


La franja horaria es GMT +2. Ahora son las 08:22:57.


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