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 21-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,


Cita:
Empezado por Aarón
Si no me equivoco en dxedit es un componente de la suite Developer Express, especificamente una caja de texto, en cuanto al rut, en Chile por lo menos, es un número único que identifica a una persona en el país, no se si será así en otro país.
Gracias Aarón. El caso es que había oído hablar del "RUT", y, sin embargo, no me lo quedé en la cabeza. A ver si ahora puede ser. Y sí, al menos aquí en esta España mía, esta España nuestra (es mentira, es de ellos), como dice la canción, también nos "marcan" con algo que se llama DNI, Documento Nacional de Identidad. Y multa al canto como no lo lleves y el guardia se ponga un tanto farruco.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #2  
Antiguo 21-10-2005
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
Pue aqui en Colombia el RUT es el Registro Unico Tributario, falta ver que RUT esta buscando!!!
Responder Con Cita
  #3  
Antiguo 21-10-2005
joi joi is offline
Registrado
 
Registrado: oct 2005
Posts: 6
Poder: 0
joi Va por buen camino
Estoy hablando del documento de identificacion de Chile.. el formato de este es ej:

12.345.126-K

Necesito sacarle los puntos y el guion es decir debe quedar como 12345126

ademas debo verificar que en los primeros 10 caracteres no existan letras...

Gracias por responder

joi
Responder Con Cita
  #4  
Antiguo 21-10-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Código Delphi [-]
var
  S: String;

begin
  S := '12.345.126-K';

  Delete(S, 3, 1);
  Delete(S, 6, 1);
  Delete(S, 9, 2);

  if StrToIntDef(S, -1) = -1 then
    ShowMessage('Formato incorrecto')
  else
    ShowMessage(S);
end;

// Saludos
Responder Con Cita
  #5  
Antiguo 21-10-2005
joi joi is offline
Registrado
 
Registrado: oct 2005
Posts: 6
Poder: 0
joi Va por buen camino
Muchas Gracias....

Intentare de ese modo... te cuento

Joi
Responder Con Cita
  #6  
Antiguo 21-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Si el número RUT es parecido al DNI español lo propuesto por roman puede no funcionar como se espera. Me explico. Un RUT válido puede ser: "12.345.126-K", pero, en caso de que este también lo fuera: "124.345.126-K" el código de más arriba daría problemas. Yo optaría por algo así, so pena de que pueda mejorarse no poco lo que propongo:

Código Delphi [-]
 function ParsearNumeroRUT(const RUT: string) : string;
 resourcestring
   rsExcep = 'El número RUT: "%s" no es correcto.';
 begin
   Result := RUT; // Recogemos el número RUT en Result
   // Reemplazamos cualquier coincidencia de un punto.
   Result := StringReplace(Result, '.', '', [rfReplaceAll]);
   // Reemplazamos cualquier coincidencia de un guión.
   Result := StringReplace(Result, '-', '', [rfReplaceAll]);
   // Si el resultado "mide" más de diez caracteres...
   if Length(Result) >= 10 then
   begin
     // Comprobamos que estos no contengan letras
     if StrToIntDef(LeftStr(Result, 10), -1) = -1 then
       // Y si contiene letras informamos del problema
       raise Exception.Create(Format(rsExcep, [RUT]));
   end;
 end;
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 21-10-2005
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.055
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
También puedes hacer algo parecido a esto:
Código Delphi [-]
 i:integer;
 Result:='';
 
 S := '12.345.126-K';
 
 for i=1 to length(S) do
     if S[i] in ['0'..'9'] then
         Result := Result + S[i]
Responder Con Cita
  #8  
Antiguo 21-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Lo siguiente me ha confundido antes:


Cita:
Empezado por joi
Necesito sacarle los puntos y el guion es decir debe quedar como 12345126
En ese caso no precisas solamente sacarle los puntos y el guión, sino además también las letras. Si esto es así, la función que propuse antes no serviría, puesto que sacaría del RUT los puntos y los guiones, pero no así las letras. Propongo, pues, el siguiente cambio, que sí conseguiría quitar los puntos, los guiones y las letras del número RUT de marras:

Código Delphi [-]
function ParsearNumeroRUT(const RUT: string) : string;
 var
   s: string;
   i: integer;
 begin
   s := RUT; // Recogemos el número RUT
   // Fuera cualquier coincidencia de un punto.
   s := StringReplace(s, '.', '', [rfReplaceAll]);
   // Fuera cualquier coincidencia de un guión.
   s := StringReplace(s, '-', '', [rfReplaceAll]);
   // Fuera las letras del resultado
   for i := 1 to Length(s) do
     if (s[i] in ['0'..'9']) then
       Result := Result + s[i];
 end;
Sin embargo... lo que propone Casimiro me parece lo lógico, pues que al cabo se trataría solamente de quedarnos con los números del número RUT, de tal modo que la función de más arriba podría simplificarse del modo que propone Casimiro:

Código Delphi [-]
 function CasimiroParsearNumeroRUT(const RUT: string) : string;
 var
   s: string;
   i: integer;
 begin
   s := RUT;
   for i := 1 to Length(s) do
     if s[i] in ['0'..'9'] then
       Result := Result + s[i];
 end;
__________________
David Esperalta
www.decsoftutils.com
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


La franja horaria es GMT +2. Ahora son las 03:30:23.


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