![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
|
UPPER, UpperCase con eñes, tildes ...
Hola:
Tengo esta consulta en una tabla InterBase (Caracter Set ISO8859_1, Collate ES_ES) sNom := '%'+Trim(eNombre.Text)+'%'; sApe := '%'+Trim(eApellidos.Text)+'%'; DM.IBDSNada.SelectSQL.Text := 'SELECT * FROM NADADORES where UPPER(APELLIDOS) LIKE UPPER('+QuotedStr(sApe)+') AND UPPER(NOMBRE) LIKE UPPER('+QuotedStr(sNom)+') order by APELLIDOS, NOMBRE'; Funciona bien excepto cuando hay alguna ñ, ç o vocal con tilde que no las transforma a mayúsculas. Supongo que pasará lo mismo con LOWER. ¿Cómo se puede solucionar esto? Un saludo. Tomás. P.D. Tampoco la función UpperCase las transforma. |
|
#2
|
||||
|
||||
|
Yo me he armado estas dos funciones basadas en las de Delphi, no se si en las últimas versiones, con la aparición de StrUtils ha aparecido algo similar
Código:
function UCase(const S: string): string;
var
Ch: Char;
L: Integer;
Source, Dest: PChar;
begin
L := Length(S);
SetLength(Result, L);
Source := Pointer(S);
Dest := Pointer(Result);
while L <> 0 do begin
Ch := Source^;
if ((Ch >= 'a') and (Ch <= 'z')) or ((Ch >= 'à') and (Ch <= 'þ')) then Dec(Ch, 32);
Dest^ := Ch;
Inc(Source);
Inc(Dest);
Dec(L);
end;
end;
function LCase(const S: string): string;
var
Ch: Char;
L: Integer;
Source, Dest: PChar;
begin
L := Length(S);
SetLength(Result, L);
Source := Pointer(S);
Dest := Pointer(Result);
while L <> 0 do
begin
Ch := Source^;
if ((Ch >= 'A') and (Ch <= 'Z')) or ((Ch >= 'À') and (Ch <= 'Þ')) then Inc(Ch, 32);
Dest^ := Ch;
Inc(Source);
Inc(Dest);
Dec(L);
end;
end;
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
|
|
#3
|
|||
|
|||
|
existe una función de ls unidad sysutils para realizar dicha tarea:
Ansiuppercase ignoro a partir de que version se introdujo |
|
#4
|
|||
|
|||
|
Muchas gracias a los dos por vuestra ayuda. Voy a ponerme manos a la obra.
Un saludo. Tomás. |
![]() |
|
|
|