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 13-06-2005
Avatar de asegurpe
asegurpe asegurpe is offline
No confirmado
 
Registrado: abr 2004
Ubicación: Barcelona
Posts: 16
Poder: 0
asegurpe Va por buen camino
Unhappy Extraer referencia numerica de un texto

Estoy trabajando en un programa el cual ha de extraer un cierto numero del nombre de ficheros .tif. Me explico:

Ejemplos pueden ser los siguientes:

12345 Titulo.tif --> 12345
12345_Titulo.tif --> 12345
1234 Titulo.tif --> 1234
1234_Titulo.tif --> 1234

En estos casos he de extraer los dos numeros de forma independiente:
12345 1234 Titulo.tif --> 12345
1234
12345_1234 Titulo.tif --> 12345
1234
12345_1234_Titulo.tif --> 12345
1234

Si alguien tiene algo de tiempo, ¿me podria ayudar a encontrar un algoritmo para resolver este programa?

De antemano muchas gracias.
Responder Con Cita
  #2  
Antiguo 13-06-2005
paufra paufra is offline
Miembro
 
Registrado: oct 2003
Ubicación: Sueca. Valencia
Posts: 33
Poder: 0
paufra Va por buen camino
Una solución

A mi se me ocurre una solución. Primero pon el nombre del fichero en una variable (strNombreFichero) y haces un bulce comprobando los caracteres de la siguierte forma:

Código Delphi [-]
for intH := 1 to length(strNombreFichero) do
begin
    if strNombreFichero[intH] >= '0' and strNombreFichero[intH] <= '9' //caracteres de los numeros
        //Se añade a una vble. auxiliar
        strAux := strAux + strNombreFichero[intH]
    else
    begin
        if strAux <> '' then
        begin
            //Aqui ya tendras un numero completo, debes guardarlo, imprimirlo, lo que te haga falta. 
            strAux := ''; //Vaciar para recoger mas numeros
        end;
    end;    
end;
__________________
Pau Franco
www.pau.com.es
Responder Con Cita
  #3  
Antiguo 13-06-2005
Avatar de asegurpe
asegurpe asegurpe is offline
No confirmado
 
Registrado: abr 2004
Ubicación: Barcelona
Posts: 16
Poder: 0
asegurpe Va por buen camino
gracias, esto resuelve una parte

Primero, gracias por esta solución.

La verdad es que resuelve parte del problema, pero aún hay dos detalles que fallan:

- En el caso de dos referencias distintas, las juntaria como una sola de 9
digitos
- Si en el título hubiese algún número también lo incluiria en la referencia



Recibe un saludo
Responder Con Cita
  #4  
Antiguo 13-06-2005
paufra paufra is offline
Miembro
 
Registrado: oct 2003
Ubicación: Sueca. Valencia
Posts: 33
Poder: 0
paufra Va por buen camino
Cita:
Empezado por asegurpe
- En el caso de dos referencias distintas, las juntaria como una sola de 9 digitos
Solo las juntaría si van seguidas, si hay un espacio o cualquier otro signo entre las dos las separaria.

Cita:
Empezado por asegurpe
- Si en el título hubiese algún número también lo incluiria en la referencia
Claro, pero se puede mejorar haciendo que si encuentra mas de dos letras seguidas que termine antes. O haciendo un analisis posterior de los numeros. Depende de para que los vas a utilizar.
__________________
Pau Franco
www.pau.com.es
Responder Con Cita
  #5  
Antiguo 13-06-2005
Avatar de asegurpe
asegurpe asegurpe is offline
No confirmado
 
Registrado: abr 2004
Ubicación: Barcelona
Posts: 16
Poder: 0
asegurpe Va por buen camino
Muchas gracias

Muchas gracias por tu ayuda.

Tienes toda la razón, no me habia mirado bien el codigo.

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 18:55:14.


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