Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-06-2007
NSL94 NSL94 is offline
Miembro
 
Registrado: abr 2007
Posts: 43
Poder: 0
NSL94 Va por buen camino
Talking sintaxis de select case O___o

Buenas a todos recopilando informacion por el foro llegue a la conclusion de que un select case se escribia mas o menos asi:

select
case a
when 1 then showmessage('1')
when 2 then showmessage('2')
etc...
end

pero escribiendo yo:

select
case tabla1.FieldByName('campo1').AsString
when 'eso' then showmessage('eso')
when 'lootro' then showmessage('lootro')
end

me falla y me dice que me falta un ";" en la linea "case tabla1.FieldByName('campo1').AsString"

Alguien me podria decir cual seria la sintaxis corecta?
Gracias a todos, y que tengais un buen dia... que ya estamos a jueves!!
Responder Con Cita
  #2  
Antiguo 21-06-2007
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Poder: 22
Mick Va por buen camino
Umm que raro, esa sintaxis no se parece a nada que haya visto en delphi XD. La sintaxis correcta es asi:

Código:
case n of
1: ShowMessage('el uno');
2: ShowMessage('el dos');
3: begin
      ShowMessage('el tres');
      ShowMessage('el tres otra vez');
    end;
end;
ATENCION: Solo se puede usar para tipos ordinales (enteros, chars) pero no para cadenas de caracteres, en este caso tendras que usar IFs.

Última edición por Mick fecha: 21-06-2007 a las 11:57:26.
Responder Con Cita
  #3  
Antiguo 21-06-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
la sentencia original "select case" es del lenguaje SQL, usado por ejemplo dentro de un TQuery (en su propiedad sql), en un procedimiento almacenado / disparador, etc.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 21-06-2007
NSL94 NSL94 is offline
Miembro
 
Registrado: abr 2007
Posts: 43
Poder: 0
NSL94 Va por buen camino
xDD con razon no me va.

Con razon me pide punto y comas por todo los sitios xDDD -_-'
Erf eso de saber la logica pero no la sintaxis es lo peor, pero weno al menos esperemos que alguno se haya reido leyendo esta pocas lineas.

En fin para volver al tema, me decis que no existe ninguna manera de hacer 1 select case de Strings? tan solo acepta numericos y chars
Ams... Eske mi madre ya lo decia, niño pa que te complicas la vida, tu usa las herramientas que ya conozcas... Amos que tendre que volver a poner los ifs xDDD
Enga un saludo y gracias, y si a alguien se le ocure como hacer el select case con string que no se corte
---Paz---
Responder Con Cita
  #5  
Antiguo 21-06-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cita:
Empezado por NSL94
Enga un saludo y gracias, y si a alguien se le ocure como hacer el select case con string que no se corte
Ocurrencias tenemos muchas... pero es Delphi quien no lo permite, así que ... donde no hay, no se puede rascar

Pueden ser char, integer y tipos enumerados. Con strings se puede hacer algo... pero en definitiva es un char, por ejemplo:
Código Delphi [-]
var  s:string;
begin 
 s:= 'Mio';
 // "s" se puede interpretar como un array de caracteres, 
// empieza en el índice 1.
Case s[1] of
 'M' : lo que sea;
 's' : lo que sea;
end;

PD: De reirnos nada, todos nos hemos hecho esta pregunta tarde o temprano .

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 22-06-2007
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Poder: 22
Mick Va por buen camino
Hay quien prefiere definir una funcion de este estilo para poder utilizar cases:

Código:
function SearchString(const Str:string; const List:array of string): Integer;
begin
  Result:= High(List);
  while (Result>=0) AND (Str<>List[Result]) do Dec(Result);
end;
Y despues se usaria del siguiente modo:

Código:
 case SearchString( 'gato', [ 'perro', 'gato' ,'serpiente' ]) of
    0: ShowMessage('Es un perro');
    1: ShowMessage('Es un gato');
    2: ShowMessage('Es una serpiente');
   -1: ShowMessage('No conozco ese animal');
 end;
Saludos
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
Problema conuna consulta select...not in (select ...) VRO Firebird e Interbase 2 11-08-2005 08:56:35
5 select de 5 tablas diferentes en un select solo sakuragi SQL 6 15-06-2005 18:57:06
Ejemplo Select Case osmar Firebird e Interbase 4 21-02-2005 18:18:57
Select anidado: Select from (select....) Malon SQL 2 14-10-2004 14:01:24
Select anidado ( Select from select ) Malon Firebird e Interbase 1 05-10-2004 04:14:38


La franja horaria es GMT +2. Ahora son las 06:43:33.


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