Cometi um equívoco! Mandei uma versão antiga da função!
Abaixo, a versão correta! {$WRITEABLECONST ON} const WithAccents: String = 'àáâãäèéêëìíîïòóôõöùúûüÀÁÂÃÄÈÉÊËÌÍÎÒÓÔÕÖÙÚÛÜçÇñÑ'; WithNoAccents: String = 'aaaaaeeeeiiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcCnN'; {$WRITEABLECONST OFF} function ReplaceAccents(const s: string): string; var i: integer; begin Result := StringReplace(s, #32, EmptyStr, [rfReplaceAll]); for i := 1 to Length(WithAccents) do Result := StringReplace(Result, WithAccents[i], WithNoAccents[i], [rfReplaceAll]); end; function IsPalindrome(const s: string): boolean; overload; var iIdx: integer; lParse: string; begin Result := true; lParse := ReplaceAccents(AnsiLowerCase(s)); for iIdx := 1 to Length(lParse) div 2 do if not (lParse[iIdx] = lParse[Length(lParse) - (iIdx - 1)]) then begin Result := False; Break; end; end; function IsPalindrome(const i: integer): boolean; overload; begin Result := IsPalindrome(IntToStr(i)) end; Sds. De: Rubem Rocha [mailto:rubem.ro...@dtmanaus.com.br] Enviada em: terça-feira, 12 de maio de 2009 11:22 Para: 'delphi-br@yahoogrupos.com.br' Assunto: [DICA] Identificação strings palíndromas Prioridade: Alta {$WRITEABLECONST ON} const WithAccents: String = 'àáâãäèéêëìíîïòóôõöùúûüÀÁÂÃÄÈÉÊËÌÍÎÒÓÔÕÖÙÚÛÜçÇñÑ'; WithNoAccents: String = 'aaaaaeeeeiiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcCnN'; {$WRITEABLECONST OFF} function ReplaceAccents(const s: string): string; var i: integer; begin Result := StringReplace(s, #32, EmptyStr, [rfReplaceAll]); for i := 1 to Length(LowerAccents) do Result := StringReplace(Result, WithAccents[i], WithNoAccents[i], [rfReplaceAll]); end; function IsPalindrome(const s: string): boolean; var lIdx: integer; lParse: string; begin Result := true; lParse := AnsiUpperCase(ReplaceAccents(lParse)); for iIdx := 1 to Length(lParse) div 2 do if not (lParse[iIdx] = lParse[Length(lParse) - (iIdx - 1)]) then begin Result := False; Break; end; end; Em tempo: um palíndromo é um número ou valor literal que ao ser lido em sentido contrário (direita para esquerda) tem o mesmo valor se for lido no sentido normal (esquerda para direita). Rubem Nascimento da Rocha Analista/Desenvolvedor Pleno Digital Training - Seção de CA * E-Mail: rubem.ro...@dtmanaus.com.br þ Site: http://www.dtmanaus.com.br <http://www.dtmanaus.com.br/> [As partes desta mensagem que não continham texto foram removidas]