Fórum Comparar String com Char #371947

03/07/2009

0

Aqui na empresa estamos com um pequeno desafio.

Temos uma string de tamanho 1. E precisamos verificar se nela existe ´A´ ou ´R´.

Um amigo mostrou uma solução:
Pos(String, ´A, R´) > 0


Achei interessante. Funciona, mas existe outra(s) maneira(s) de se verificar isso!? o delphi entende [b:d1cf22b16d]´A´[/b:d1cf22b16d] como um Char e não uma string.


.lg.

.lg.

Responder

Posts

03/07/2009

Osocram

se é uma string de tamanho 1 então ou ela é A ou R ou qualquer outro, certo?
pq vc não pode comparar assim?
if string=´A´ or string=´R´ then


Aqui na empresa estamos com um pequeno desafio. Temos uma string de tamanho 1. E precisamos verificar se nela existe ´A´ ou ´R´. Um amigo mostrou uma solução:
Pos(String, ´A, R´) > 0
Achei interessante. Funciona, mas existe outra(s) maneira(s) de se verificar isso!? o delphi entende [b:5c94cfdc90]´A´[/b:5c94cfdc90] como um Char e não uma string.



Responder

Gostei + 0

03/07/2009

.lg.

este é um que o pessoal aqui não quer fazer (rsrs). Ao todo são 14 letras que procuramos. Ficaria enorme :o

Há outra maneira além das 2 que temos até agora!?
.LG.


Responder

Gostei + 0

03/07/2009

Osocram

ahhh Entendi.. achei que fosse apenas aquelas duas letras...
tenta assim
procedure TForm1.btnClick(Sender: TObject);
var
  Alfabeto : set of ´A´..´Z´;
  letra    :string;
begin
  Alfabeto := [´A´,´R´,´Z´];

  letra := ´B´;
  if letra[1] In Alfabeto then
    ShowMessage(Letra+´ está no alfabeto´)
  else
    ShowMessage(Letra+´ não está no alfabeto´);
end;


Veja que nesse caso tive q passra letra[1], e vc disse que é string de 1, mas se essa string estiver vazia vai dar erro então tem q fazer uma proteção antes.

flw.

este é um que o pessoal aqui não quer fazer (rsrs). Ao todo são 14 letras que procuramos. Ficaria enorme :o Há outra maneira além das 2 que temos até agora!? .LG.



Responder

Gostei + 0

06/07/2009

.lg.

3 maneiras distintas de se resolver, vou ver se com essa maneira tambem os ´cabeça-dura´ daqui do serviço querem aplicar. rsrs. :o

Se houver mais soluções, serão todas bem vindas.
Mais uma vez, muito obrigado!!!

.LG.


Responder

Gostei + 0

06/07/2009

Carlosrm

.lg.;


Acho que estamos trocando seis por meia-dúzia, mas em todos casos veja isso:

Poderia ser uma função que verificasse a pertinência:

function ta_la_char(chartring : string): boolean;
begin
  result := pos(chartring, ´ABCDEFGHIJKXYZ´) > 0;
end;



Eu testei assim, no Delphi 7:

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if (ta_la_char(uppercase(key))) then
     showmessage(´Tá lá a letra ´+uppercase(key)+´ !´);
end;)


carlosrm


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar