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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Duda - Strings
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda - Strings  (Leído 2,422 veces)
h0oke


Desconectado Desconectado

Mensajes: 2.059


Coder ~


Ver Perfil WWW
Duda - Strings
« en: 19 Septiembre 2009, 18:35 pm »

Hola, resulta que tengo que resolver lo siguiente: Tengo una texto, el cual posee signos de puntuación, lo que tengo que lograr es que después de cada signo, aparezca un solo espacio en blanco. Quisiera recibir opiniones sobre como resolverlo.


En línea

burbu_1

Desconectado Desconectado

Mensajes: 159


hamen gaoz


Ver Perfil
Re: Duda - Strings
« Respuesta #1 en: 20 Septiembre 2009, 22:46 pm »

hola dynyck,

si los signos de puntuación son siempre los mismos, por ejemplo puntos, puedes separar las "frases" con la función split y después unir todas las frases pasadas por la función trim


Código:
Private Sub Command1_Click()
Dim frases() As String
Dim i As Long
'separas las frases en un array
frases = Split(Text1.Text, ".")
For i = 0 To UBound(frases)
    'añades las frases sin espacios más el punto y un espacio
    Text1.Text = Text1.Text & Trim(frases(i)) & ". "
Next i
'quitas el ". " del final
Text1.Text = Left(Text1.Text, Len(Text1.Text) - 2)
End Sub


si tienes varios signos de puntuación distintos, puedes ir recorriendo todo el texto y comparar, para separar las frases a un array

Código:
Private Sub Command1_Click()
Dim frases() As String
Dim i As Long
Dim n_frases As Long
n_frases = 1
ReDim Preserve frases(n_frases - 1)
For i = 1 To Len(Text1.Text)
    frases(n_frases - 1) = frases(n_frases - 1) & Mid(Text1.Text, i, 1)
    'añades los signos que quieras
    If Mid(Text1.Text, i, 1) = "." Or Mid(Text1.Text, i, 1) = "," Or Mid(Text1.Text, i, 1) = ";"  then
        n_frases = n_frases + 1
        ReDim Preserve frases(n_frases - 1)
    End If
Next i
For i = 0 To n_frases - 1
    Text1.Text = Text1.Text & Trim(frases(i)) & " "
Next i
Text1.Text = Left(Text1.Text, Len(Text1.Text) - 1)
End Sub

Además de la función trim tambien tienes ltrim y rtrim que igual te interesan más.

Espero que te sirva,
saludos.


En línea

h0oke


Desconectado Desconectado

Mensajes: 2.059


Coder ~


Ver Perfil WWW
Re: Duda - Strings
« Respuesta #2 en: 20 Septiembre 2009, 23:30 pm »

Gracias por la respuesta ;).

Un saludo!
En línea

W0lFy


Desconectado Desconectado

Mensajes: 551



Ver Perfil WWW
Re: Duda - Strings
« Respuesta #3 en: 23 Septiembre 2009, 01:11 am »

Te voy a dar una para cualquier caracter de puntuación generalizado
No te lo doy hecho porque ahora no tengo tiempo pero es muy facil:

primero nos creamos una funcion que nos diga si 1 caracter es Signo de puntuacion

Código
  1. Private Sub EsPuntuacion(ByVal letra as char,Byref bandera as boolean)
  2.   select case letra
  3.   case '`'
  4.      bandera=true
  5.   case '´'
  6.      bandera=true
  7.   case 'á'
  8.      bandera=true
  9.   case else
  10.      bandera=false
  11.   end select
  12. end sub
'Despues haremos un bucle
Código
  1. Dim cadena as string
  2. Dim tamanoCad as integer
  3. Dim CadenaSalida as string
  4. Dim bandera as boolean
  5. CadenaSalida=""
  6. cadena ="Hola Pepe"
  7. tamanoCad=Len(cadena)
  8.  
  9. For i=1 To tamanoCad step 1
  10.   EsPuntuacion(mid(cadena,i,1),bandera)
  11.   if bandera then
  12.      CadenaSalida=CadenaSalida & mid(cadena,i,1) & " "
  13.   else
  14.      CadenaSalida & mid(cadena,i,1)
  15.   end if
  16.  
  17. next
  18.  
  19. MsgBox CadenaSalida


pd. La primera funcion no esta bien porque tengo un poco de ambigüedad con VB y los caracteres, pero puedes controlarlo tambien por el numero que representa en la tabla ascii. Un saludo espero que te sirva
« Última modificación: 23 Septiembre 2009, 01:21 am por ¤¤¤K@NuTöM@N¤¤¤ » En línea

K@NuT0
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Memory leak con strings
Programación C/C++
amchacon 3 2,715 Último mensaje 9 Agosto 2013, 15:25 pm
por Eternal Idol
Duda con strings y punteros
Programación C/C++
Ja_90 2 7,658 Último mensaje 1 Noviembre 2014, 03:07 am
por Ja_90
De Real a Racional SIN Strings
Programación General
matutefer 2 1,714 Último mensaje 14 Noviembre 2014, 04:20 am
por engel lex
Strings en C++
Programación C/C++
Fixxed 1 1,694 Último mensaje 11 Agosto 2015, 22:20 pm
por ivancea96
Duda sobre programa en C con STRINGS
Programación C/C++
elWartix 7 2,328 Último mensaje 10 Marzo 2016, 09:31 am
por MAFUS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines