Foros del Web » Programación para mayores de 30 ;) » .NET »

Portapapeles a grid vb 2005

Estas en el tema de Portapapeles a grid vb 2005 en el foro de .NET en Foros del Web. Hola, Tengo un problema con el clipboard... Lo que intento hacer es subir los datos de el portapapeles a una tabla de una base de ...
  #1 (permalink)  
Antiguo 10/12/2009, 14:59
 
Fecha de Ingreso: mayo-2008
Mensajes: 25
Antigüedad: 16 años
Puntos: 0
Portapapeles a grid vb 2005

Hola,

Tengo un problema con el clipboard... Lo que intento hacer es subir los datos de el portapapeles a una tabla de una base de datos por medio de vb 2005, pero el paso que no logro superar es como dar formato a lo que trae el portapapeles. Los datos que trae son de una tabla de una pagina de internet, y si los copio a excel si lo divide en columnas, se me ocurre poner los datos del portapapeles a un grid y asi ya poder trabajarlos, pero no logro dividir el portapapeles en lineas y columnas.

Se me ocurrio tambien pasarlo a un archivo de texto y de ahi subirlo, pero no se por que caracter esta dividido

No puedo dar con la solucion, ayudenme por favor!!

Los datos que trae son algo asi:

EAN SKU Descripción Pzas
7506174111120 1481082 CINTURON LEKS E1621925 1
7506174113551 1480740 CINTURON LEKS E1A11908 2

muchas gracias
  #2 (permalink)  
Antiguo 10/12/2009, 15:31
Avatar de eledgarr  
Fecha de Ingreso: octubre-2008
Ubicación: La ciudad de la esperanza
Mensajes: 133
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: Portapapeles a grid vb 2005

Yo hice algo muy parecido el caracter que divide cada columna del archivo excel en el txt es el tabulador y puedes obtener un array de esos elementos por cada linea leida del txt aplicando un split por ejemplo:

linea_leida.Split(Chr(9)) y asi te crea tu array de elementos

pruebalo y si tienes alguna duda comentas
__________________
Si te sirve lo que te escribo regalame un karma positivo
-----------------------------------------------------------------------
Estoy aqui no por que conozco mucho, estoy para ignorar menos
  #3 (permalink)  
Antiguo 10/12/2009, 17:44
 
Fecha de Ingreso: mayo-2008
Mensajes: 25
Antigüedad: 16 años
Puntos: 0
Respuesta: Portapapeles a grid vb 2005

si, muchas gracias eledgarr, no use el chr(10) pero si encontre como esta dividido el clipboard para hacer una matriz y ponerla en el grid esta es la solucion

Sub portagrid()
Dim rows As Integer = 0
Dim cols As Integer = 0

Dim s As String = Clipboard.GetText
Dim lines() As String = s.Split(vbLf)



For Each line As String In lines

dgData.Rows.Add()
Dim sCells() As String = line.Split(vbTab)

For cols = 0 To sCells.Length - 1

dgData.Item(cols, rows).Value = sCells(cols).ToString

Next

rows += 1


Next


End Sub
  #4 (permalink)  
Antiguo 11/12/2009, 12:24
Avatar de eledgarr  
Fecha de Ingreso: octubre-2008
Ubicación: La ciudad de la esperanza
Mensajes: 133
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: Portapapeles a grid vb 2005

Con esto se ahorra uno el txt vaya que bien:

Dim s As String = Clipboard.GetText
Dim lines() As String = s.Split(vbLf)

y vbTab en lugar de Chr(9) se ve más elegante

pues aprendi algo nuevo y me ahorraste muchas lineas para abrir el txt copiar el portapapeles, leer el txt y cerrar el txt, gracias
__________________
Si te sirve lo que te escribo regalame un karma positivo
-----------------------------------------------------------------------
Estoy aqui no por que conozco mucho, estoy para ignorar menos
  #5 (permalink)  
Antiguo 11/12/2009, 12:30
Avatar de eledgarr  
Fecha de Ingreso: octubre-2008
Ubicación: La ciudad de la esperanza
Mensajes: 133
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: Portapapeles a grid vb 2005

Con esto se ahorra uno el txt vaya que bien:

Dim s As String = Clipboard.GetText
Dim lines() As String = s.Split(vbLf)

y vbTab en lugar de Chr(9) se ve más elegante

pues aprendi algo nuevo y me ahorraste muchas lineas para abrir el txt copiar el portapapeles, leer el txt y cerrar el txt, gracias
__________________
Si te sirve lo que te escribo regalame un karma positivo
-----------------------------------------------------------------------
Estoy aqui no por que conozco mucho, estoy para ignorar menos
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:47.