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 10-06-2010
Avatar de JoAnCa
JoAnCa JoAnCa is offline
Miembro
 
Registrado: jul 2005
Ubicación: Cuba
Posts: 435
Poder: 19
JoAnCa Va por buen camino
Cool Como eliminar espacios en el centro de una cadena?

Hola a todos
Necesito hacer una funcion que me permita eliminar los espacios en blanco sobrantes en una cadena, pero los que se encuentran en el interior de la cadena, no al principio y al final, que se puede hacer con Trim

Pero tampoco me sirve con StringReplace, que me sustituiria todos los espacios existentes

Pues lo que quiero es que cuando haya mas de un espacio blanco, me deje solamente uno

Ejemplo:

Esto: 'algo de la cadena'

Lo convierta en esto: 'algo de la cadena'

espero haberme explicado
__________________
La hora de acción no es hora de aprender, es necesario haber aprendido antes
Responder Con Cita
  #2  
Antiguo 10-06-2010
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Así rápidamente se me ocurren dos formas, usando StringReplace:

Código Delphi [-]
// Buscamos dos espacios en blanco seguidos y lo reemplazamos por uno solo
// Inconveniente, solo funciona cuando son dos espacios en blanco seguidos...
Cadena := StringReplace(Cadena, '  ', ' ', [rfReplaceAll]);

o haciendo una función:

Código Delphi [-]
function RemoveBlanks(const Str: string): string;
var
  I: Integer;
  FirstBlank: Boolean;

begin
  Result := '';
  for I := 1 to Length(Str) do
  begin
    if Str[i] <> ' ' then
    begin
      Result := Result + Str[i];
      FirstBlank := True;
    end
    else
      if FirstBlank then
      begin
        FirstBlank := False;
        Result := Result + Str[i]
      end
  end
end;


Saludos...
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter
Responder Con Cita
  #3  
Antiguo 10-06-2010
gonzalo_enero gonzalo_enero is offline
Registrado
 
Registrado: jun 2010
Ubicación: En mi Cuarto :-)
Posts: 9
Poder: 0
gonzalo_enero Va por buen camino
Talking Te doy una idea

1.- Create un método que te extraiga (cortar) la primer palabra de la cadena Principal..
2.- La guardas en una variable auxiliar
3.- Vuelves a buscar la Primer Palabra
__3.1.- Si la Hay concatenas espacio
__3.2.- Si no hay Salir Ciclo

S = "Hola___todo___Mundo"
aux = ""

S = "___todo___Mundo"
aux = "Hola"

S = "___Mundo"
aux = "Hola_todo"

S = ""
aux = "Hola_todo_Mundo"

S = aux

Recuerda que la variable auxiliar en el primer caso no agregas el espacio :-)

es muy importante que estos ejercicos lo resuelvas por tu propia cuenta, solo te doy una pauta ya que para algoritmos como analex debes dominar estos conceptos

Espero haber podido ayudarte :-)
Responder Con Cita
  #4  
Antiguo 10-06-2010
Avatar de JoAnCa
JoAnCa JoAnCa is offline
Miembro
 
Registrado: jul 2005
Ubicación: Cuba
Posts: 435
Poder: 19
JoAnCa Va por buen camino
Cool

Muchas gracias maeyanes, esa funcion me sirvio de maravilla

Con ella solucione el problema
__________________
La hora de acción no es hora de aprender, es necesario haber aprendido antes
Responder Con Cita
  #5  
Antiguo 10-06-2010
Avatar de JoAnCa
JoAnCa JoAnCa is offline
Miembro
 
Registrado: jul 2005
Ubicación: Cuba
Posts: 435
Poder: 19
JoAnCa Va por buen camino
Cool

Cita:
Empezado por gonzalo_enero Ver Mensaje
1.- Create un método que te extraiga (cortar) la primer palabra de la cadena Principal..
2.- La guardas en una variable auxiliar
3.- Vuelves a buscar la Primer Palabra
__3.1.- Si la Hay concatenas espacio
__3.2.- Si no hay Salir Ciclo

S = "Hola___todo___Mundo"
aux = ""

S = "___todo___Mundo"
aux = "Hola"

S = "___Mundo"
aux = "Hola_todo"

S = ""
aux = "Hola_todo_Mundo"

S = aux

Recuerda que la variable auxiliar en el primer caso no agregas el espacio :-)

es muy importante que estos ejercicos lo resuelvas por tu propia cuenta, solo te doy una pauta ya que para algoritmos como analex debes dominar estos conceptos

Espero haber podido ayudarte :-)
Tambien es valido este algoritmo, la forma de implementarlo no es compleja, tambien me sirve

Muchas gracias
__________________
La hora de acción no es hora de aprender, es necesario haber aprendido antes
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
Cadenas: eliminar espacios del final solamente Ruben_21 OOP 7 11-06-2011 11:52:25
Eliminar espacios en blanco juanchi SQL 9 13-06-2008 15:47:02
Eliminar Espacios en Blanco eudy.net Conexión con bases de datos 18 09-06-2008 18:00:47
Remover espacios en blanco de una cadena jarcmaster Varios 2 22-07-2005 21:12:18
Quitar espacios al final de una cadena gescoto99 SQL 1 04-08-2004 00:02:43


La franja horaria es GMT +2. Ahora son las 22:13:33.


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