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

Guardar txt modificado en un datagridview

Estas en el tema de Guardar txt modificado en un datagridview en el foro de .NET en Foros del Web. Buenas noches, alguna idea de como guardar un txt modificado en datagridview. Private Sub CargarToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles CargarToolStripMenuItem.Click Try If (CargarToolStripMenuItem.Text ...
  #1 (permalink)  
Antiguo 04/09/2012, 21:37
 
Fecha de Ingreso: julio-2012
Ubicación: panama
Mensajes: 19
Antigüedad: 11 años, 9 meses
Puntos: 0
Guardar txt modificado en un datagridview

Buenas noches, alguna idea de como guardar un txt modificado en datagridview.
Private Sub CargarToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles CargarToolStripMenuItem.Click

Try
If (CargarToolStripMenuItem.Text <> String.Empty) Then

Dim leer As New StreamReader("d:\Archivos de programa\arroz\especial.dat")

Dim texto As String = ""

Dim count As Integer = 25

Dim split As String() = Nothing

While (Not texto Is Nothing)

texto = leer.ReadLine
If (Not texto Is Nothing) Then

split = texto.Split(New Char() {CChar("'"), CChar(":"), CChar(";")}, count)

DataGridView1.Rows.Add(split(1), split(1), split(2), split(3), split(4), split(5), split(6), split(7), split(8), split(9), split(10), split(11), split(12), split(13), split(14), split(15), split(16), split(17), split(18), split(19), split(20), split(21), split(22), split(23))

End If

End While
Else

MsgBox("Seleccione el archivo a cargar", MsgBoxStyle.Exclamation, "Error")

End If
Catch ex As Exception

MsgBox(ex.Message)

End Try
End Sub


Saludos,
  #2 (permalink)  
Antiguo 06/09/2012, 04:57
 
Fecha de Ingreso: julio-2012
Ubicación: panama
Mensajes: 19
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Guardar txt modificado en un datagridview

Amigos del foro eh intentado con este codigo
Private Sub GuardarToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles GuardarToolStripMenuItem.Click
Dim Guardar As New StreamWriter("d:\Archivos de programa\log\especial.dat")
Guardar.Write(DataGridView1)
End Sub

se crea el archivo especial.dat pero al verificar su contenido esta completamente vacio.
si alguien tiene alguna sugerencia se lo agradeceria.

Saludos,
  #3 (permalink)  
Antiguo 06/09/2012, 04:58
 
Fecha de Ingreso: julio-2012
Ubicación: panama
Mensajes: 19
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Guardar txt modificado en un datagridview

Cita:
Iniciado por karlosc Ver Mensaje
Buenas noches, alguna idea de como guardar un txt modificado en datagridview.
Private Sub CargarToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles CargarToolStripMenuItem.Click

Try
If (CargarToolStripMenuItem.Text <> String.Empty) Then

Dim leer As New StreamReader("d:\Archivos de programa\arroz\especial.dat")

Dim texto As String = ""

Dim count As Integer = 25

Dim split As String() = Nothing

While (Not texto Is Nothing)

texto = leer.ReadLine
If (Not texto Is Nothing) Then

split = texto.Split(New Char() {CChar("'"), CChar(":"), CChar(";")}, count)

DataGridView1.Rows.Add(split(0), split(1), split(2), split(3), split(4), split(5), split(6), split(7), split(8), split(9), split(10), split(11), split(12), split(13), split(14), split(15), split(16), split(17), split(18), split(19), split(20), split(21), split(22), split(23))

End If

End While
Else

MsgBox("Seleccione el archivo a cargar", MsgBoxStyle.Exclamation, "Error")

End If
Catch ex As Exception

MsgBox(ex.Message)

End Try
End Sub


Saludos,
  #4 (permalink)  
Antiguo 06/09/2012, 08:57
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Guardar txt modificado en un datagridview

Cita:
Iniciado por karlosc Ver Mensaje
Amigos del foro eh intentado con este codigo
Private Sub GuardarToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles GuardarToolStripMenuItem.Click
Dim Guardar As New StreamWriter("d:\Archivos de programa\log\especial.dat")
Guardar.Write(DataGridView1)
End Sub

se crea el archivo especial.dat pero al verificar su contenido esta completamente vacio.
si alguien tiene alguna sugerencia se lo agradeceria.

Saludos,
Pero como vas a guardar asi!!! no te das cuenta que el DatagridView es un Objeto lo que tienes que hacer es recorrer manualmente cada fila del DatagridView para poder guardarlo

Código vb:
Ver original
  1. ' GENERANDO ALGUNAS VARIABLES UTILES
  2.        Const DEL As String = ";"
  3.         Const TXT As String = "C:\www\exportado.txt"
  4.  
  5.         ' GERENANDO EL ARCHIVO
  6.        Using f As New IO.StreamWriter(TXT, True)
  7.  
  8.             ' AGREGANDO LAS COLUMNAS
  9.            Dim col As String = ""
  10.             For Each c As DataGridViewColumn In DataGridView1.Columns
  11.                 col &= c.HeaderText & DEL
  12.             Next
  13.             ' AGREGANDO LAS FILAS
  14.            Dim row As String = ""
  15.             For Each r As DataGridViewRow In DataGridView1.Rows
  16.                 For Each c As DataGridViewColumn In DataGridView1.Columns
  17.                     row &= Convert.ToString(r.Cells(c.HeaderText).Value) & DEL
  18.                 Next
  19.                 row &= Environment.NewLine
  20.             Next
  21.  
  22.             'AGREGANDO LA INFORMACION
  23.            f.WriteLine(col)
  24.             f.WriteLine(row)
  25.  
  26.             'ABRIENDO EL ARCHIVO
  27.            Process.Start(TXT)
  28.  
  29.         End Using
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #5 (permalink)  
Antiguo 07/09/2012, 18:21
 
Fecha de Ingreso: julio-2012
Ubicación: panama
Mensajes: 19
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Guardar txt modificado en un datagridview

Gracias Dradi7 por tu valiosa ayuda, mira he modificado ciertas cositas para adaptarlo a mis necesidades. pero se me queda un pequeño detalle. que acontinuacion te describo.
necesito modificar el contenido del archivo especial.dat

'5' 'Pinturas yyyyy Gl' ' 0000000789' '002000' ' '

aqui agrego un mensaje en el datagridview

5' 'Pinturas yyyyy Gl' ' 0000000789' '002000' ' oferta valida hasta dic 2013 ' '

el mensaje se crea correctamente cuando creo el archivo, pero no me crea la comilla de inicio y me agrega una adicional al final. tu crees que sea posible sobrescribir el archivo si existe. y que la primera fila del archivo que cree vacio no se cree vacio.

saludos,

gracias

Private Sub GuardarToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles GuardarToolStripMenuItem.Click
' GENERANDO ALGUNAS VARIABLES UTILES
Const DEL As String = "' '"
Const Dat As String = "d:\Archivos de programa\log\especial.dat"
' GERENANDO EL ARCHIVO
Using f As New IO.StreamWriter(Dat, True)
' AGREGANDO LAS COLUMNAS
Dim col As String = ""
For Each c As DataGridViewColumn In DataGridView1.Columns
Next
' AGREGANDO LAS FILAS
Dim row As String = ""
For Each r As DataGridViewRow In DataGridView1.Rows
For Each c As DataGridViewColumn In DataGridView1.Columns
row &= Convert.ToString(r.Cells(c.HeaderText).Value) & DEL

Next
row &= Environment.NewLine
Next
'AGREGANDO LA INFORMACION
f.WriteLine(col)
f.WriteLine(row)
'ABRIENDO EL ARCHIVO
Process.Start(Dat)
End Using
End Sub
  #6 (permalink)  
Antiguo 08/09/2012, 07:39
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Guardar txt modificado en un datagridview

cambia esta linea :
Código vb:
Ver original
  1. row &= Convert.ToString(r.Cells(c.HeaderText).Value) & DEL
por esta :
Código vb:
Ver original
  1. row = row & "'" & Convert.ToString(r.Cells(c.HeaderText).Value) & "' "
Nos cuentas! Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #7 (permalink)  
Antiguo 09/09/2012, 06:48
 
Fecha de Ingreso: julio-2012
Ubicación: panama
Mensajes: 19
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Guardar txt modificado en un datagridview

'5' 'Pinturas yyyyy Gl' ' 0000000789' '005000' ' oferta valida hasta dic 2013 '
'9' 'Pinturas yyyyy Gl' ' 0000000789' '009000' ' oferta valida hasta dic 2013 '
'1' 'Pinturas yyyyy Gl' ' 0000000789' '001000' ' oferta valida hasta dic 2013 '
'3' 'Pinturas yyyyy Gl' ' 0000000789' '003000' ' oferta valida hasta dic 2013 '


Ok amigos Buenos dias, la solución llego gracias a ustedes, pero ahora tengo un pequeño detalle
al crear el archivo se me crea el encabezado de la primera fila vacio (no debe suceder) y la final se me crean dos tabulaciones. con una tabulación es suficiente para que otra aplicación la pueda interpretar.

Saludos,

Gracias a todos
  #8 (permalink)  
Antiguo 10/09/2012, 09:35
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Guardar txt modificado en un datagridview

Pero esto ya depende de las configuraciones de tu datagridview

Por ejemplo supongo que el encabezado no se muestra por que los nombres de la columna están vacías.

Y otro la cuestion de las tabulaciones podria ser porque tienes una fila de mas en tu datagridview por la propiedad AllowUserToAddRows supongo
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #9 (permalink)  
Antiguo 10/09/2012, 19:55
 
Fecha de Ingreso: julio-2012
Ubicación: panama
Mensajes: 19
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Guardar txt modificado en un datagridview

Buenas noches amigo Dradi7 le confirmo que las columnas contienen sus respectivos, he suprimido la linea col &= c.HeaderText & DEL puesto que no deseo mostrar el nombre de las columnas a la hora de guardar la columna modificada en el datagridview, por otro lado la propiedad AllowUserToAddRows la tengo en false para no permitir agregar filas. en espera de sus comentarios


Saludos
  #10 (permalink)  
Antiguo 13/09/2012, 18:30
 
Fecha de Ingreso: julio-2012
Ubicación: panama
Mensajes: 19
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Guardar txt modificado en un datagridview

Buenas noches amigos del foro les traigo algunos ajustes realizados a fin de pulir la aplicación. gracias al apoyo del amigo Dradi7 y Aquaventus sin embargo tengo la incertidunbre de porque al crear el archivo, al final me crea dos tab y si quiero volver a cargar el archivo creado no me lo permite si no le quito un tab. eh aqui los cambios realizados.

Private Sub GuardarToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles GuardarToolStripMenuItem.Click

' GENERANDO ALGUNAS VARIABLES UTILES
If File.Exists("c:\carpeta\archivo.DAT") Then
File.Delete("c:\carpeta\archivo.DAT")
End If

Const Dat As String = ("c:\carpeta\archivo.DAT")
' GERENANDO EL ARCHIVO
Using f As New IO.StreamWriter(Dat, True)

' AGREGANDO LAS COLUMNAS
Dim col As String = ""
' AGREGANDO LAS FILAS
Dim row As String = ""
Dim i As Integer = 0
For Each r As DataGridViewRow In DataGridView1.Rows
For Each c As DataGridViewColumn In DataGridView1.Columns
row = row & "'" & Convert.ToString(r.Cells(c.HeaderText).Value) & "' "
Next
If i < DataGridView1.Rows.Count - 1 Then row &= Environment.NewLine
Next

'AGREGANDO LA INFORMACION
f.WriteLine(row)

End Using

End Sub


Saludos,
  #11 (permalink)  
Antiguo 14/09/2012, 00:36
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Guardar txt modificado en un datagridview

Seria bueno que pongas que datos tienes en tu datagridview
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #12 (permalink)  
Antiguo 15/09/2012, 19:05
 
Fecha de Ingreso: julio-2012
Ubicación: panama
Mensajes: 19
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Guardar txt modificado en un datagridview

Buenas noches Amigo Dradi7, si se refiere a como esta configurado el datagridview seria esta.

'DataGridView1
'
Me.DataGridView1.AllowUserToAddRows = False
Me.DataGridView1.AllowUserToDeleteRows = False
Me.DataGridView1.AllowUserToResizeColumns = False
Me.DataGridView1.AllowUserToResizeRows = False
DataGridViewCellStyle1.BackColor = System.Drawing.Color.PaleGoldenrod
DataGridViewCellStyle1.SelectionBackColor = System.Drawing.Color.SeaShell
Me.DataGridView1.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle1
Me.DataGridView1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D
Me.DataGridView1.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle .Sunken
DataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment. MiddleLeft
DataGridViewCellStyle2.BackColor = System.Drawing.Color.Khaki
DataGridViewCellStyle2.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
DataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.WindowText
DataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight
DataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText
DataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.[True]
Me.DataGridView1.ColumnHeadersDefaultCellStyle = DataGridViewCellStyle2
Me.DataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeig htSizeMode.DisableResizing
Me.DataGridView1.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.Co11, Me.Col3, Me.Col5, Me.Col7, Me.Col9, Me.Co11, Me.Co13, Me.Co15, Me.Co17, Me.Col19, Me.Col21, Me.Col23})
Me.DataGridView1.Dock = System.Windows.Forms.DockStyle.Fill
Me.DataGridView1.EnableHeadersVisualStyles = False
Me.DataGridView1.GridColor = System.Drawing.Color.DarkSalmon
Me.DataGridView1.Location = New System.Drawing.Point(0, 24)
Me.DataGridView1.Name = "DataGridView1"
Me.DataGridView1.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle .None
DataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment. MiddleLeft
DataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.Control
DataGridViewCellStyle3.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
DataGridViewCellStyle3.ForeColor = System.Drawing.SystemColors.WindowText
DataGridViewCellStyle3.SelectionBackColor = System.Drawing.SystemColors.Highlight
DataGridViewCellStyle3.SelectionForeColor = System.Drawing.Color.HotPink
DataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.[True]
Me.DataGridView1.RowHeadersDefaultCellStyle = DataGridViewCellStyle3
Me.DataGridView1.RowHeadersVisible = False
DataGridViewCellStyle4.BackColor = System.Drawing.Color.Beige
Me.DataGridView1.RowsDefaultCellStyle = DataGridViewCellStyle4
Me.DataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.Ful lRowSelect
Me.DataGridView1.Size = New System.Drawing.Size(805, 252)
Me.DataGridView1.TabIndex = 1
Me.DataGridView1.TabStop = False

Saludos,
  #13 (permalink)  
Antiguo 16/09/2012, 06:25
 
Fecha de Ingreso: julio-2012
Ubicación: panama
Mensajes: 19
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Guardar txt modificado en un datagridview

Buenos dias Sres. les cuento como esta el asunto.
Tomo el archivo .dat original lo cargo en el datagridview, modifico una columna la guardo. se me genera el archivo.dat si quiero volver a cargar el archivo antes modificado me lo carga en el datagridview pero al intentar realizar otra modificacion no me lo permite los controles de cargar y guardar se bloquean no obedecen. tengo que cerrar la aplicacion desde el administrador de tareas. revisando me di cuenta que el achivo modificado tiene dos saltos de carro o de linea, cuando el archivo original tiene un salto.
si le quito un salto de carro me lo carga y me permite realizar nuevamente las modificaciones. eh aqui el codigo guardar.

Private Sub GuardarToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles GuardarToolStripMenuItem.Click

' GENERANDO ALGUNAS VARIABLES UTILES
If File.Exists("D:\EXPORTAR\ARCHIVO.DAT") Then
File.Delete("D:\EXPORTAR\ARCHIVO.DAT")
End If

Const Dat As String = ("D:\EXPORTAR\ARCHIVO.DAT")
' GERENANDO EL ARCHIVO
Using f As New IO.StreamWriter(Dat, True)

' AGREGANDO LAS COLUMNAS
Dim col As String = ""
' AGREGANDO LAS FILAS
Dim row As String = ""
Dim i As Integer = 0
For Each r As DataGridViewRow In DataGridView1.Rows
For Each c As DataGridViewColumn In DataGridView1.Columns
row = row & "'" & Convert.ToString(r.Cells(c.HeaderText).Value) & "' "
Next
If i < DataGridView1.Rows.Count - 1 Then row &= Environment.NewLine
Next

'AGREGANDO LA INFORMACION
f.WriteLine(row)
End Using

End Sub

por cierto tengo la opción AllUserToAddRows en false


Saludos,

Etiquetas: datagridview, txt
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 03:36.