Fórum Comparar String com Char #371947
03/07/2009
0
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.
Curtir tópico
+ 0Posts
03/07/2009
Osocram
pq vc não pode comparar assim?
if string=´A´ or string=´R´ then
Pos(String, ´A, R´) > 0
Gostei + 0
03/07/2009
.lg.
Há outra maneira além das 2 que temos até agora!?
.LG.
Gostei + 0
03/07/2009
Osocram
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.
Gostei + 0
06/07/2009
.lg.
Se houver mais soluções, serão todas bem vindas.
Mais uma vez, muito obrigado!!!
.LG.
Gostei + 0
06/07/2009
Carlosrm
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
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)