If com In (existe?)

Delphi

13/11/2006

Ola Pessoal.. uma perguntinha..
existe condições de fazer o ´if´.. com um ´in´ ..ou coisa parecida...
tipo:
if querycodigos ´in´ ´variavel´ then begin

tem como??

estou no aguardo..obrigado..


Thiago Coleti

Thiago Coleti

Curtidas 0

Respostas

Massuda

Massuda

13/11/2006

Existir, existe. Por exemplo:
const
  CaracteresVálidos = [´A´..´Z´, ´a´..´z´, ´0´..´9´];
var
  C: Char;
...
  if C in CaracteresVálidos then 
    // C é um caractere válido
  else
    // C é um caractere inválido
Note que o [b:4087822c9f]in[/b:4087822c9f] só se aplica a [b:4087822c9f]set[/b:4087822c9f]s (conjuntos). Um [b:4087822c9f]set[/b:4087822c9f] reúne valores ordinais ou enumerados.

Mas provavelmente não é isso que você deseja.

Se quiser testar se uma string está contida em outra, use a função Pos.


GOSTEI 0
Thiago Coleti

Thiago Coleti

13/11/2006

Olá Massuda..
o q eu quero é comparar uma valor de um campo de uma query com os valores de uma váriavel..
ex:
tenho a variavel codigos(string) com os valores: ´100´,´200´,´300´

quero verificar se o valor do campo da query está dentro desses numeros...
if querycampocodigo.value in codigos then <executa>


sera q funfa???
valew


GOSTEI 0
Massuda

Massuda

13/11/2006

[b:260e4ce1c4]set[/b:260e4ce1c4]s só trabalham com números (ordinais ou enumerações) dentro de uma faixa limitada de valores, não trabalham com strings.

Uma possibilidade (não testei) seria fazer...
if querycampocodigo.AsInteger in [100, 200, 300] then <executa>



GOSTEI 0
Thiago Coleti

Thiago Coleti

13/11/2006

Olá Massuda... naum consegui fazer funcionar naum...

eu criei uma variavel string q em um looping em um campo string de uma tabela eu coloco os valores nela(variavel)... no caso 00100, 00200, 00300

eu presciso comparar com um campo da query q é string.... e até agora nada....

alguma idéia?


GOSTEI 0
Dopi

Dopi

13/11/2006

Use o [b:434e517851]POS[/b:434e517851] para saber se a Sub-String que vc procura está dentro do ´conjunto´ (String)

Primeiro crie a váriavel [b:434e517851]codigo [/b:434e517851]separando os valores válidos usando um ´separador´ qualquer... Exemplo, usando ´|´ como separador

Codigo := "100|200|400|300" ;
if pos(querycampocodigo.value,codigos) > 0 then <executa> 



GOSTEI 0
Thiago Coleti

Thiago Coleti

13/11/2006

Dopi..valew pela ajuda... o POS resolveu meu problema aki...
Massuda..obrigado pela ajuda. tmb.... não conhecia a relacão do If com o In..
valew galera..


GOSTEI 0
POSTAR