Clique para saber mais...
  Home     Download     Produtos / Cursos     Revista     Vídeo Aulas     Fórum     Contato   Clique aqui para logar | 12 de Junho de 2026
  Login

Codinome
Senha
Salvar informações

 Esqueci minha senha
 Novo Cadastro

  Usuários
114 Usuários Online

  Revista ActiveDelphi
 Assine Já!
 Edições
 Sobre a Revista

  Conteúdo
 Apostilas
 Artigos
 Componentes
 Dicas
 News
 Programas / Exemplos
 Vídeo Aulas

  Serviços
 Active News
 Fórum
 Produtos / Cursos

  Outros
 Colunistas
 Contato
 Top 10

  Publicidade

  [Artigos]  Definindo conjuntos de dados em Delphi
Publicado por rboaro : Terça, Janeiro 22, 2013 - 08:16 GMT-3 (491 leituras)
Comentários 4 Comentários   Enviar esta notícia a um amigo Enviar para um amigo   Versão para Impressão Versão para impressão
Diego Garcia Vamos ver agora os conjuntos de tipos de dados usando Set Of. O set of permite você definir uma especie de range de algum tipo de dado (caracter, inteiro ou enumeration), por exemplo, um conjunto de 1 até 50 poderia ser declarado da seguinte maneira:
var
MeuConjunto : Set of 1..50;
Com esta declaração estamos criando uma variável de conjunto que pode receber até 256 valores que estejam dentro do intervalo pré-definido. Desta forma seria possível validar se um determinado numero está dentro deste conjunto:
MeuConjunto := [1..10,15,30..50];
if 6 in MeuConjunto then
ShowMessage('Está no conjunto')
else
ShowMessage('Não está no conjunto');

Este comando apresentaria a mensagem Está no conjunto, caso a validação fosse com um valor que está fora deste range, como por exemplo o numero 20, a mensagem seria Não está no conjunto.
Outra forma bem interessante de usar o Set Of é com tipos enumerados (enumerations):

type
TDiasSemana = (Domingo, Segunda, Terca, Quarta, Quinta, Sexta, Sabado);

var
DiasExpediente : Set of TDiasSemana;
begin
DiasExpediente := [Segunda..Sexta];
if Domingo in DiasExpediente then
ShowMessage('É dia de trabalhar')
else
ShowMessage('Folga!');

Com o código acima, basicamente determinamos um intervalo de valores compatíveis com o nosso tipo enumerado e validamos se um determinado valor estava dentro deste intervalo, é claro este valor deve ser de um tipo compatível com os valores do conjunto. Como Domingo não está dentro do intervalo da variável DiasExpediente, será apresentada a mensagem Folga!. Esta validação também poderia ser feita desta forma:

const
FIM_DE_SEMANA : Set of TDiasSemana = [Sabado, Domingo];
begin
if Segunda in FIM_DE_SEMANA then
ShowMessage('Folga!')
else
ShowMessage('Dia de trabalhar');

Como Segunda não esta no conjunto FIM_DE_SEMANA, será apresentada a mensagem Dia de trabalhar.
Existem algumas operações que podem ser feitas com conjuntos definidos com o Set Of, como por exemplo:

+ : Retorna a união entre dois conjuntos.
- : Retorna todos os dados do primeiro conjunto menos os dados do segundo conjunto.
* : Retorna os dados que forem comum entre os dois conjuntos.
=, <> : Valida se os dois conjuntos contenham os mesmo elementos ou não.
<= : Valida se o primeiro conjunto é um subconjunto do segundo.
>= : Valida se o segundo conjunto é um subconjunto do primeiro.
Vale a pena se aprofundar no assunto.


Comentários Comentários
   Ordem:  
Comentários pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos.


por: karlosrapanui (karlosrapanui@hotmail.com) : Jan 22, 2013 - 08:46
(Informações sobre o membro | Enviar uma mensagem)
Poderia ser assim ????

if not Domingo in DiasExpediente then
ShowMessage('Folga!'
else
ShowMessage('É dia de trabalhar')


por: marcoantoneo (marco@pgm.com.br) : Jan 22, 2013 - 06:06
(Informações sobre o membro | Enviar uma mensagem)
boa tarde. parabéns pelo artigo esclareceu mtas formas q eu via de declaração de conjuntos mas q eu não compreendia mto beim.

Mas no inicio vc cita:
'MeuConjunto : Set of 1..50;
Com esta declaração estamos criando uma variável de conjunto que pode receber até 256 valores que estejam '

pergunto: Como vai aceitar até 256 valores se o período informado eh de 1 a 50?

obg pela atenção
  Edição 112

Revista ActiveDelphi

  50 Programas Fontes


  Produtos

Conheça Nossos Produtos

Copyright© 2001-2016 – Active Delphi – Todos os direitos reservados