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

Creo que este tipo de entradas son propensas a fallar, pero, en fin, no me quedo con las ganas:

Código Delphi [-]
function DirtyIntToStr
(str: string): string;
var
  pStr: PChar;
begin
  pStr := PChar(str);
  while (pStr^<>#0)do
  begin
    if (pStr^in['0'..'9']) then
      Result := Result + pStr^;
    Inc(pStr);
  end;
end;
Y, casi por el mismo precio:

Código Delphi [-]
function DirtyFloatToStr
 (str: string): string;
var
  pStr: PChar;
begin
  pStr := PChar(str);
  while (pStr^<>#0)do
  begin
    if (pStr^in['0'..'9',DecimalSeparator]) then
      Result := Result + pStr^;
    Inc(pStr);
  end;
end;
Nota: no lo hagan en sus casas; si tienen, escogan otras alternativas.

Segunda nota: lo siento Marcos, no tiene nada que ver con tu respuesta, es que no he podido evitarlo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #2  
Antiguo 09-04-2006
edusus edusus is offline
Miembro
 
Registrado: ene 2006
Posts: 47
Poder: 0
edusus Va por buen camino
Funciona la de marcos

Marcos, funciona pero no entiendo el código
Responder Con Cita
  #3  
Antiguo 09-04-2006
edusus edusus is offline
Miembro
 
Registrado: ene 2006
Posts: 47
Poder: 0
edusus Va por buen camino
Gracias a los dos

Gracias Marcos y gracias David por contestarme.
Responder Con Cita
  #4  
Antiguo 09-04-2006
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Pues se trata de un simple bucle For para recorrer la cadena de carácter en carácter.

Luego comprobamos que sea un número y si es así lo agregamos a la segunda variable.

El valor ASCII de los números va desde el 0 (48) hasta el 9(57), como la función ORD, devuelve ese valor, de ahí la comprobación si está en este rango de valores, si es así se trata de un número y lo añadimos a la variable.

Código Delphi [-]
S:=S+Edit1.Text[n];

n actúa como subindice para poder recorrer los caracteres de uno en uno.

Creo que así esté fácil de entender.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.

Última edición por marcoszorrilla fecha: 09-04-2006 a las 23:34:18.
Responder Con Cita
  #5  
Antiguo 09-04-2006
edusus edusus is offline
Miembro
 
Registrado: ene 2006
Posts: 47
Poder: 0
edusus Va por buen camino
Gracias Marcos, lo que me confundía era lo del 48 y 57 que no me daba cuenta de donde salían.
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 una cadena Ganduke Varios 6 28-12-2005 14:03:16
¿Como se recogería en una variable la cadena de caracteres? Kamikaze Varios 4 07-07-2005 18:26:04
cortar cadena Supermagayin Varios 2 07-03-2005 22:04:41
mostrar SOLO cliente de los que tengo un sólo registro Giniromero SQL 15 11-06-2004 12:33:19
Buscar cadena dentro de otra cadena doverzhoff Varios 4 27-01-2004 05:27:15


La franja horaria es GMT +2. Ahora son las 12:03:18.


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