Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

neutrinhaWEB

[Resolvido] Procurar substrings repetidas numa string - problemas

Recommended Posts

olá galera,

estou tentando fazer o seguinte com o script que segue abaixo - procurar emails repetidos na variável EmailsClientes (que contém uma lista grande de emails, separados por ";"), se achar substitui a primeira ocorrência por espaços. No entanto esse script que montei não funciona de jeito nenhum. Ele localiza as ocorrências repetidas, substitui por espaço, mas todos os emails que estão à esquerda desta ocorrência são perdidos. Já perdi um tempão tentando resolver essa meleca, se alguém puder me ajudar...

 

for j=1 to rs.recordcount

   if EmailsClientes="" then
	  EmailsClientes=rs("EmailComCad")&";"
   else
	  EmailsClientes=EmailsClientes&rs("EmailComCad")&";"
   end if
				rs.MoveNext

next

EmailsClientes=LCase(EmailsClientes)

EmailsClientes=Replace(EmailsClientes,";;",";"&vbCr)
EmailsClientes=Replace(EmailsClientes,";;",";"&vbCr)
EmailsClientes=Replace(EmailsClientes,",",";"&vbCr)
EmailsClientes=Replace(EmailsClientes,"/",";"&vbCr)
EmailSplit=Split(EmailsClientes,";")

Contagem=UBound(EmailSplit) - LBound(EmailSplit)

'não consegui fazer funcionar a parte abaixo, que serviria para descartar os emails repetidos!
i=0
if Contagem+1>=1 then
   for i=0 to Contagem
	  AchouEmail=0
	  EmailRepetido=0

	  AchouEmail=InStr(EmailsClientes,EmailSplit(i))
	  response.write "<font color=red><br>EmailSplit():</font>"&EmailSplit(i)&"<br>"

	  if AchouEmail>0 then
		 EmailRepetido=InStr(AchouEmail+1,EmailsClientes,EmailSplit(i),1)
		 if EmailRepetido>0 then
			Tamanho=len(EmailSplit(i))
'		   response.write " <font color=red><br>Tamanho EmailSplit():</font>"&Tamanho&"<br>"
			EmailsClientes=Replace(EmailsClientes,EmailSplit(i),Space(Tamanho),1,1,1)
		 end if
	  end if
   next
end if

valeuuuuuuu :rolleyes:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara.. aplique essa lógica....

 

Já que você criou um array de dados com o Split na variavel... você vai procurando o e-mail repetido... e jogando os e-mails já verificados em outra variavel.. tb separador por ";"...

 

Se você achar um e-mail repetido... você apenas não adiciona ele á nova variável..... ao invés de colocar espaços...

 

Abraços..

Compartilhar este post


Link para o post
Compartilhar em outros sites

pra quem quiser consultar futuramente:

 

script para procurar uma ocorrência repetida numa string e eliminá-la desta string:

for j=1 to rs.recordcount

   if EmailsClientes="" then
	  EmailsClientes=rs("EmailComCad")&";"
   else
	  EmailsClientes=EmailsClientes&rs("EmailComCad")&";"
   end if
				rs.MoveNext

next

EmailsClientes=LCase(EmailsClientes)
EmailSplit=Split(EmailsClientes,";")
Contagem=UBound(EmailSplit) - LBound(EmailSplit)

'o script abaixo serve para procurar uma ocorrência repetida numa string e eliminá-la desta string:
i=0
if Contagem+1>=1 then
   for i=0 to Contagem
	  AchouEmail=0
	  EmailRepetido=0

	  AchouEmail=InStr(ListaFinal,trim(EmailSplit(i)))
'	  response.write "<font color=red><br>EmailSplit():</font>"&EmailSplit(i)&"<br>"

	  if AchouEmail=0 then
		 ListaFinal=ListaFinal&EmailSplit(i)&";<br>"
	  else
'		 response.write "<br>email repetido:"& EmailSplit(i)
	  end if
   next
end if

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.