Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Como quitar espacios en blanco en textos de un textbox y ...

Estas en el tema de Como quitar espacios en blanco en textos de un textbox y ... en el foro de Visual Basic clásico en Foros del Web. Hola, me gustaría saber si alguien puede echarme una mano. Tengo un programa que quiero que haga lo siguiente: en un textbox se introduce un ...
  #1 (permalink)  
Antiguo 19/04/2010, 11:31
 
Fecha de Ingreso: marzo-2010
Mensajes: 15
Antigüedad: 14 años
Puntos: 0
Como quitar espacios en blanco en textos de un textbox y ...

Hola, me gustaría saber si alguien puede echarme una mano. Tengo un programa que quiero que haga lo siguiente: en un textbox se introduce un texto en varias lineas.

Cada línea puede tener espacios en blanco antes del salto de línea del final de cada línea.

El máximo de caracteres del textbox por línea ha de ser de 60 caracteres. Si el texto que la persona escriba, antes de pulsar enter, tiene más de 60 caracteres, se debe producir un salto de línea auntomático al llegar al 60.

Al final, el programa debe quitar los caracteres en blanco de cada línea (independientemente de que se haya o no completado la línea con 60 caracteres), de manera que en otro textbox aparece el texto con saltos de línea inmediatamente después de el último caracter de cada línea.

Como creo que estoy liando un poco la cosa, pongo un ejemplo:


En el textbox, alguien introduciría un texto así:

En casa de Pedro hay muchas +(salto de linea)
cosas que me gustan. Una de ellas es+(salto de linea)
un cuadro que esta en el salón, y que es de un caballo con +(salto de linea por máximo de 60 caracteres por linea)
un caballero con espada que +(salto de linea)
etc....

Lo que quiero es que en otro textbox aparezca:

En casa de Pedro hay muchas+(salto de linea)
cosas que me gustan. Una de ellas es+(salto de linea)
un cuadro que esta en el salón, y que es de un caballo con +(salto de linea por máximo de 60 caracteres por linea)
un caballero con espada que+(salto de linea)
etc....

y así con el resto de lineas.


¿Alguien que tenga un código o una idea de cómo implementar esto?


Muchas gracias a los foreros por adelantado.

peladilla18
  #2 (permalink)  
Antiguo 19/04/2010, 16:19
 
Fecha de Ingreso: marzo-2010
Mensajes: 15
Antigüedad: 14 años
Puntos: 0
Respuesta: Como quitar espacios en blanco en textos de un textbox y ...

Ya sé que con Rtrim puedo quitar los espacios en blanco de una cadena string, pero no sé como hacer lo mismo línea a línea de un texto completo de un textbox con varias líneas....
  #3 (permalink)  
Antiguo 20/04/2010, 03:03
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 8 meses
Puntos: 29
Respuesta: Como quitar espacios en blanco en textos de un textbox y ...

Para quitar los espacios te puede servir esto:

Código vb:
Ver original
  1. Function QuitaEspacios(ByVal Texto As String, ByVal DelComienzo As Boolean, ByVal DelFinal As Boolean) As String
  2.   On Local Error Resume Next
  3.   If DelComienzo = True Then
  4.  
  5.     ' hacemos un bucle que se repetira hasta que la variable "Texto"
  6.    ' no contenga ningun salto de linea con un espacio a continuacion.
  7.    ' Comparacion: Si dentro de la cadena "Texto" encontramos la cadena "saltodelinea+espacio"...
  8.    Do Until InStr(1, Texto, vbCrLf & " ") = 0
  9.       ' reemplazamos dentro de "Texto" todas las cadenas
  10.      ' "saltodelinea+espacio" por la cadena "saltodelinea" (osea vbcrlf).
  11.      Texto = Replace(Texto, vbCrLf & " ", vbCrLf)
  12.     Loop
  13.  
  14.   End If
  15.    
  16.   ' y aqui hacemos lo mismo pero buscando saltos de linea con
  17.  ' un espacio delante en lugar de a continuacion.
  18.  If DelFinal = True Then
  19.     Do Until InStr(1, Texto, " " & vbCrLf) = 0
  20.       Texto = Replace(Texto, " " & vbCrLf, vbCrLf)
  21.     Loop
  22.   End If
  23.   QuitaEspacios = Texto
  24. End Function

Y lo puedes usar así:


Código vb:
Ver original
  1. Private Sub Text1_Change()
  2.   Text2.Text = Trim$(QuitaEspacios(Text1.Text, True, True))
  3. End Sub

Saludos
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!

Última edición por pkj; 20/04/2010 a las 07:31
  #4 (permalink)  
Antiguo 20/04/2010, 05:34
 
Fecha de Ingreso: marzo-2010
Mensajes: 15
Antigüedad: 14 años
Puntos: 0
Respuesta: Como quitar espacios en blanco en textos de un textbox y ...

PERFECTO!!! Funciona tal y como quería yo.

Muchisimas gracias por tu ayuda.

Tan sólo una pregunta...
Dado que quiero aprender a programar mucho mejor (a la vista está), me gustaría saber si me puedes explicar un poco que hace cada línea, para comprender mejor todo el código.... por favor. hay cosas que entiendo, pero otras no. ¿Te importaría?

Muchas gracias de nuevo.

peladilla18
  #5 (permalink)  
Antiguo 20/04/2010, 07:29
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 8 meses
Puntos: 29
Respuesta: Como quitar espacios en blanco en textos de un textbox y ...

He puesto unos comentarios. Espero que se entienda.

Saludos

NOTA:
Quiero aclarar que, en principio, el bucle no es necesario si dentro del texto se encuentran solo cadenas como:

" " & vbcrlf

ya que en una sola pasada se reparan.
Sin embargo si en el texto existe una cadena como:

" " & vbcrlf ' (con 2 espacios) (aunque en este mensaje parece que solo aparece uno)

una sola pasada dejaría la cadena como

" " & vbcrlf

de modo que el texto devuelto por la funcion sería incorrecto, conteniendo aún espacios delante o detrás del salto de línea.

Usando el Do Loop se eliminan todos los espacios, y aunque el texto contenga la cadana:

" " & vbcrlf (con varios espacios) (que en este mensaje parece que solo hay uno)

La función eliminará todos los espacios dejando solo el salto de línea.
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!

Última edición por pkj; 20/04/2010 a las 08:13
  #6 (permalink)  
Antiguo 20/04/2010, 16:10
 
Fecha de Ingreso: marzo-2010
Mensajes: 15
Antigüedad: 14 años
Puntos: 0
Respuesta: Como quitar espacios en blanco en textos de un textbox y ...

Gracias, pkj.

He dejado un nuevo reto en el foro, sobre una implementacion del algoritmo de boyle-moore para efectuar búsquedas en base de datos. ¿Me echas otra manita?

Gracias.
  #7 (permalink)  
Antiguo 21/04/2010, 05:26
 
Fecha de Ingreso: marzo-2010
Mensajes: 15
Antigüedad: 14 años
Puntos: 0
Respuesta: Como quitar espacios en blanco en textos de un textbox y ...

pkj, te he mandado un mensaje privado por una pega que me ha surgido con este asunto....¿Me echas otra mano, por favor?

Etiquetas: blanco, espacios, quitar, textbox, textos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:02.