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 14-06-2012
cone220 cone220 is offline
Miembro
 
Registrado: may 2003
Ubicación: Argentina
Posts: 53
Poder: 22
cone220 Va por buen camino
"in" en sentencia "If"

Estimados, cómo están?
tengo una consulta respecto de la aplicación de la sentencia IN dentro de un If.
Lo que necesito hacer es validar que una variable string se encuentre dentro de una lista de datos.

Para el ejemplo sería:

var vLista, vCadena: string;
begin
vLista := '(0,14,95,96,10,93,21,51,20,8,99,90)';
vCadena := '21';

if vCadena IN vLista then ....
end;

Gracias!!!!!
Responder Con Cita
  #2  
Antiguo 14-06-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Hola, recuerda poner los tags al código fuente, ejemplo:



Gracias


Por cierto, esa variable vLista es una string, igual que vCadena, no es ninguna lista.

Si quieres comprobar una cadena en otra cadena string puedes hacerlo con pos:

Cita:
function Pos ( const Needle, HayStack : string ) : Integer;
Description The Pos function finds the position of one string Needle within another HayStack.

If the string is not found, 0 is returned.

The search is case sensitive.
Y si quieres hacerlo realmente con una lista, el proceso es diferente, acláranos exactamente qué es lo que quieres hacer.
Responder Con Cita
  #3  
Antiguo 14-06-2012
cone220 cone220 is offline
Miembro
 
Registrado: may 2003
Ubicación: Argentina
Posts: 53
Poder: 22
cone220 Va por buen camino
Hola! Gracias por la respuesta.
Tomo nota de los tags

Voy a intentar explicar mejor lo que necesito. En SQL utilizo la sentencia IN para validar si un valor está dentro de una lista de valores. Y quiero utlizar algo similar a la sentencia IN de SQL.

Respecto de usar Pos, al no tener acotados los valores de la lista, debiera generar mas código para validar los strings. Ejemplo: Cadena= 0, lista=0,1,10,20,100, etc
Responder Con Cita
  #4  
Antiguo 14-06-2012
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
Tal vez te sirva esta liga,

http://www.delphibasics.co.uk/RTL.asp?Name=Include

Saludos
Responder Con Cita
  #5  
Antiguo 14-06-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Quizás te interese más un tstringlist y comparar con cada uno de sus items.
O también un array "normal y corriente", mejor incluso.
Responder Con Cita
  #6  
Antiguo 14-06-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
O esto con 'in':
Cita:
In
Example code : Determine whether a character is a letter begin
IsLetter('G'); // G is a letter of the (uppercase) alphabet
IsLetter('1'); // 1 is not a letter
end;

// Test if a character is a letter
procedure TForm1.IsLetter(Letter : char);
var
Alphabet : set of 'A'..'Z';

begin
Alphabet := ['A'..'Z'];

if Letter In Alphabet then
ShowMessage(Letter+' is in the alphabet')
else
ShowMessage(Letter+' is NOT in the alphabet');
end;
Show full unit code G is in the alphabet
1 is NOT in the alphabet


Ordinal expression in Set expression
Description The In keyword tests whether a value is in a set. It returns true if it is, false if not.
Notes Sets are limited to 256 different values. Each element is equated with the Integer values 0,1,2 ... 255

Integer sets map directly to these element values, and are therefore limited to a high value of 255.

However, you may compare a value greater than 255 with an Integer set. Delphi simply uses the lowest byte of the Integer. For example, a test value of 258 would have a lower byte value of 3.

Responder Con Cita
  #7  
Antiguo 14-06-2012
cone220 cone220 is offline
Miembro
 
Registrado: may 2003
Ubicación: Argentina
Posts: 53
Poder: 22
cone220 Va por buen camino
Gracias!!! Voy a probar lo que me indican y luego les cuento.
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
"Me Gusta", "Compartir", "Gracias" movorack La Taberna 4 24-10-2010 14:45:59
El programa se queda "colgado" mientras copia y luego "despierta" NeWsP OOP 5 10-03-2010 22:05:40
"OBJECT OR CLASS TYPE REQUIRED" en "APPLICATION EXENAME" Xavierator Varios 3 27-10-2008 09:09:50
Necesito llamar a métodos de clases "hija" desde su clase "padre" Flecha OOP 17 20-04-2007 00:03:53


La franja horaria es GMT +2. Ahora son las 05:24:30.


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