Ir para conteúdo

POWERED BY:

Arquivado

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

Bruno Bim

função !!!!

Recommended Posts

Ae pessoal, estou com um probleminha aqui....tenho um banco onde tenho registros que tem algumas palavras com acentos e preciso tira-los, entao a idea é o seguinte, montar uma função que recupero o registro, um por um(dentro de um loop) e substitua por exemplo o "á" por "a" e salva no bancoacho que o replace ajuda nisso mas ai que ta, nao estou conseguindo montar essa função.. alguem pode me ajudar com isso..vlw.. ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

nesse caso eu prefiro usar uma função

 

Function TiraAcento(ByVal Palavra)	cacento = "àáâãäèéêëìíîïòóôõöùúûüÀÁÂÃÄÈÉÊËÌÍÎÒÓÔÕÖÙÚÛÜçÇñÑ^~ºª´`'"	sacento = "aaaaaeeeeiiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcCnN"	texto = ""	If Palavra <> "" Then		For x = 1 To Len(Palavra)			letra = Mid(Palavra, x, 1)			pos_acento = InStr(cacento, letra)			If pos_acento > 0 Then				letra = Mid(sacento, pos_acento, 1)			End If			texto = texto & letra		Next		TiraAcento = texto	End IfEnd Function

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado pela ajuda com a função jonathandj, mas olha só o que acontece,

 

a funçao funcionou certinho, numa boa, mas preciso salvar as alteraçoes dos acento no banco...

 

entao montei um loop para que veja os registros e de um update .. mas ano funcouo, de uma olhada...

 

<%'FUNÇÃO QUE RETIRA OS ACENTOS DAS PALAVRAS'/////////////////////////////////////////Function TiraAcento(ByVal Palavra)	cacento = "àáâãäèéêëìíîïòóôõöùúûüÀÁÂÃÄÈÉÊËÌÍÎÒÓÔÕÖÙÚÛÜçÇñÑ^~ºª´`'"	sacento = "aaaaaeeeeiiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcCnN"	texto = ""	If Palavra <> "" Then		For x = 1 To Len(Palavra)			letra = Mid(Palavra, x, 1)			pos_acento = InStr(cacento, letra)			If pos_acento > 0 Then				letra = Mid(sacento, pos_acento, 1)			End If			texto = texto & letra		Next		TiraAcento = texto	End IfEnd Function'///////////// F I M //////////////////////'/////////////////////////////////////////			SQL="SELECT Nome_tro FROM troca"		set recset = conexao.execute(SQL)				if not recset.eof then					vetLista=recset.getrows				end if		for i=LBound(vetLista,2) to UBound(vetLista,2)			SQL="UPDATE Troca SET Nome_tro='"&TiraAcento(vetLista(0,i))&"'"		next%>

sabe me dizer oq ue pode ser ??, se fiz algo de errado ou alguma coisa que faltou ??

 

valeu... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

não entendi bem o que quer...imagino que seja isso...você tem no banco de dados palavras cadastradas com acentos e você quer uma rotina para retirar todos os acentos da tabela....é isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

já fiz isso em visual basic...vamos ver se consigo te ajudar nessa

 

SQL="SELECT Nome_tro FROM troca"set recset = conexao.execute(SQL)		if recset.eof thenresponse.write("nenhum dado na tabela") elsedo while not recset.eof var = tiraacento(recset("Nome_tro"))SQL2="UPDATE Troca SET Nome_tro='"&var&"' where Nome_tro='"&recset("Nome_tro")&"'"set recset2 = conexao.execute(SQL2)	recset.movenextloopresponse.write("terminou")end if

acho que é por ai o caminho

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae cara, ta estranho pois rodei o codigo abaixo e nao deu erro algum , cai no response do "Terminou"

 

certinho.. mas as palavras no banco continuam com ecentos... o que será??

 

 

 

<%'FUNÇÃO QUE RETIRA OS ACENTOS DAS PALAVRAS'/////////////////////////////////////////Function TiraAcento(ByVal Palavra)	cacento = "àáâãäèéêëìíîïòóôõöùúûüÀÁÂÃÄÈÉÊËÌÍÎÒÓÔÕÖÙÚÛÜçÇñÑ^~ºª´`'"	sacento = "aaaaaeeeeiiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcCnN"	texto = ""	If Palavra <> "" Then		For x = 1 To Len(Palavra)			letra = Mid(Palavra, x, 1)			pos_acento = InStr(cacento, letra)			If pos_acento > 0 Then				letra = Mid(sacento, pos_acento, 1)			End If			texto = texto & letra		Next		TiraAcento = texto	End IfEnd Function'///////////// F I M //////////////////////'/////////////////////////////////////////			SQL="SELECT Nome_tro FROM troca"		set recset = conexao.execute(SQL)				if recset.eof then					response.write ("Nenhum dado na tabela")		else					do while no recset.eof									var = tiraAcento(recset("Nome_tro"))										sql2="update Troca set Nome_tro='"&var&"' Where Nome_tro='"&recset("Nome_tro")&"'"					set recset2=conexao.execute(SQl2)										recset.movenext								loop								response.write ("terminou")				end if	%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz uma verificação do sql

 

 

 

response.write(sql)  'do while not recset.eof var = tiraacento(recset("Nome_tro"))SQL2="UPDATE Troca SET Nome_tro='"&var&"' where Nome_tro='"&recset("Nome_tro")&"'"'set recset2 = conexao.execute(SQL2)	'recset.movenextresponse.write(sql2&"<br>")'loop

perceba que comentei a maioria das linhas para não executar o segundo recordset

Compartilhar este post


Link para o post
Compartilhar em outros sites

o resultado ficou assim...

 

update Troca set Nome_tro='bruno' Where Nome_tro='brunó'

certinho, trocar para "bruno" onde tiver "brunó"

 

 

mas ano da o update... ano atualiza na tabela..

 

estranho...

Compartilhar este post


Link para o post
Compartilhar em outros sites

muito sinistro....a função e rotina estão corretas......era pra atualizar...feche o banco e abra novamente

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao jonathandj, muito esntranho mesmo.. o pior que preciso entreguer ao cliente isso agora a tarde, ate as 4, e já to ficando loko com isso.. isso parece ser simples, vou colocar os arquivos prontos no meu site, se você puder baixar e dar uma olhada rapida para me ajudar agradeço muito...

 

 

mesmo assim muito obrigado pela ajuda ate agora..

 

 

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

 

www.bawebsites.com.br/funcao.zip

 

 

la tem 4 arquivos, uma banco e access q montei simples so com um campo nome, uma arquivo de abrir conexao, um de fehcar a conexao e outro a pagina com a funçao e a rotina... bem simples...

 

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

resolvido

 

<%'FUNÇÃO QUE RETIRA OS ACENTOS DAS PALAVRAS'/////////////////////////////////////////Function TiraAcento(ByVal Palavra)	cacento = "àáâãäèéêëìíîïòóôõöùúûüÀÁÂÃÄÈÉÊËÌÍÎÒÓÔÕÖÙÚÛÜçÇñÑ^~ºª´`'"	sacento = "aaaaaeeeeiiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcCnN"	texto = ""	If Palavra <> "" Then		For x = 1 To Len(Palavra)			letra = Mid(Palavra, x, 1)			pos_acento = InStr(cacento, letra)			If pos_acento > 0 Then				letra = Mid(sacento, pos_acento, 1)			End If			texto = texto & letra		Next		TiraAcento = texto	End IfEnd Function'///////////// F I M //////////////////////'/////////////////////////////////////////Set recset = Server.CreateObject("ADODB.Recordset") SQL="SELECT Nome_tro FROM troca"set recset = conexao.execute(SQL)if recset.eof then   response.write ("Nenhum dado na tabela")else Set recset2 = Server.CreateObject("ADODB.Recordset")  do while not recset.eof	   var = TiraAcento(recset("Nome_tro"))	    sql2="update Troca set Nome_tro='"&var&"' Where Nome_tro='"&recset("Nome_tro")&"'"   set recset2 = conexao.execute(sql2)   recset.movenext	  loop     response.write ("terminou")  end if%>

eu escrevi o codigo com um problema, estava movendo o cursor do segundo recordset qd deveria ser o primeiro...corrigi mais um coisinha que tinha errado, agora tá rolando

Compartilhar este post


Link para o post
Compartilhar em outros sites

ae jonathandj, eu tenho que fazer essa mudança aqui em um banco SQL, preciso alterar varios registros, existem muito registro no bvanco, estou meio com medo de rodar essa rotina e fazer alguma burrada no banco, ai já era, perder o banco do cliente do frito.. heheh

 

mudando os dados para os dados do cliente funfa certinho ou corro algum risco ai...??

 

 

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

é sempre bom fazer um back up....faz assim...cria uma cópia fiel do banco e rode o script na sua máquina acessando a copia desse banco(não esqueça de modificar a string de conexão para o mysql).Se o resultado for o esperado, eu aconselho parr por alguns instantes o servidor onde tem o mysql original, criar uma nova cópia e depois de guardada essa ultima cópai executa a rotina no banco original....verifique se ficou tudo ok e se positivo é só passar no caixa e deixar 10% de comissão na minha conta heheh brincadeira....mas a dica que posso te dar é essa, eu faria assim

Compartilhar este post


Link para o post
Compartilhar em outros sites

seria você parar o servidor, ir na pasta onde fica o banco e copiar todos os arquivos que tem lá para uma outra pasta segura para nao perder os dados. Se preferir pode exportar as tabelas e dados pelo mysql.....em se tratando de cliente faria os dois por precaução, afinal cliente tá pagando, perder um banco desses suja a imagem alem de causar danos $$$(não confio nas máquinas 100%, se um falhar ainda tenho a segunda alternativa)

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.