Ir para conteúdo
Fórum Script Brasil
  • 0

Como fazer Case com String?


LucAlucard

Pergunta

Olá a todos da família script brasil.

Estou aqui hoje para ver se vocês mais uma vez podem me ajudar... Como faço um case com string?

Por exemplo:

case VariavelString of

'a' :

'b' :

'c' :

end;

Encontrei um tal de ansiindexstr que diz é da SysUtils. Mas no Delphi 2010 não consegui achar essa função... Alguém pode me ajudar?

Como faço pra cosneguir fazer um case de String? o.O

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
Estou aqui hoje para ver se vocês mais uma vez podem me ajudar... Como faço um case com string?

Por exemplo:

case VariavelString of

'a' :

'b' :

'c' :

end;

dessa maneira:

procedure TForm1.Button1Click(Sender: TObject);
begin
   case Edit1.Text[1] of
      'A' : showmessage('A');
      'B' : showmessage('B');
      'C' : showmessage('C');
      'D' : showmessage('D');
   else
      ShowMessage('Digite a Letra');
   end;
end;
veja outra maneira de se usar o case
var
  Form1: TForm1;
  myVar : Variant;

implementation

{$R *.DFM}


procedure TForm1.Button1Click(Sender: TObject);
begin
   myVar := 200;
   ShowBasicVariantType(myVar);

   myVar := 'Edit1';
   ShowBasicVariantType(myVar);

   myVar := 120.90;
   ShowBasicVariantType(myVar);

   myVar := strtodate('10/02/1980');
   ShowBasicVariantType(myVar);
end;

procedure TForm1.ShowBasicVariantType(varVar: Variant);
var
  typeString : string;
  basicType  : Integer;

begin
  // chama o tipo basico da variant
  basicType := VarType(varVar) and VarTypeMask;

  // Seta a string para o tipo
  case basicType of
    varEmpty     : typeString := 'varEmpty';
    varNull      : typeString := 'varNull';
    varSmallInt  : typeString := 'varSmallInt';
    varInteger   : typeString := 'varInteger';
    varSingle    : typeString := 'varSingle';
    varDouble    : typeString := 'varDouble';
    varCurrency  : typeString := 'varCurrency';
    varDate      : typeString := 'varDate';
    varOleStr    : typeString := 'varOleStr';
    varDispatch  : typeString := 'varDispatch';
    varError     : typeString := 'varError';
    varBoolean   : typeString := 'varBoolean';
    varVariant   : typeString := 'varVariant';
    varUnknown   : typeString := 'varUnknown';
    varByte      : typeString := 'varByte';
    //varWord      : typeString := 'varWord';
    //varLongWord  : typeString := 'varLongWord';
    //varInt64     : typeString := 'varInt64';
    varStrArg    : typeString := 'varStrArg';
    varString    : typeString := 'varString';
    varAny       : typeString := 'varAny';
    varTypeMask  : typeString := 'varTypeMask';
  end;

  // Mostra o tipo da Variant
  ShowMessage('Variant type  = '+typeString);
end;


OBS: Veja que a variant myVar assumira um tipo basico dependendo do conteudo que lhe for passado

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Mas n tem nem uma forma dele fazer o case com a string inteira mesmo? tem que converter ela em char? só assim?

veja o help do delphi ...

The case statement may provide a readable alternative to deeply nested if conditionals. A case statement has the form

o case é uma forma de substituir o if quando se usa numeros no lugar de strings, para facilitar o desenvolvimento ....

então se quer usar strings voce tem que usar o comando if

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Encontrei um tal de ansiindexstr que diz é da SysUtils. Mas no Delphi 2010 não consegui achar essa função... Alguém pode me ajudar?

Como faço pra cosneguir fazer um case de String? o.O

Olá LucAlucard

na verdade não é da SysUtils e sim da StrUtils

exemplo:

uses StrUtils;

  case AnsiIndexStr(Edit1.Text, ['texto1', 'texto2', 'texto3']) of
    0 :  ShowMessage('texto1');
    1 :  ShowMessage('texto2');
    2 :  ShowMessage('texto3');
    -1 : ShowMessage('nehuma das opções');
  end;

Abs. Progr'amador.

;)

Editado por Progr'amador
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...