Autor Tema: Recortar carcteres visual basic  (Leído 2727 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Juan Perezl

  • Bit
  • Mensajes: 1
  • Reputación: +0/-0
    • Ver Perfil
Recortar carcteres visual basic
« en: Octubre 20, 2015, 02:32:03 am »
Hola que tal, solicito de su ayuda con este problema estoy trabajando con vb y estoy cargando el contenido de un archivo .csv  ejemplo

"652394532592467968,"","","2015-10-09 08:05:52 +0000","Twitter Web Client","Hay ocasiones en la que mejor prevalecer ‪#‎Sisepuede‬ y seguir adelante.","","","",""

646843948586045440,"","","2015-09-24 00:29:49 +0000","<a href=""http://twitter.com"" rel=""nofollow"">Twitter Web Client</a>","#sisepuede Seguimos adelante :)","","","",""

en el archivo tengo aprox 1000 lineas, lo que quiero hacer en recortar todo y que solo quede el texto y pueda mostrarlo en un listbox

                                                  Hay ocasiones en la que mejor prevalecer #Sisepuede y seguir adelante
Ojala puedan ayudarme saludos

Waldo

  • Gigabyte
  • ****
  • Mensajes: 264
  • Reputación: +22/-0
    • Ver Perfil
Re:Recortar carcteres visual basic
« Respuesta #1 en: Octubre 20, 2015, 09:54:06 am »
el fomato de cada linea es simpre igual? son siempre la misma cantidad de campos x linea?
Me imagino que cada linea esta separada por un CR - LF (salto de linea)
Si es asi, yo primero leeria todo el archivo y lo guardo en una variable.
Despues hago un split, cortando x VbCRLf, ahi ya tenes un array, en donde cada elemento es una linea.
Y despues recorriendo el array de lineas, con cada linea hago otro split separando por las comas.
Ahi tenes otro array, donde cada elemento es un campo, sabiendo en que index está el campo que te interesa, lo podes leer y obtener el texto que te interesa

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Re:Recortar carcteres visual basic
« Respuesta #2 en: Octubre 20, 2015, 12:22:16 pm »
Hola a ver si te sirve esto.



Código: (VB) [Seleccionar]
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        TextBox2.Text = Split(TextBox1.Text, "Twitter Web Client")(1)
        TextBox2.Text = Split(TextBox2.Text, ",")(1)
        TextBox2.Text = Split(TextBox2.Text, """")(1)

    End Sub

Se supone que en textbox1 hay el texto = "652394532592467968,"","","2015-10-09 08:05:52 +0000","Twitter Web Client","Hay ocasiones en la que mejor prevalecer ‪#‎Sisepuede‬ y seguir adelante.","","","",""
« última modificación: Octubre 20, 2015, 12:24:42 pm por E N T E R »
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

Jeronimo

  • Gigabyte
  • ****
  • Mensajes: 402
  • Reputación: +33/-2
    • Ver Perfil
Re:Recortar carcteres visual basic
« Respuesta #3 en: Octubre 20, 2015, 04:24:43 pm »
Hola.
Si fueran 10 campos separados por comas y el texto que te interesa siempre estuviera en el mismo campo, lo que haría es crear una matriz y luego con Split() separar los campos para luego tomar el que me interesa (en este caso, el que está en sexto lugar).

Jerónimo

Jeronimo

  • Gigabyte
  • ****
  • Mensajes: 402
  • Reputación: +33/-2
    • Ver Perfil
Re:Recortar carcteres visual basic
« Respuesta #4 en: Octubre 23, 2015, 10:50:27 pm »
Hola, Juan.
Aquí va el ejemplo que me pediste.
En primer lugar, al leer una línea del archivo CSV habría que quitar todas las comillas.
Tomando el ejemplo que pusiste y habiendo quitado las comillas, se me ocurre hacerlo de esta manera:
Código: (VB) [Seleccionar]
    Dim Texto As String
    Texto = "652394532592467968,,,2015-10-09 08:05:52 +0000,Twitter Web Client,Hay ocasiones en la que mejor prevalecer ?#?Sisepuede? y seguir adelante.,,,,"
    Dim Matriz() As String
    Matriz = Split(Texto, ",")
    MsgBox Matriz(5)
Siendo así, un posible problema sería que en el texto dentro de un campo haya una coma, con lo cual se alteraría la matriz. Previendo eso podrías tener los campos separados por otro carácter en lugar de la coma (y, obviamente, utilizando ese mismo delimitador en la matriz).
Espero que te sirva.
Saludos.

Jerónimo