Eliminar espacio en blanco entre dos palabras

2,493 views
Skip to first unread message

Douglas Sánchez Guillén

unread,
Feb 29, 2012, 6:01:14 PM2/29/12
to publice...@googlegroups.com
Hola que tal amigos colegas del foro.

Tengo un campo con Nombres Apellidos 

ejemplo


Juan + 2 espacio o 3  perez gonzalez  y son como 4800 registros

Deseo dejar mas que un espacio entre Nombres y apellidos en un solo campo.

desde ya gracias saludes..



Armando Rodríguez Bermúdez

unread,
Feb 29, 2012, 6:09:00 PM2/29/12
to publice...@googlegroups.com

Prueba con:

 

Repl nombredetucampo with STRTRAN(nombredetucampo,"  "," ") all

 

Lo haces varias veces por si hubiera registros con mas de 2 espacios en blanco.

 

Saludos

Armando

Marco Plaza

unread,
Feb 29, 2012, 6:16:34 PM2/29/12
to Comunidad de Visual Foxpro en Español
Puedes hacer como dice Armando

_tally = 1
do while _tally > 0
replace campo with strtran(campo,' ',' ') all
enddo

o usar la funcion reduce de foxtools:

set library to home()+'foxtools.fll'
replace campo with reduce(campo) all



On 29 feb, 19:09, Armando Rodríguez Bermúdez

Baltazar Moreno

unread,
Feb 29, 2012, 6:19:21 PM2/29/12
to publice...@googlegroups.com
*----------------------------------------------------
FUNCTION QuitaEspaciosIntermedios(sCad)
*----------------------------------------------------
DO WHILE ATC("  ", sCad)  > 0
   sCad = STRTRAN(sCad, '  ', ' ')  
ENDDO
RETURN sCad
ENDFUNC 
*----------------------------------------------------


Saludos!

Baltazar Moreno
VFP9SP2 - Win7
Guadalajara, Jalisco, México

Antonio.xt

unread,
Feb 29, 2012, 6:21:59 PM2/29/12
to Comunidad de Visual Foxpro en Español

Asi es Douglas, la instruccion que te indica Armando es correcta para
eliminar esos espacios, solo tienes que ejecutarla para 2 espacios,
luego para 3, segun los que creas conveniente hasta N espacios, o
tambien puedes hacer una funcion que elimine esos espacios, en donde
recorras todos los caracteres del nombre completo guardando el
caracter por el que vas pasando y cuando el caracter es un espacio y
el caracter anterior tambien lo es, que lo ingnore, y si no que lo
vaya guardando en otra variable en donde vas armando el nombre ya sin
espacios, esta un poco revuelto asi explicado, pero es mas simple ya
en codigos.

Nombre = AllTrim(Nombre)
NombreNew = ""
CharActual = ""
CharAnterior = ""

For A = 1 To Len(Nombre)
CharActual = SubStr(Dato,A,1)
If Not( CharAnterior = " " And CharActual = " ")
NombreNew = NombreNew + CharActual
EndIf
CharAnterior = CharActual
EndFor

Bueno, mas o menos asi.

Luis Maria Guayan

unread,
Feb 29, 2012, 6:27:30 PM2/29/12
to publice...@googlegroups.com
En este artículo de PortalFox  tienes tres opciones:

-- Reducir los espacios entre palabras a solo un espacio --
http://www.portalfox.com/article.php?&sid=1045


Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

Daniel Sánchez

unread,
Feb 29, 2012, 7:50:26 PM2/29/12
to publice...@googlegroups.com
Esto es lo bueno de vfp que siempre hay mas de una manera de solucionar las cosas, por eso me encanta este lenguaje. Y como siempre el maestro Luis María mostrándonos esa potencia.

Saludos

-- 
Daniel Sánchez Escobar
Investigación y Desarrollo
Reset Software & Sistemas
Móvil +051-949398047
Trujillo - Perú

Douglas Sánchez Guillén

unread,
Feb 29, 2012, 8:34:59 PM2/29/12
to publice...@googlegroups.com
Bueno muchas gracias y a tomar nota de todas las formas jijij.
 
saludes

Reply all
Reply to author
Forward
0 new messages