Função quot;Está contidoquot; se uma String está dentro da

16/05/2003

1

Prezados amigos,
Como verificar se uma String está contida dentro de outra ou seja se eu tenho a String ´AB´ e vou verificar se ela está dentro da String ´ABCD´ sei que ´AB´ está contido em ´ABCD´ agora se tenho outra String ´AD´ quero verificar se ela está contida em ´ABCD´.
Alguém teria uma Dica ou função que pudesse me ajudar ....

Atenciosamente,

Vinicius


Responder

Posts

16/05/2003

4_olho

Use a finção POS, cuja sintaxe é :

POS(string1,string2);

ela retorna um inteiro, na verdade a posição de string1 dentro de string2


Responder

16/05/2003

Vmotta

Exemplo:

var
str1, str2 : String;
p : integer;
Begin
str1 := ´AB´;
str2 := ´ABCD´;
p := pos(str1,str2); // p passa a valer 1
p := pos(´CD´, str2); // p passa a valer 3
// ou seja, p é a primeira posição encontrada
if p > 0 then // se for 0 é pq não encontrou
ShowMessage(´CD está contido em ´ + str2);
End;


Responder

16/05/2003

Aroldo Zanela

Colega,

Ou o pessoal não entendeu, ou então fui eu que não entendi.

Dá uma olhada aqui:

http://www.forumweb.com.br/index.php?act=ST&f=76&t=1004&s=5c3bc934b53dfcbfcc45c8aace2a3f20


Responder

16/05/2003

Vmotta

function TForm1.EstaContida(Procurar, Expressao: String): Boolean;
var I: Integer;
nChar: Integer;
begin
nChar := 0; //
For I := 1 to Length(Procurar) do
if Pos(Procurar[I], Expressao)>0 then Inc(nChar);
Result := Length(Procurar)=nChar; // Ou seja todos os elementos de procurar existe na string EXPRESSAO independente da posicao
end;

sendo Expressao = ´ABCD´ e Procurar = ´AB´
essa função passada no link acima retornará true se ´A´ e ´B´ estiver contido em Expressao, se Procurar fosse = ´AC´, retornaria true também.
Agora cabe a vc ver qual te ajudaria

t+
Vitor


Responder

16/05/2003

4_olho

Complementando minha mensagem anterior.

Como a função POS retorna um inteiro, podemos dizer que se
POS (string1, string2) é maior que zero, significa que string1 está contida em string2. Caso contrário, se a mesma função retornar zero, significa que string1 NÃO está contida em string2.

No exemplo sugerido POS(´AB´, ´ABCD´) retorna um valor diferente de zero, portanto, AB está contido em ABCD e POS(´AD´, ´ABCD´) retorna zero, portanto não está contido em ABCD.

Como pode perceber considerei o conjunto AB e o conjunto AD e não as letras A e B e A e D.

Desculpem, mas é uma visão matemática. Caso esteja enganado, as soluções apresentadas pelos colegas estão perfeitas.


Responder

16/05/2003

Aroldo Zanela

Prezados amigos, sei que ´AB´ está contido em ´ABCD´ agora se tenho outra String ´AD´ quero verificar se ela está contida em ´ABCD´. Vinicius


vmotta,

Foi isso exatamente o que eu entendi, ou seja, se todos os caracteres estiverem contidos na expressão pesquisada, independente da ordem, deve ser considerado ´contido´.


Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira