Ir para conteúdo

POWERED BY:

Arquivado

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

SerraVentura

Lista de aniversario

Recommended Posts

Galera, o cara vai colocar a lista de aniversariantes do mes em um textarea um embaixo do outroassim:nome1, email1nome2, email2nome3, email3preciso ler esses dados e fazer um loop enviando um email para cada link mudando o nome em cada email enviado, tdos os dados vaum ser puxados de um BD da intranet da empresa, q contem os nomes e emails dos funcionarios....alguem sabe como poderia ler os dados dessa maneira, vindos de um textarea ?vlw!*ja busquei no forum uma solução mais não achei nada...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Request simples. Crie uma matriz usando o Chr(13) como separador e terás cada linha do seu TextArea como sendo um "registro" na matriz. Daí é só usar Left e Right para pegar nome e e-mail.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pow consegui entender esse lance de getrows...e tal monta a matriz com os dados de um recordset...vai ser bastante util....mas naum consegui entender como posso utilizar nesse meu problema...depois q eu recuperar os dados do textarea como vou transforma-lo em uma matriz, e como separar com ajuda da virgula...?vlw ae pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que bom que entendeu sobreGetRows, pena que não tem nada a ver com esse caso. :assobiando:

 

Um exemplo do que você vai ter fazer:

ListaAniversarios=Request("CampoTextArea")
If InStr(ListaAniversarios,vbcrlf)<>0 Then
MatrizAniversarios=Split(ListaAniversarios,vbcrlf)
For x=LBound(MatrizAniversarios) to UBound(MatrizAniversarios)
Response.Write("Nome do Aniversariante: "& Left(MatrizAniversarios(x),InStr(MatrizAniversarios(x),",")-1))
Response.Write("E-mail do Aniversariante: "& Right(MatrizAniversarios(x),InStr(MatrizAniversarios(x),",")+1) &"<br>")
Next
End If

Isso vai listar por linha cada um. É só colocar no For a sua rotina para enviar e-mails.

Compartilhar este post


Link para o post
Compartilhar em outros sites

' recupera o conteudo

ListaAniversarios=Request("CampoTextArea")

' verifica se existe ENTER no conteudo (se esta vazio ou cheio)

If InStr(ListaAniversarios,vbcrlf)<>0 Then

 

'coloca em um array cada string depois do ENTER

MatrizAniversarios=Split(ListaAniversarios,vbcrlf)

 

For x=LBound(MatrizAniversarios) to UBound(MatrizAniversarios)

Response.Write("Nome do Aniversariante: "& Left(MatrizAniversarios(x),InStr(MatrizAniversarios(x),",")-1))

Response.Write("E-mail do Aniversariante: "& Right(MatrizAniversarios(x),InStr(MatrizAniversarios(x),",")+1) &"<br>")

Next

End If

hehehe...vlw a pela ajuda....

 

Agora nuam entendi como funciona o LBound e o UBound...e como cada campo é identificado?

 

tipo

_______________

|nome1 | email1 |

|nome2 | email2 |

|nome3 | email3 |

|nome3 | email3 |

---------------------

 

como é identificado por exemplo o nome1 e o email3 ? como seria?

 

 

e esse -1 do left seria pra falar q é antes da virgula q deve ser capturado?

e o +1 o contrario?

 

vlw ae...

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

' recupera o conteudo

ListaAniversarios=Request("CampoTextArea")

' verifica se existe ENTER no conteudo (se esta vazio ou cheio)

If InStr(ListaAniversarios,vbcrlf)<>0 Then

 

'coloca em um array cada string depois do ENTER

MatrizAniversarios=Split(ListaAniversarios,vbcrlf)

 

For x=LBound(MatrizAniversarios) to UBound(MatrizAniversarios)

Response.Write("Nome do Aniversariante: "& Left(MatrizAniversarios(x),InStr(MatrizAniversarios(x),",")-1))

Response.Write("E-mail do Aniversariante: "& Right(MatrizAniversarios(x),InStr(MatrizAniversarios(x),",")+1) &"<br>")

Next

End If

 

hehehe...vlw a pela ajuda....

 

Agora nuam entendi como funciona o LBound e o UBound...e como cada campo é identificado?

 

tipo

_______________

|nome1 | email1 |

|nome2 | email2 |

|nome3 | email3 |

|nome3 | email3 |

---------------------

 

como é identificado por exemplo o nome1 e o email3 ? como seria?

 

 

e esse -1 do left seria pra falar q é antes da virgula q deve ser capturado?

e o +1 o contrario?

 

vlw ae...

Boa, segue os comentários na parte que você não entendeu, fiz também uma pequena correção:
'Um laço de repetição que vai do 1º indice da matriz (LBound), por padrão é 0(zero) até o último indice (UBound)

 

For x=LBound(MatrizAniversarios) to UBound(MatrizAniversarios)

'A função Left pega o número de caracteres indicados de uma determinada variável da Esquerda para a Direita. Nesse caso específico utilizou-se em conjunto com a função InStr, que retorna a posição de um determinado caractere numa variavel, para "pegar" a posição da virgula (que foi apresentada como separador nome,email) e reduzir uma posição para que a mesma não seja apresentada.

Response.Write("Nome do Aniversariante: "& Left(MatrizAniversarios(x),InStr(MatrizAniversarios(x),",")-1))

'A função Mid pega o número de caracteres indicados de uma determinada variável à partir de uma posição passada. Nesse caso específico utilizou-se em conjunto com a função InStr, que retorna a posição de um determinado caractere numa variavel, para "pegar" a posição da virgula (que foi apresentada como separador nome,email) e acrescer uma posição para que a mesma não seja apresentada e como numero de caracteres utilizou-se a função Len para pegar a quantidade total de caracteres da "linha" atual da matriz. Vale resaltar que caso o final da linha seja alcançada a função Mid retorna até ela.

Response.Write("E-mail do Aniversariante: "& Mid(MatrizAniversarios(x),InStr(MatrizAniversarios(x),",")+1,Len(MatrizAniversario(x))) &"<br>")

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.