Fórum criando funçao para substituir acentos ... #214349
15/02/2004
0
ex ... exércãtô .. e ele poe pra exercato ... ?????
valeuz
Salsa
Curtir tópico
+ 0Posts
15/02/2004
Chico Gois
Experimente
Procedure RemoveAcentos(Var str:String); Var i,p : Integer; s1,s2 : STring; Begin s1 := ´ÁÂÃÉÊÍÓÕÔÚÇáâãéêíóõôúç´; s2 := ´AAAEEIOOOUCaaaeeiooouc´; For i := 1 to Length(Str) do Begin p := Pos(str[i],s1); if p<>0 Then str[i] := s2[p]; End; End
T+
Gostei + 0
15/02/2004
Salsa
é por eh ?
á por ah queria substiuir do jeito q eu quero ..
pq tipo pelo oq eu vi ali ele pega a position e talz ... e substiutui de acordo com a outra .. ae pra mim nao da mto certo ...
sabe c tem como?
Gostei + 0
16/02/2004
Salsa
Gostei + 0
17/02/2004
Fabio.hc
Pegando a rotina que o FGOIS passou e adaptando para devolver 2 caracteres para cada caracter com acento:
function RemoveAcentos(Var str:String):string; Var i,p,q : Integer; s1,s2 : STring; Begin s1 := ´ÁÂÃÉÊÍÓÕÔÚÇáâãéêíóõôúç´; s2 := ´AHAHAHEHEHIHOHOHOHUHC ahahahehehihohohohuhc ´; For i := 1 to Length(Str) do Begin p := Pos(str[i],s1); if p<>0 Then begin p:=p*2; result:=result+s2[p-1]; if not(str[i] in [´Ç´,´ç´]) then result:=result+s2[p]; end else result:=result+Str[i]; End; End;
Gostei + 0
17/02/2004
Salsa
ex ...
á por ah
ã por a
â por an
coisa do tipo ....
tem como usar um case ou sei la nessa funçao pra mim especificar como eu substituo e talz?
valeuz!!! :wink:
Gostei + 0
17/02/2004
Lucas Silva
function TForm1.RetiraAcento(palavra: String): String; var i: integer; begin for i:= 0 to Length(palavra) - 1 do begin case palavra[i] of ´á´,´Á´ : palavra[i] := ´A´; ´é´,´É´ : palavra[i] := ´E´; ´í´,´Í´ : palavra[i] := ´I´; ´ó´,´Ó´ : palavra[i] := ´O´; ´ú´,´Ú´ : palavra[i] := ´U´; ´à´,´À´ : palavra[i] := ´A´; ´è´,´È´ : palavra[i] := ´E´; ´ì´,´Ì´ : palavra[i] := ´I´; ´ò´,´Ò´ : palavra[i] := ´O´; ´ù´,´Ù´ : palavra[i] := ´U´; ´â´,´Â´ : palavra[i] := ´A´; ´ê´,´Ê´ : palavra[i] := ´E´; ´î´,´Î´ : palavra[i] := ´I´; ´ô´,´Ô´ : palavra[i] := ´O´; ´û´,´Û´ : palavra[i] := ´U´; ´ä´,´Ä´ : palavra[i] := ´A´; ´ë´,´Ë´ : palavra[i] := ´E´; ´ï´,´Ï´ : palavra[i] := ´I´; ´ö´,´Ö´ : palavra[i] := ´O´; ´ü´,´Ü´ : palavra[i] := ´U´; ´ç´,´Ç´ : palavra[i] := ´C´; ´ñ´,´Ñ´ : palavra[i] := ´N´; else palavra[i] := ´ ´; end; end;
Gostei + 0
17/02/2004
Salsa
ele ficaria ... ´paranmetro´ como se fala tendeu?
Gostei + 0
17/02/2004
Salsa
Gostei + 0
17/02/2004
Lucas Silva
Tenta fazer uma rotina com aquela lógica que te passei....
Alterando poucas coisas acho que da pra fazer com CHAR
Gostei + 0
17/02/2004
Fabio.hc
Mudei a função que passei acima.
Ex: Cada letra com acentro é trocado por dois caracteres, a variável s1 contém todos os carateres com acento, a variáel s2 contém os caracteres que vc quer substituir, para visualização a variável s1 que está com comentário mostra as posições de s1 com s2, basta vc trocar em s2 os caracteres.
function RemoveAcentos(Var str:String):string; Var i,p,q : Integer; s1,s2 : STring; Begin s1 := ´ÁÂÃÉÊÍÓÕÔÚÇáâãéêíóõôúç´; // s1 := ´Á Â Ã É Ê Í Ó Õ Ô Ú Ç á â ã é ê í ó õ ô ú ç ´; s2 := ´AHA ANEHEHIHOHOHOHUHC aha anehehihohohohuhc ´; For i := 1 to Length(Str) do Begin p := Pos(str[i],s1); if p<>0 Then begin p:=p*2; result:=result+s2[p-1]; if (s2[p] <> ´ ´) then result:=result+s2[p]; end else result:=result+Str[i]; End; End;
Gostei + 0
19/02/2004
Chico Gois
function BuscaTroca(Text,Busca,Troca : string) : string; var n : integer; begin for n := 1 to length(Text) do begin if Copy(Text,n,1) = Busca then begin Delete(Text,n,1); Insert(Troca,Text,n); end; end; Result := Text; end;
T+
Gostei + 0
20/02/2004
Salsa
cara eu pra mim funcionou legal ... soh que eu queria q antes dele substituir os acentos ....
se ele encontrasse ÃO la na string ... ele substituisse por AUM ..
eh q to tentando trabalhar com fonetica e talz ....
vc tem ideia de como fazer?
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)