Título: Buenas necesito ayuda como puedo enviar un RichTextBox a un datagridview en vb
Publicado por: fulltower en 20 Diciembre 2018, 04:27 am
Buenas necesito ayuda como puedo enviar un RichTextBox a un datagridview, aqui dejo una imagen del RichTextBox la cual tiene separador que es : "|" nombre | apellido| edad | estado civil , y esto sea enviado al datagriview donde sea nombre apellido edad y estado civil, espero me puedan ayudar con esto saludos(http://prntscr.com/lx9n01) un ejemplo:
en el RichTextBox:
maria | perez | 35años | casada jose | lopes | 40años | divorciado vanessa | fernandez | 20años | soltera luis | gomez | 21años | soltero
En el datagridview: datagrid.Columns.Add("nombre") datagrid.Columns.Add("apellido") datagrid.Columns.Add("edad") datagrid.Columns.Add("estado civil")
que se agreguen al datagridview el dato del richtextbox
es en formato vb
Título: Re: Buenas necesito ayuda como puedo enviar un RichTextBox a un datagridview en vb
Publicado por: Shell Root en 20 Diciembre 2018, 15:35 pm
:https://www.dotnetperls.com/split-vbnet
Título: Re: Buenas necesito ayuda como puedo enviar un RichTextBox a un datagridview en vb
Publicado por: raul2309 en 4 Enero 2019, 17:53 pm
La mejor solución es que uses un recordset desconectado:
Option explicit DIM RS as recordset
en el load set RS = new recordset
private sub createRS() rs.fields.apend "nombre", vbstr
luego creas una rutina para descargar los fragmentos de testo en el RS y por ultimo conectas el DBGRID al recorset
Título: Re: Buenas necesito ayuda como puedo enviar un RichTextBox a un datagridview en vb
Publicado por: Eleкtro en 17 Enero 2019, 00:54 am
Solución simple y efectiva adaptada a tu escenario, mediante la clase TextFieldParser para parsear la cadena de texto en formato CSV: Dim dt As New DataTable("csv") dt.Columns.Add("nombre") dt.Columns.Add("apellido") dt.Columns.Add("edad") dt.Columns.Add("estado civil") Using csvText As New StringReader(Me.RichTextBox1.Text), csvReader As New TextFieldParser(csvText) With { .Delimiters = {"|"c}, .HasFieldsEnclosedInQuotes = False, .TextFieldType = FieldType.Delimited } Do Until csvReader.EndOfData Try Dim fields As String() = csvReader.ReadFields() dt.Rows.Add(fields) Catch ex As MalformedLineException Throw End Try Loop End Using Me.DataGridView1.DataSource = dt
Título: Re: Buenas necesito ayuda como puedo enviar un RichTextBox a un datagridview en vb
Publicado por: Eleкtro en 18 Enero 2019, 09:23 am
He escrito una solución más genérica: <hidemodulename> Public module TextFieldParserExtensions ''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Converts the source <see cref="TextFieldParser"/> to <see cref="DataTable"/>. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <param name="sender"> ''' The source <see cref="TextFieldParser"/>. ''' </param> ''' ''' <param name="useFirstRowAsColumns"> ''' If set to <see langword="True"/>, use the items of the first row of ''' the source <see cref="TextFieldParser"/> to create the columns of ''' the resulting <see cref="DataTable"/>. ''' </param> ''' ---------------------------------------------------------------------------------------------------- ''' <returns> ''' The resulting <see cref="DataTable"/>. ''' </returns> ''' ---------------------------------------------------------------------------------------------------- <DebuggerStepThrough> <Extension> <EditorBrowsable(EditorBrowsableState.Always)> Public Function ToDataTable(ByVal sender As TextFieldParser, ByVal useFirstRowAsColumns As Boolean) As DataTable Dim dt As New DataTable() With {.CaseSensitive = False} Dim customColumnsCreated As Boolean Dim fields As String() = Nothing Do Until sender.EndOfData Try fields = sender.ReadFields() Catch ex As MalformedLineException Throw End Try If Not (customColumnsCreated) AndAlso (useFirstRowAsColumns) Then For Each field As String In fields dt.Columns.Add(field) Next field customColumnsCreated = True Continue Do End If Try dt.Rows.Add(fields) Catch ex As ArgumentException When Not (useFirstRowAsColumns) AndAlso (ex.HResult = -2147024809) ' Input array is longer than the number of columns in this table. For i As Integer = 0 To ((fields.Count - dt.Columns.Count) - 1) dt.Columns.Add() Next i dt.Rows.Add(fields) End Try Loop Return dt End Function end module
Modo de empleo: Dim csvTable As New DataTable() Dim csvText As String = <csv> Name; Last Name; Age Michael; Johnson Phillips; 26 William; Lee Williams; 34 Susan; Parker Evans; 32 Matilda; Garcia Martinez; 28 </csv>.Value Using csvReader As New StringReader(csvText), csvParser As New TextFieldParser(csvReader) With { .Delimiters = {";"c}, .HasFieldsEnclosedInQuotes = False, .TextFieldType = FieldType.Delimited } csvTable = TextFieldParserExtensions.ToDataTable(csvParser, useFirstRowAsColumns:=True) End Using Me.DataGridView1.DataSource = csvTable
PD: todo esto y mucho más en mi librería comercial DevCase para .NET Framework en la página de CodeCanyon.net...
|