elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  como adicionar espacios en una cadena de texto?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: como adicionar espacios en una cadena de texto?  (Leído 4,922 veces)
byway

Desconectado Desconectado

Mensajes: 181


^^,


Ver Perfil
como adicionar espacios en una cadena de texto?
« en: 17 Noviembre 2011, 07:35 am »

buenas ... hace tiempos no hago nada con visual basic, por el trabajo .. mi problema es como puedo adicionar espacios a una cadena de texto, por ejemplo a la cadena 1234567890 adicionar espacios cada 2 digitos para que quede asi :

12 34 56 78 90

trate de usar la funcion split pero como crear un delimitador..
pienso que leyendo toda la cadena y recorrer cada 2 caracteres y adiconar un espacio y luego sumarle 2 caracteres mas y asi hasta el final de toda la cadena, pero me pierdo en eso de recorrer 2 caracteres y pausarlo para adicionar una espacio.

toda sugerencia es bienvenida.


En línea

seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: como adicionar espacios en una cadena de texto?
« Respuesta #1 en: 17 Noviembre 2011, 08:45 am »

usa mid() para extraer parte de la cadena y en un string temporal vas armando
el string con el espacio.


En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: como adicionar espacios en una cadena de texto?
« Respuesta #2 en: 17 Noviembre 2011, 10:13 am »

ammm lo tomo algo asi como reto por que ando algo aburrido:

Código
  1.  
  2. Private Function spaceWidth(ByRef sStr As String, ByVal lLnWord As Long, ByVal lLenSpace As Long) As Long
  3. ' // La funcion retorna la cantidad de ESPACIOS entre palabras... retorna -1 cuando hay un error...
  4. Dim sTmp    As String
  5. Dim lSize   As Long
  6. Dim i       As Long
  7. Dim j       As Long
  8.  
  9.    spaceWidth = -1     '   **  Codigo de Error de retorno.
  10.    If (lLnWord <= &H0) Then Exit Function
  11.  
  12.    '   **  Calculamos las separaciones requeridas.
  13.    lSize = (Len(sStr) \ lLnWord)
  14.    If (lSize <= &H1) Or (lLenSpace = &H0) Then '   //  Dimensiones (si hay >=2 grupos calculamos, de lo contrario cancelamos).
  15.        Exit Function
  16.    End If
  17.    '   **  Cantidad de Dimenciones (Espacios entre "Palabras")...
  18.    spaceWidth = (lSize - 1)
  19.    ' **  Longitud del buffer requerido...
  20.    lSize = ((lSize * lLnWord) + ((lSize - 1) * lLenSpace))
  21.  
  22.    '   ******************************
  23.    '   **  Si es de longitudes errones este trozo corrije eso...
  24.    '   **      sStr = "12345678904"
  25.    '   **      spaceWidth sStr, 2, 2
  26.    '   ******************************
  27.    j = (Len(sStr) Mod lLnWord)
  28.    If Not (j = &H0) Then
  29.        spaceWidth = (spaceWidth + 1) ' **  Cantidad de Dimenciones (Espacios entre "Palabras")...
  30.        lSize = lSize + j + lLenSpace ' **  Longitud del buffer requerido...
  31.    End If
  32.    '   **  Buffer
  33.    sTmp = Space$(lSize)
  34.    '   **  Empresamos a separar las "Palabras" en las longitudes dadas...
  35.    j = 1
  36.    For i = 1 To lSize Step (lLnWord + lLenSpace)
  37.        Mid$(sTmp, i, lLnWord) = Mid$(sStr, j, lLnWord)
  38.        j = j + lLnWord
  39.    Next
  40.    sStr = sTmp '   **  Seria mejor un metodo de intercambio de Punteros asi este proceso sera mas rapido...
  41. End Function
  42.  
  43.  

ejemplo:

Código
  1.  
  2. Private Sub Form_Load()
  3. Dim sStr        As String
  4.    sStr = "12345678904"
  5.    MsgBox sStr
  6.  
  7.  
  8.    spaceWidth sStr, 50, 10
  9.    MsgBox sStr
  10.  
  11.    sStr = "12345678904"
  12.    spaceWidth sStr, 0, 10 ' // Retorna la funcion -1 y es por que hay un error de parametros...
  13.    MsgBox sStr
  14.  
  15.    sStr = "12345678904"
  16.    spaceWidth sStr, 5, 10
  17.    MsgBox sStr
  18.  
  19.    sStr = "12345678904"
  20.    spaceWidth sStr, 2, 1
  21.    MsgBox sStr
  22. End Sub
  23.  
  24.  

Dulces Lunas!¡.
« Última modificación: 17 Noviembre 2011, 10:19 am por BlackZeroX (Astaroth) » En línea

The Dark Shadow is my passion.
byway

Desconectado Desconectado

Mensajes: 181


^^,


Ver Perfil
Re: como adicionar espacios en una cadena de texto?
« Respuesta #3 en: 17 Noviembre 2011, 20:04 pm »

usa mid() para extraer parte de la cadena y en un string temporal vas armando
el string con el espacio.


es lo que hize luego de postear mi problemita, pero igual me pierda jajaja:

Código
  1. Dim strCadena As String
  2. Dim strTemp As String
  3. Dim i As Integer
  4.  
  5. strCadena = Text1.Text
  6.  
  7. For i = 1 To Len(strCadena)
  8.    strTemp = Mid(strCadena, i, 2)
  9.    Text2.Text = Text2.Text & (strTemp & " ")
  10. Next
  11.  

esto funciona bien cuando solo es para separar un caracter, pero para dos no.
estuve revisando la funcion creada por BlackZeroX y esta bien hecha, pero como que tiene muchas lineas, pensaba en algo mas simple pero ni modo ..

Saludos.
En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: como adicionar espacios en una cadena de texto?
« Respuesta #4 en: 17 Noviembre 2011, 20:38 pm »

Yo hice esta
sin nada temporal todo in the fly  >:D:

Código
  1. Private Sub WithSpace(byref Strs As String, ByVal Chars As Long, ByVal Spaces As Long)
  2. Dim n           As Long
  3. Dim l           As Long
  4.  
  5.    l = Len(Strs)
  6.    If Not Chars > &H0 Then Exit Sub
  7.    If Not Spaces > &H0 Then Exit Sub
  8.  
  9.    n = Chars
  10.    Do While (n < l)
  11.        Strs = Strs & Space$(Spaces): l = l + Spaces
  12.        Mid$(Strs, n + &H1, l) = (Space$(Spaces) & Mid$(Strs, n + &H1, l))
  13.        n = n + Chars + Spaces
  14.    Loop
  15.  
  16. End Sub


Código
  1. s = "12345678901"
  2. Call WithSpace(s, 2, 5)
  3.  
  4. = "12     34     56     78     90     1"
  5.  

Código
  1. s = "12345678901"
  2. Call WithSpace(s, 4, 3)
  3.  
  4. = "1234   5678   901"
  5.  


Código
  1. s = "12345678901"
  2. Call WithSpace(s, 6, 2)
  3.  
  4. = "123456  78901"


 
« Última modificación: 17 Noviembre 2011, 20:44 pm por RHL » En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: como adicionar espacios en una cadena de texto?
« Respuesta #5 en: 17 Noviembre 2011, 20:46 pm »


estuve revisando la funcion creada por BlackZeroX y esta bien hecha, pero como que tiene muchas lineas, pensaba en algo mas simple pero ni modo ..


El codigo contempla TODOS los errores posibles... si no quieres tantas lineas pues solo quita lo que no quieras...

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: como adicionar espacios en una cadena de texto?
« Respuesta #6 en: 17 Noviembre 2011, 21:23 pm »

@RHL
Corta y precisa.

Sangrientas Lunas!¡.
En línea

The Dark Shadow is my passion.
raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: como adicionar espacios en una cadena de texto?
« Respuesta #7 en: 17 Noviembre 2011, 22:42 pm »

@byway
Usa el for con Step 2 para que vaya de 2 en 2 :P

Código
  1. Dim strCadena As String
  2. Dim strTemp As String
  3. Dim i As Integer
  4.  
  5. strCadena = Text1.Text
  6.  
  7. For i = 1 To Len(strCadena) Step 2
  8.    strTemp = Mid(strCadena, i, 2)
  9.    Text2.Text = Text2.Text & (strTemp & " ")
  10. Next
  11.  
« Última modificación: 17 Noviembre 2011, 22:57 pm por raul338 » En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: como adicionar espacios en una cadena de texto?
« Respuesta #8 en: 17 Noviembre 2011, 22:59 pm »

@byway
El hecho de que la funcion de BlackZeroX tenga varias lineas no significa que sea lenta
de hecho es la mas rapida y super eficiente  >:D

@RHL
Corta y precisa.

Sangrientas Lunas!¡.
>:D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Borrar espacios de una cadena
Java
GaLaN GaLaNaSo 3000 0 4,243 Último mensaje 5 Septiembre 2004, 12:53 pm
por GaLaN GaLaNaSo 3000
Como cifrar en MD5 una cadena de texto en VB?
Programación Visual Basic
Soporte_88 1 5,067 Último mensaje 4 Agosto 2005, 20:13 pm
por {_The_Alwar_}
quitar espacios en cadena ? « 1 2 3 »
Programación C/C++
Darioxhcx 25 27,608 Último mensaje 27 Julio 2010, 01:26 am
por Littlehorse
¿Cómo cortar una cadena string separado por espacios?
.NET (C#, VB.NET, ASP)
Meta 6 6,037 Último mensaje 4 Diciembre 2015, 06:51 am
por Meta
[C++] ¿Cómo me puede leer un cin de una cadena de texto sin contar espacios?
Programación C/C++
DeIMachine 2 2,736 Último mensaje 17 Enero 2016, 20:20 pm
por DeIMachine
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines