Ir para conteúdo

POWERED BY:

Arquivado

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

ricardo coelho designer

[Resolvido] Identificar e-mail em base TXT e deixar em vermelho

Recommended Posts

Pessoal boa tarde

 

Estou uma dúvida cruel ou melhor duas, bom vamos lá:

 

Estou utilizando o código abaixo para ler arquivo txt no qual os dados estão separados por (;) até aqui tudo bem consigo ler o conteúdo sem problemas só não consigo entender como faço para ele ler o somente o endereço de e-mail (não os outros dados como no e idade) e quando não estiver certo deixa ele em vermelho ex: nome@site (identificando esse e-mail incorreto ele fica vermelho)

 

 

<table width="59%" border="0" cellpadding="3" cellspacing="1" bgcolor="#000000">
<tr nowrap bgcolor="#FFFFFF">
 <td width="28%">Quantidade:</td>
 <td width="28%">Nome:</td>
 <td width="11%">Idade:</td>
 <td width="61%">Email:</td>
</tr>

<%'Abrindo o arquivo TXT com o método OpenTextFile
set obj = fso.OpenTextFile(server.MapPath(Arquivo), 1)
'Listando os dados do txt (linha por linha) até o fim do arquivo
While obj.AtEndOfStream = false
response.write("<tr nowrap bgcolor=""#FFFFFF"">")&vbCrlf
Arr = NOK
linha = obj.ReadLine ' ReadLine é o método que lê cada linha do txt
'---
Arr = split(linha,";")' Dividindo cada linha por; (ponto e vírgula)
for x = lbound(Arr) to ubound(Arr) ' Loop para criar as colunas <td> dentro das linhas <tr>

response.write(" <td>"&Arr(x)&"</td>")
next
'---
response.write("</tr>"&vbCrlf)
Wend
'---
'Fechando os objetos
set obj = nothing
set fso = nothing%>
</table>
<%else%>
<%response.write("O Arquivo <b>"&Arquivo&"</b> não foi encontrado!")
End if%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim:

<table width="59%" border="0" cellpadding="3" cellspacing="1" bgcolor="#000000">
<tr nowrap bgcolor="#FFFFFF">
<td width="28%">Quantidade:</td>
<td width="28%">Nome:</td>
<td width="11%">Idade:</td>
<td width="61%">Email:</td>
</tr>

<%'Abrindo o arquivo TXT com o método OpenTextFile
set obj = fso.OpenTextFile(server.MapPath(Arquivo), 1)
'Listando os dados do txt (linha por linha) até o fim do arquivo
While obj.AtEndOfStream = false
response.write("<tr nowrap bgcolor=""#FFFFFF"">")&vbCrlf
Arr = NOK
linha = obj.ReadLine ' ReadLine é o método que lê cada linha do txt
'---
Arr = split(linha,";")' Dividindo cada linha por; (ponto e vírgula)

If (validaEmail(Arr(ubound(Arr-1))) = False) Then
	response.write(" <td><span style=""color:#FF0000"">"&Arr(ubound(Arr-1))&"</span></td>")
Else
	response.write(" <td>"&Arr(ubound(Arr-1))&"</td>")	
End If

'---
response.write("</tr>"&vbCrlf)
Wend
'---
'Fechando os objetos
set obj = nothing
set fso = nothing%>
</table>
<%else%>
<%response.write("O Arquivo <b>"&Arquivo&"</b> não foi encontrado!")
End if%>

 

Não esqueça de pegar a função de validar e-mail no Laboratório de Scripts.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara em primeiro lugar muito obrigado pela sua dica, mas estou apanhando violentamente do código estou perdido veja abaixo o que estou fazendo:

 

<table width="59%" border="0" cellpadding="3" cellspacing="1" bgcolor="#000000">
<tr nowrap bgcolor="#FFFFFF">
<td width="28%">Quantidade:</td>
<td width="28%">Nome:</td>
<td width="11%">Idade:</td>
<td width="61%">Email:</td>
</tr>

<%
'-----------------------------------------------------
'Funcao: IsEmail(ByVal strEmail)
'Sinopse: Verifica se o valor passado é um Email válido
'Parametro: strEmail
'Retorno: Booleano
'Autor: Gabriel Fróes - www.codigofonte.com.br
'-----------------------------------------------------
Function IsEmail(ByVal strEmail)
	Dim regEx
	Dim ResultadoHum
	Dim ResultadoDois
	Dim ResultadoTres
	Set regEx = New RegExp			' Cria o Objeto Expressão
	regEx.IgnoreCase = True		 ' Sensitivo ou não
	regEx.Global = True			 ' Não sei exatamente o que faz

	' Caracteres Excluidos
	regEx.Pattern	= "[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1"
	ResultadoHum	= RegEx.Test(strEmail)
	' Caracteres validos
	regEx.Pattern	= "@[\w\-]+\."
	ResultadoDois	= RegEx.Test(strEmail)
	' Caracteres de fim
	regEx.Pattern	= "\.[a-zA-Z]{2,3}$"
	ResultadoTres	= RegEx.Test(strEmail)
	Set regEx = Nothing%>

<%
'Abrindo o arquivo TXT com o método OpenTextFile
set obj = fso.OpenTextFile(server.MapPath(Arquivo), 1)
'Listando os dados do txt (linha por linha) até o fim do arquivo
While obj.AtEndOfStream = false
response.write("<tr nowrap bgcolor=""#FFFFFF"">")&vbCrlf
Arr = NOK
linha = obj.ReadLine ' ReadLine é o método que lê cada linha do txt
'---
Arr = split(linha,";")' Dividindo cada linha por; (ponto e vírgula)
'#################################################################


'###############################################################
If (IsEmail(Arr(ubound(Arr-1))) = False) Then
	response.write(" <td><span style=""color:#FF0000"">"&Arr(ubound(Arr-1))&"</span></td>")
Else
	response.write(" <td>"&Arr(ubound(Arr-1))&"</td>")
End If

'---
response.write("</tr>"&vbCrlf)
Wend
'---
'Fechando os objetos
set obj = nothing
set fso = nothing%>
</table>
<%else%>
<%response.write("O Arquivo <b>"&Arquivo&"</b> não foi encontrado!")
End if%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

você não finalizou a função com End Function e colocou um <% logo após ela.

 

Pelo visto você não copiou o código corretamente. Dê uma olhada no tópico e copie novamente da forma que está lá.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara não deu certo veja como fiz:

 

<%
 Function ValidarEmail(EMail)
		Dim Busca

 ValidarEmail = true

		If Len(EMail) < 6 Then
			  ValidarEmail = False
		Else
			  Busca = InStr(2, EMail, "@")
			  If Busca = 0 Then
					ValidarEmail = False
			  Else
					Busca = InStr(Busca + 2, EMail, ".")
					If Busca = 0 Then
						  ValidarEmail = False
					Else
						  If CInt(Busca) + 1 > Len(EMail) Then
								ValidarEmail = False
						  End If
					End If
			  End If
		End If
  End Function
%>



<%
'Abrindo o arquivo TXT com o método OpenTextFile
set obj = fso.OpenTextFile(server.MapPath(Arquivo), 1)
'Listando os dados do txt (linha por linha) até o fim do arquivo
While obj.AtEndOfStream = false
response.write("<tr nowrap bgcolor=""#FFFFFF"">")&vbCrlf
Arr = NOK
linha = obj.ReadLine ' ReadLine é o método que lê cada linha do txt
'---
Arr = split(linha,";")' Dividindo cada linha por; (ponto e vírgula)
'#################################################################


'###############################################################
If (ValidarEmail(Arr(ubound(Arr-1))) = False) Then
	response.write(" <td><span style=""color:#FF0000"">"&Arr(ubound(Arr-1))&"</span></td>")
Else
	response.write(" <td>"&Arr(ubound(Arr-1))&"</td>")
End If

'---
response.write("</tr>"&vbCrlf)
Wend
'---
'Fechando os objetos
set obj = nothing
set fso = nothing%>
</table>
<%else%>
<%response.write("O Arquivo <b>"&Arquivo&"</b> não foi encontrado!")
End if%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que não deu certo? Qual o erro? O que acontece?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara ta dando esse erro no código abaixo

 

Tipos incompatíveis

/sitepratike/2009/adm/chacalalbum/importar/txt/teste.asp, line 41

 

<%
Function ValidarEmail(EMail)
		Dim Busca

ValidarEmail = true

		If Len(EMail) < 6 Then
			  ValidarEmail = False
		Else
			  Busca = InStr(2, EMail, "@")
			  If Busca = 0 Then
					ValidarEmail = False
			  Else
					Busca = InStr(Busca + 2, EMail, ".")
					If Busca = 0 Then
						  ValidarEmail = False
					Else
						  If CInt(Busca) + 1 > Len(EMail) Then
								ValidarEmail = False
						  End If
					End If
			  End If
		End If
  End Function
%>



<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
'Abrindo o arquivo TXT com o método OpenTextFile
set obj = fso.OpenTextFile("G:\Inetpub\wwwroot\SITEPRATIKE\2009\adm\chacalalbum\importar\txt\catalogodeendereco.txt", 1)
'Listando os dados do txt (linha por linha) até o fim do arquivo
While obj.AtEndOfStream = false
response.write("<tr nowrap bgcolor=""#FFFFFF"">")&vbCrlf
Arr = NOK
linha = obj.ReadLine ' ReadLine é o método que lê cada linha do txt
'---
Arr = split(linha,";")' Dividindo cada linha por; (ponto e vírgula)

If (ValidarEmail(Arr(ubound(Arr-1))) = False) Then
	response.write(" <td><span style=""color:#FF0000"">"&Arr(ubound(Arr-1))&"</span></td>")
Else
	response.write(" <td>"&Arr(ubound(Arr-1))&"</td>")
End If

'---
response.write("</tr>"&vbCrlf)
Wend
'---
'Fechando os objetos
set obj = nothing
set fso = nothing%>
</table>

<%response.write("O Arquivo <b>"&Arquivo&"</b> não foi encontrado!")	 %>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Altere essa parte do código:

Arr = split(linha,";")' Dividindo cada linha por; (ponto e vírgula)

If (ValidarEmail(Arr(ubound(Arr-1))) = False) Then
	response.write(" <td><span style=""color:#FF0000"">"&Arr(ubound(Arr-1))&"</span></td>")
Else
	response.write(" <td>"&Arr(ubound(Arr-1))&"</td>")
End If

Para:

Arr = split(linha,";")' Dividindo cada linha por; (ponto e vírgula)
response.write("<td>")
If isArray(Arr) Then
	
	If (ValidarEmail(Arr(ubound(Arr-1))) = False) Then
		response.write("<span style=""color:#FF0000"">"&Arr(ubound(Arr-1))&"</span>")
	Else
		response.write(Arr(ubound(Arr-1)))
	End If
End If
response.write("</td>")

Poste o resultado. Mas não precisa postar o código inteiro. Poste se a linha que deu erro e a mensagem de erro (caso isso venha acontecer)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Altera aí:

If (ValidarEmail(Arr(ubound(Arr-1))) = False) Then
		response.write("<span style=""color:#FF0000"">"&Arr(ubound(Arr-1))&"</span>")
	Else
		response.write(Arr(ubound(Arr-1)))
	End If

Para

If (ValidarEmail(Arr(ubound(Arr)-1)) = False) Then
		response.write("<span style=""color:#FF0000"">"&Arr(ubound(Arr-1))&"</span>")
	Else
		response.write(Arr(ubound(Arr)-1))
	End If

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz mais uma peque alteração no código, porém tem 2 coisas que estão acontecendo que não estou entendendo:

1) os dados que refere-se a segunda coluna (idade) é que está aparecendo, e está imprimindo na coluna nome, idade, e-mail

2) como faço por exemplo se o e-mail estiver na terceira coluna Nome | Idade | e-mail, não consegui entender o raciocinio

 

Abaixo segue código

 

'---
Arr = split(linha,";")' Dividindo cada linha por; (ponto e vírgula)
for x = lbound(Arr) to ubound(Arr)

If (ValidarEmail(Arr(ubound(Arr)-1)) = False) Then
	response.write(" <td><span style=""color:#FF0000"">"&Arr(ubound(Arr)-1)&"</span></td>")
Else
	response.write(" <td>"&Arr(ubound(Arr)-1)&"</td>")
End If
next
'---
response.write("</tr>"&vbCrlf)
Wend

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ubound retorna o tamanho do vetor. Retira o -1 . Tenta somente Arr(ubound(Arr))

 

If (ValidarEmail(Arr(ubound(Arr))) = False) Then
	response.write(" <td><span style=""color:#FF0000"">"&Arr(ubound(Arr)-1)&"</span></td>")
Else
	response.write(" <td>"&Arr(ubound(Arr))&"</td>")
End If

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hargon, tentei de tudo mas nas linhas só parece o e-mail, ele até deixa em vermelho os e-mails errado mas as colunas que tenho é Nome, idade, e-mail

precisava que no response.write ele me retornasse cada coluna com tres dados e não somente com e-mail, não tenho muito conhecimento em asp, e agradeço antes de mais nada por sua atenção.

 

 

If (ValidarEmail(Arr(ubound(Arr))) = False) Then
	response.write(" <td><span style=""color:#FF0000"">"&Arr(ubound(Arr)-1)&"</span></td>")
Else
	response.write(" <td>"&Arr(ubound(Arr))&"</td>")
End If

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rs... Entendi que você tivesse falado que queria retornar somente e-mail.

 

Estou utilizando o código abaixo para ler arquivo txt no qual os dados estão separados por (wink.gif até aqui tudo bem consigo ler o conteúdo sem problemas só não consigo entender como faço para ele ler o somente o endereço de e-mail (não os outros dados como no e idade) e quando não estiver certo deixa ele em vermelho

Para listar tudo faça assim:

 

If (cInt(x) = cInt(uBound(Arr))) Then
	If (ValidarEmail(Arr(ubound(Arr)-1)) = False) Then
		response.write(" <td><span style=""color:#FF0000"">"&Arr(ubound(Arr)-1)&"</span></td>")
	Else
		response.write(" <td>"&Arr(ubound(Arr)-1)&"</td>")
	End If
Else
	response.write(" <td>"&Arr(x)&"</td>")
End If

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rs... Entendi que você tivesse falado que queria retornar somente e-mail.

 

Estou utilizando o código abaixo para ler arquivo txt no qual os dados estão separados por (wink.gif até aqui tudo bem consigo ler o conteúdo sem problemas só não consigo entender como faço para ele ler o somente o endereço de e-mail (não os outros dados como no e idade) e quando não estiver certo deixa ele em vermelho

Para listar tudo faça assim:

 

If (cInt(x) = cInt(uBound(Arr))) Then
	If (ValidarEmail(Arr(ubound(Arr)-1)) = False) Then
		response.write(" <td><span style=""color:#FF0000"">"&Arr(ubound(Arr)-1)&"</span></td>")
	Else
		response.write(" <td>"&Arr(ubound(Arr)-1)&"</td>")
	End If
Else
	response.write(" <td>"&Arr(x)&"</td>")
End If

 

Argon em primeiro lugar quero agradecer pela paciência que teve em me mostrar o caminho, abaixo vou disponibilizar o código complelo, para outras pessoas que precisarem identificar e-mail errado através da cor, pegando a base de dados de um txt. Agradeço em nome de todos os usuários do forum.

 

<%@LANGUAGE="VBSCRIPT"%>
<%'Desenvolvido por D.eleete - http://www.deleete.kit.net - ICQ#37784213
'Este script é de uso livre, e se for mantido em sua forma original, favor conservar os créditos.
'Nome do Arquivo txt, deve estar no mesmo diretório que o script
Arquivo = Request.QueryString ("arquivo")
'Setando o objeto principal
set fso = server.CreateObject("Scripting.FileSystemObject")
'Verificando se o arquivo existe ou não (ok ou nok)
if fso.FileExists(server.MapPath(Arquivo)) = true then
vExiste = "ok"
else
vExiste = "nok"
End if%>
<html>
<head>
<title>Manipulando TXTs</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<%'Caso o arquivo exista, executa os parametros abaixo
if vExiste = "ok" then%>

<%' soma a quantidade de cadastros
Set FSO = Server.CreateObject("Scripting.FileSystemObject")

Set TXT = FSO.OpenTextFile(server.MapPath(Arquivo))
'cria o objeto, e busca pelo TXT indicado pela variável caminho como acima
Total = 0
Do While Not TXT.AtEndOfStream
Linha = TXT.readline
Total = Total + 1
Loop
set TXT = nothing
Set Obj_Arqtxt = nothing%><bR><bR>

<FORM METHOD="Post" ENCTYPE="multipart/form-data" ACTION="txt_importa_le.asp?sid=1" onsubmit="return ValidaPagina(this);" name="envarq">
<table width="50%" border="0" align="left" bgcolor="#EFEFEF" class=t2>
<tr bgcolor="#CCCCCC"><th colspan="2">Para ler outro arquivo clique em procurar e selecione o arquivo desejado.</th></tr>
<tr>
<td><b>Localizar: </b></td>
<td height="42"><input type="file" name="arq" size="35"></td>
<tr><td colspan="2" align=center><input type="submit" value="Enviar" name="enviar"></td></tr>
</table>
</FORM><br><br><br><br><br><br>


<table width="59%" border="0" cellpadding="3" cellspacing="1" bgcolor="#000000">
<tr nowrap bgcolor="#FFFF99">
 <td colspan ="3" width="28%">
Você está visualizando a tabela <b><%=Arquivo%></b>  |
<a href="txt_editor.asp?arquivo=<%=Arquivo%>">Clique aqui para editar</a> |
<a href="txt_import_bd_excluir.asp?arquivo=<%=Arquivo%>">Clique aqui para Excluir</a><br>

 <%Response.Write ("total de cadastrados <b>"&Total&"</b>.")%></td>
</tr>
<tr nowrap bgcolor="#FFFFFF">
 <td width="28%">Nome:</td>
 <td width="11%">Email:</td>
 <td width="61%">Idade:</td>
</tr>
<%
Function ValidarEmail(EMail)
		Dim Busca

ValidarEmail = true

		If Len(EMail) < 6 Then
			  ValidarEmail = False
		Else
			  Busca = InStr(2, EMail, "@")
			  If Busca = 0 Then
					ValidarEmail = False
			  Else
					Busca = InStr(Busca + 2, EMail, ".")
					If Busca = 0 Then
						  ValidarEmail = False
					Else
						  If CInt(Busca) + 1 > Len(EMail) Then
								ValidarEmail = False
						  End If
					End If
			  End If
		End If
  End Function
%>
<%'Abrindo o arquivo TXT com o método OpenTextFile
set obj = fso.OpenTextFile(server.MapPath(Arquivo), 1)
'Listando os dados do txt (linha por linha) até o fim do arquivo
While obj.AtEndOfStream = false
response.write("<tr nowrap bgcolor=""#FFFFFF"">")&vbCrlf
Arr = NOK
linha = obj.ReadLine ' ReadLine é o método que lê cada linha do txt
'---
Arr = split(linha,";")' Dividindo cada linha por; (ponto e vírgula)
for x = lbound(Arr) to ubound(Arr) ' Loop para criar as colunas <td> dentro das linhas <tr>

If (cInt(x) = cInt(uBound(Arr)-1)) Then
	If (ValidarEmail(Arr(ubound(Arr)-1)) = False) Then
		response.write(" <td><span style=""color:#FF0000"">"&Arr(ubound(Arr)-1)&"</span></td>")
	Else
		response.write(" <td>"&Arr(ubound(Arr)-1)&"</td>")
	End If
Else
	response.write(" <td>"&Arr(x)&"</td>")
End If
next
'---
response.write("</tr>"&vbCrlf)
Wend
'---
'Fechando os objetos
set obj = nothing
set fso = nothing%>
</table>
<%else%>
<%response.write("O Arquivo <b>"&Arquivo&"</b> não foi encontrado!")
End if%>
</body>
</html>

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.