Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-08-2012
NeoNew NeoNew is offline
Miembro
 
Registrado: mar 2009
Ubicación: Bogotá
Posts: 49
Poder: 0
NeoNew Va por buen camino
Convertir una cadena a una abreviación

Buen dia.
Gracias a quien me pueda ayudar o si ya esta este tema me pueda indicar el link.

Quiero manejar un estandar al hacer la captura de direcciones de una casa,... es decir
Al hacer la captura de una dirección:
calle 140 Numero 48-50 edificio Torres alfa Piso 2 apartamento 203 barrio fuentes.
lo vaya convirtiendo y/o al final quede.
CLL. 140 # 48-50 ED. Torres alfa P. 2 AP. 203 BRR. fuentes

Con lo anterior pretendo que la columna dirección de mi DB sea lo mas ordenada y standar posible.


Gracias de nuevo.

NeoNew

Editado:
Cuento con una tabla de convenciones asi:

CLL Calle
AV Avenida
BRR Barrio
# Numero
AP Apartamento
AER Aeropuerto
BL Bloque
CA Casa
P Piso
...
..
.
__________________
Pre-Alpha

Última edición por NeoNew fecha: 03-08-2012 a las 20:31:51.
Responder Con Cita
  #2  
Antiguo 03-08-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Supongo que podrías hacer:
Código Delphi [-]
procedure Abreviar(var Cadena: string);
begin
  Cadena:= StringReplace(Cadena,'calle','CLL.',[rfReplaceAll]);
  Cadena:= StringReplace(Cadena,'edificio','ED.',[rfReplaceAll]);
  Cadena:= StringReplace(Cadena,'apartamento','AP.',[rfReplaceAll]);
  Cadena:= StringReplace(Cadena,'barrio','BRR.',[rfReplaceAll]);
  ... // mas reemplazos (si hay)
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 03-08-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Veo que agregaste información luego de mi mensaje.

Entonces sería:
Código Delphi [-]
procedure Abreviar(var Cadena: string);
begin
  Cadena:= StringReplace(Cadena, 'Calle', 'CLL.', [rfReplaceAll]);
  Cadena:= StringReplace(Cadena, 'Edificio', 'ED.', [rfReplaceAll]);
  Cadena:= StringReplace(Cadena, 'Apartamento', 'AP.', [rfReplaceAll]);
  Cadena:= StringReplace(Cadena, 'Barrio', 'BRR.', [rfReplaceAll]);
  Cadena:= StringReplace(Cadena, 'Avenida', 'AV.', [rfReplaceAll]);
  Cadena:= StringReplace(Cadena, 'Numero', '#.', [rfReplaceAll]);
  Cadena:= StringReplace(Cadena, 'Aeropuerto', 'AER.', [rfReplaceAll]);
  Cadena:= StringReplace(Cadena, 'Bloque', 'BL.', [rfReplaceAll]);
  Cadena:= StringReplace(Cadena, 'Case', 'CA.', [rfReplaceAll]);
  Cadena:= StringReplace(Cadena, 'Piso', 'P.', [rfReplaceAll]);
end;

Ejemplo de llamada:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  str: string;
begin
  str:= 'calle 140 Numero 48-50 edificio Torres alfa Piso 2 apartamento 203 barrio fuentes.';
  Abreviar(str);
  Caption:= str;
  ...
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 03-08-2012
NeoNew NeoNew is offline
Miembro
 
Registrado: mar 2009
Ubicación: Bogotá
Posts: 49
Poder: 0
NeoNew Va por buen camino
Gracias por la ExtraRápida y pronta respuesta.
Lo implementare.
__________________
Pre-Alpha
Responder Con Cita
  #5  
Antiguo 03-08-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola NeoNew.

Cuando agregaste "Cuento con una tabla de convenciones...", me quedé pensando que quizá sea muy larga la lista de abreviaturas y del modo anterior te resultaría un poco tedioso...

Si ya tenes una tabla creada, podrías hacer:
Código Delphi [-]
...
implementation  

// (también podrías declararlas como privadas)
var
  FPalabra: TStrings;
  FAbrev: TStrings;

// Abrir tabla de abreviaturas y cargar 
procedure TForm1.FormCreate(Sender: TObject);
begin
  FPalabra:= TStringList.Create;
  FAbrev:= TStringList.Create;
  with tbAbreviaturas do
  begin
    Open;
    while not eof do
    begin
      FPalabra.Add(FieldByName('Palabra').AsString);
      FAbrev.Add(FieldByName('Abreviat').AsString);
      Next;
    end;
    Close;
  end;
end;

// Obtener abreviaturas
function TForm1.Abreviar(const Texto: string): string;
var
  i,ix: Integer;
begin
  Result:= Texto;
  with TStringList.Create do
  try
    Delimiter:= ' ';
    DelimitedText:= Texto;
    for i:= 0 to Count-1 do
    begin
      ix:= FPalabra.IndexOf(Strings[i]);
      if ix <>-1 then
        Result:= StringReplace(Result, Strings[i],FAbrev[ix],[]);
    end;
  finally
    Free;
  end;
end;

// Ejemplo de llamada
procedure TForm1.Button1Click(Sender: TObject);
begin
  Label2.Caption:= Abreviar(Label1.Caption)
end;

...

// Liberar
procedure TForm1.FormDestroy(Sender: TObject);
begin
  if Assigned(FPalabra) then
    FPalabra.Free;
  if Assigned(FAbrev) then
    FAbrev.Free;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Convertir cadena aleatoria en cadena de N caracteres DANY OOP 3 12-03-2009 20:49:21
Convertir cadena de ANSI a OEM Lord Delfos Varios 3 26-09-2008 13:23:46
Convertir numero en cadena rex JAVA 7 25-10-2007 03:28:11
convertir cadena hexadecimal a imagen Barzaugc SQL 3 20-09-2006 16:06:44
Convertir una cadena Ganduke Varios 6 28-12-2005 14:03:16


La franja horaria es GMT +2. Ahora son las 17:31:45.


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