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

como guardar datos en una matriz desde un archivo csv

Estas en el tema de como guardar datos en una matriz desde un archivo csv en el foro de .NET en Foros del Web. Hola buenas. estoy haciendo una app para una pocket, el problema es que e intentado guardar los datos del .csv en una matriz pero no ...
  #1 (permalink)  
Antiguo 09/06/2014, 11:31
 
Fecha de Ingreso: junio-2014
Mensajes: 10
Antigüedad: 9 años, 10 meses
Puntos: 0
Pregunta como guardar datos en una matriz desde un archivo csv

Hola buenas.
estoy haciendo una app para una pocket, el problema es que e intentado guardar los datos del .csv en una matriz pero no me resulta, lo tengo que hacer asi para que no se demore en procesar cuando busco por cod. Aca una parte del codigo.

Public objR As New StreamReader("\archivo.csv")
Public oLine As String = ""
Public oTexto As New ArrayList()
Public split() As String
Public separ As String = ";"

Do
oLine = objR.ReadLine
split = oLine.Split(";")

If Not oLine Is Nothing Then
For i = 0 To split.Length - 1
If TextBox1.Text = split(i) Then
'MsgBox("Se encuentra el codigo" & vbCrLf & split(i) & vbCrLf & i)
TextBox2.Text = (oLine)
End If
'MsgBox(split(i) & vbCrLf & i)
Next
End If
oTexto.Add(oLine)
Loop Until oLine Is Nothing
MsgBox("No se encontro el cod")



Ayuda..
  #2 (permalink)  
Antiguo 09/06/2014, 20:44
 
Fecha de Ingreso: mayo-2013
Ubicación: Chaco, Argentina
Mensajes: 45
Antigüedad: 10 años, 11 meses
Puntos: 3
Sonrisa Respuesta: como guardar datos en una matriz desde un archivo csv

Hola hades0024, el código se ve correctamente y debería funcionar, salvo unos pequeños detalles sin importancia casi: la línea del Split = oLine.Split(";") que debe ir dentro del If, y también habría que agregarle un if para que el último MsgBox no se muestre en caso de haber encontrado el dato:
Código vb.net:
Ver original
  1. Public objR As New StreamReader("\archivo.csv")
  2. Public oLine As String = ""
  3. Public oTexto As New ArrayList()
  4. Public split() As String
  5. Public separ As String = ";"
  6.  
  7. Private Encontro as Boolean
  8.  
  9. Do
  10.     oLine = objR.ReadLine
  11.  
  12.     If Not oLine Is Nothing Then
  13.         split = oLine.Split(";")
  14.         For i = 0 To split.Length - 1
  15.             If TextBox1.Text = split(i) Then
  16.                 Encontro = True
  17.                 'MsgBox("Se encuentra el codigo" & vbCrLf & split(i) & vbCrLf & i)
  18.                 TextBox2.Text = (oLine)
  19.             End If
  20.             'MsgBox(split(i) & vbCrLf & i)
  21.         Next
  22.     End If
  23.  
  24.     oTexto.Add(oLine)
  25. Loop Until oLine Is Nothing
  26. If Not Encontro Then
  27.     MsgBox("No se encontro el cod")
  28. End If
Otra cosa que hay que ver es si se debe seguir buscando luego de haber encontrado una ocurrencia, o se puede parar la búsqueda con Exit Do.
Ahora bien, existe otra manera más resumida y más veloz de lograr lo mismo sin usar el Split, pero habría que ver si se puede aplicar a tu caso, ya que no es una fórmula general y depende de los datos:
Código vb.net:
Ver original
  1. Public objR As New StreamReader("\archivo.csv")
  2. Public oLine As String = ""
  3. Public oTexto As New ArrayList()
  4. Public split() As String
  5. Public separ As String = ";"
  6.  
  7. Private Encontro as Boolean
  8.  
  9. Do
  10.     oLine = objR.ReadLine
  11.  
  12.     If Not oLine Is Nothing Then
  13.         If oLine.IndexOf(TextBox1.Text) >= 0 Then
  14.             Encontro = True
  15.             TextBox2.Text = (oLine)
  16.         End If
  17.     End If
  18.  
  19.     oTexto.Add(oLine)
  20. Loop Until oLine Is Nothing
  21. If Not Encontro Then
  22.     MsgBox("No se encontro el cod")
  23. End If
¡Saludos cordiales desde Argentina!
  #3 (permalink)  
Antiguo 11/06/2014, 10:38
 
Fecha de Ingreso: junio-2014
Mensajes: 10
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: como guardar datos en una matriz desde un archivo csv

Ok. muchas gracias por responder, la verdad tuve que mejorar el cod. para poder buscar por 'codigo', porque se demoraba mucho en buscar por ej. el ultimo (el .csv es grande)

adjunto parte de lo que hice.

Código vb:
Ver original
  1. Public objR As New StreamReader("\archivo.csv")
  2.     Public oLine As String = ""
  3.     Public oTexto As New ArrayList()
  4.     Public split() As String
  5.  
  6. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  7.  
  8.         Do
  9.             oLine = objR.ReadLine
  10.             If Not oLine Is Nothing Then
  11.                 oTexto.Add(oLine)
  12.             End If
  13.         Loop Until oLine Is Nothing
  14.         objR.Close()
  15.     End Sub
  16.  
  17. <BOTON>
  18.  
  19. Dim bool As Boolean = False
  20.         For Each Me.oLine In oTexto
  21.             split = oLine.Split(";")
  22.             If Not oLine Is Nothing Then
  23.                 For i = 0 To split.Length - 1
  24.                     If split(i) = split(Nº_columna_codigo) Then
  25.                         If TextBox1.Text = split(i) Then
  26.                             If TextBox1.Text <> "" Then
  27.                                 bool = True
  28.                                 TextBox2.Text = ("Se encuentra el código")
  29.                              End If
  30.                         End If
  31.                     End If
  32.                 Next
  33.             End If
  34.         Next
  35.         If Not bool Then
  36.             MsgBox("No se encontro el código")
  37.         End If
  38.         oTexto.Add(oLine)
  #4 (permalink)  
Antiguo 11/06/2014, 10:44
 
Fecha de Ingreso: junio-2014
Mensajes: 10
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: como guardar datos en una matriz desde un archivo csv

Tenia una consulta mas que hacerte, por favor si me pudieses ayudar, ahora tengo que crear un boton que si me encuentra el cod lo aprete y se cree una columna que le ponga ok (al lado de esa fila).
Se que se puede editar con streamwriter, pero no se como, de ante mano gracias por responder javidotnet

Saludos!!!

Última edición por hades0024; 11/06/2014 a las 11:35
  #5 (permalink)  
Antiguo 11/06/2014, 16:14
 
Fecha de Ingreso: mayo-2013
Ubicación: Chaco, Argentina
Mensajes: 45
Antigüedad: 10 años, 11 meses
Puntos: 3
Pregunta Respuesta: como guardar datos en una matriz desde un archivo csv

Cita:
Tenia una consulta mas que hacerte, por favor si me pudieses ayudar, ahora tengo que crear un boton que si me encuentra el cod lo aprete y se cree una columna que le ponga ok (al lado de esa fila).
Se que se puede editar con streamwriter, pero no se como, de ante mano gracias por responder javidotnet
Claro que sí, con mucho gusto, pero antes tenés que aclararme unos detalles que no logro entender:

1) a qué te referís con "columna" y con "ok (al lado de esa fila)"
2) ¿por qué querés usar streamWriter?

¡Saludos cordiales desde Argentina!... con la atención puesta en Brasil !!!
  #6 (permalink)  
Antiguo 11/06/2014, 18:13
 
Fecha de Ingreso: junio-2014
Mensajes: 10
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: como guardar datos en una matriz desde un archivo csv

-Hola buenas gracias por contestar tan rápido.

Mira tengo un form1 que tiene un botón que valida, si existe el código de barra, trae los datos que están relacionados con la fila, cuando tengo esos datos, el usuario se fija si el código corresponde al departamento (este botón esta listo).

-si corresponde el código al departamento, tengo otro botón en ese form1 que se llama "ok", al apretarlo debería crearse una columna adicional que guarde un string "ok" al lado de ese código (fila).

- si esta el código pero no corresponde al departamento, tengo otro botón que sirve para editar (me lleva a otro form), en este form2 traigo la descripción de ese código, tengo un combobox que tengo que llenar con la columna de departamento(este es otro .csv que tiene el código de departamento con su descripción), el usuario elige el departamento correcto y al guardar con otro botón debería guardarse en esa misma columna correspondiente a su fila (la descripción de departamento).

- la idea es hacer otro .csv igual al original pero con una columna adicional que tenga "ok" o "Nº de departamento".

- StreamWriter por lo que e leído sirve para escribir un .csv

- De ante mano gracias por responder.

- Saludos cordiales igual, y esperando que empiece el mundial mañana. :D

Última edición por hades0024; 12/06/2014 a las 10:59

Etiquetas: vb
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 01:29.