Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Actualizar mayusculas (https://www.clubdelphi.com/foros/showthread.php?t=58407)

Camilo 19-07-2008 15:02:41

Actualizar mayusculas
 
Hola Amigos:

Tengo una tabla llamada "personas" esta tabla esta hecha en paradox.
dentro de ella tengo un campo que e llama "Apellido". Resulta que los casi 20.000 registros ya grabados estan todos em mayuscula sostenida.

Mi inquietud es:

Podrian por favor ayudarme (en el onclick) de un Button; con un codigo para convertir todos los registros a la primera letra en mayuscula y las otras en minuscula??.

Tablas Paradox
Delphi 7

Mil Gracias, que mis dios les socorra buenas esposas y esposos.

donald shimoda 19-07-2008 15:30:28

Cita:

Empezado por Camilo (Mensaje 301549)
Hola Amigos:

Tengo una tabla llamada "personas" esta tabla esta hecha en paradox.
dentro de ella tengo un campo que e llama "Apellido". Resulta que los casi 20.000 registros ya grabados estan todos em mayuscula sostenida.

Mi inquietud es:

Podrian por favor ayudarme (en el onclick) de un Button; con un codigo para convertir todos los registros a la primera letra en mayuscula y las otras en minuscula??.

Tablas Paradox
Delphi 7

Mil Gracias, que mis dios les socorra buenas esposas y esposos.


Pues seria tomar el valor del campo meterlo en un string y luego tomar la posicion 1 del string y pasarla a mayusculas y el resto a minúsculas, y volver a guardar el string en el campo.

No me pidas codigo hoy porque tengo pereza. :D

Fenareth 19-07-2008 15:32:30

No sé si exista una función directa, pero a mi se me ocurre algo así:

Código Delphi [-]
var apellido:string;
     i,j:integer;

begin

     for i:=1 to Table.RecordCount do
     begin
            apellido:= Tabla.FieldByName('Apellido').AsString;
            for j:=1 to length(apellido) do
            begin
                        apellido[j]:=lowercase(apellido[j]);
            end;
            Tabla.FieldByName('Apellido').AsString:=apellido;
     end;
end;

Lo hago de memoria, no he probado si funciona... Saludos :)

donald shimoda 19-07-2008 15:40:22

Excelente! Solo te falto que el primer char sea mayusucula como pide el amigo. El dice que esta en mayusculas ya, pero por si acaso...

Código Delphi [-]
var apellido:string;
     i,j:integer;

begin

     for i:=1 to Table.RecordCount do
     begin
            apellido:= Tabla.FieldByName('Apellido').AsString;

           apellido[1]:=uppercase(apellido[1]);
            for j:=2 to length(apellido) do
            begin
                        apellido[j]:=lowercase(apellido[j]);
            end;
            Tabla.FieldByName('Apellido').AsString:=apellido;
     end;
end;

ContraVeneno 19-07-2008 15:55:39

Sí son varias palabras:
http://delphi.about.com/cs/adptips19...ltip1099_5.htm

Si es una sola:
Código Delphi [-]
   edtUnapalabra.Text := AnsiUpperCase(COpy('UNAPALABRA', 1,1))+AnsiLowerCase(RightStr('UNAPALABRA', length('UNAPALABRA')-1));

Fenareth 19-07-2008 16:37:55

Cita:

Empezado por donald shimoda (Mensaje 301560)
Excelente! Solo te falto que el primer char sea mayusucula como pide el amigo. El dice que esta en mayusculas ya, pero por si acaso...

No recordaba si Delphi comenzaba a contar lo caracteres de string en 0 o en 1 de ahí la confusión... :o :p :D

Y claro !, yo consideré como él dijo, que la primera letra ya estaba en mayúsculas...

Saludos :)

ContraVeneno 19-07-2008 16:41:41

¿por qué AnsiLowerCase y no LowerCase? :D:D:D

Fenareth 19-07-2008 17:05:45

Cita:

Empezado por ContraVeneno (Mensaje 301578)

Por eso digo que AnsiLowerCase y AnsiUpperCase :rolleyes: :p :o :D
Código Delphi [-]
var apellido:string;
     i,j:integer;

begin

     for i:=1 to Table.RecordCount do
     begin
            apellido:= Tabla.FieldByName('Apellido').AsString;

           apellido[1]:=ansiuppercase(apellido[1]);
            for j:=2 to length(apellido) do
            begin
                        apellido[j]:=ansilowercase(apellido[j]);
            end;
            Tabla.FieldByName('Apellido').AsString:=apellido;
     end;
end;

donald shimoda 19-07-2008 17:23:59

Cita:

Empezado por ContraVeneno (Mensaje 301578)


M... eso si que me deja helado.

Nunca se deja de aprender, que bueno!

Camilo 19-07-2008 19:01:30

Hola amigos, estaba afuera y acabo de volver por lo que les presento disculpas.
Ensaye este codigo::
Cita:

var
apellido: string;
i,j: integer;

begin

for i:=1 to TablePersonas.RecordCount do
begin
apellido:= TablePersonas.FieldByName('Ape1').AsString;
apellido[1]:=ansiuppercase(apellido[1]);
for j:=2 to length(apellido) do
begin
apellido[j]:=ansilowercase(apellido[j]);
end;
TablePersonas.FieldByName('Ape1').AsString:=apellido;
end;

end;
y me sale este mensaje de error en la compilacion:
Cita:

[Error] Unit1.pas(115): Incompatible types: 'Char' and 'String'
[Error] Unit1.pas(118): Incompatible types: 'Char' and 'String'

donald shimoda 19-07-2008 21:14:59

Cita:

Empezado por Camilo (Mensaje 301602)
Hola amigos, estaba afuera y acabo de volver por lo que les presento disculpas.
Ensaye este codigo::

y me sale este mensaje de error en la compilacion:


Amigo la mejor opción es la que da contra veneno.

Por otro lado te da ese error porque efectivamente la función espera como argumento un string, no un char

Así que ahí se complica, deberías copiar el char a un string, pasarlo devolverlo, un rollo, ensaya la otra solucion, algo criptica pero funciona segun dicen.

Saludos.

egostar 19-07-2008 21:24:49

Hola

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  apellido: string;
begin
  apellido := Tabla.FieldByName('Apellido').AsString;
  apellido := apellido[1]+AnsiLowerCase(Copy(apellido,2,length(apellido)));
  ShowMessage(apellido);
end;

Salud OS

Camilo 19-07-2008 22:21:12

Muchachos mil gracias, seguire ensayando con todos los elementos aportados por ustedes.

Gracias por su tiempo y un abrazo a todos.


La franja horaria es GMT +2. Ahora son las 12:20:59.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi