elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Guardar muchos datos en una sola linea de un txt para su lectura
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Guardar muchos datos en una sola linea de un txt para su lectura  (Leído 1,314 veces)
cael1011

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Guardar muchos datos en una sola linea de un txt para su lectura
« en: 29 Septiembre 2016, 04:54 am »

Busco la forma de guardar uno datos en un txt los cuales deseo que este en
una sola fila, ejemplo de la recolección para guardar.

TextBox1 = 1 TextBox2 = Diego Santos TextBox3 = 18 sur 1023 TextBox4 = "ruta de sus archivos"

1 Diego Santo 18 sur 1023 D:\archivos_sr_Juan_S\
2 Carlos Herrera pueblo nuevo 1023 D:\archivos_sr_Carlos_H\

y las siguientes lineas los otros datos de las personas, no se como juntarlos, después
separarlos también para su lectura.

Yo utilizo un listbox, ahora busco de los TextBox guardar para después leerlo por separada
con un ListBox y en la selección separarlos en los TextBox

el Código que utilizo para guardar con los ListBox es:




Código
  1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  2.  
  3.  
  4.        Dim oSW As New StreamWriter(TextBox5.Text & ".txt")
  5.        Dim i As Integer
  6.        For i = 0 To ListBox1.Items.Count - 1
  7.            Dim Linea = ListBox100.Items(i).ToString()
  8.            oSW.WriteLine(Linea)
  9.            oSW.Flush()
  10.  
  11.        Next
  12.  
  13.  
  14.        Dim Archivo As System.IO.FileInfo = New FileInfo(TextBox5.Text & ".txt")
  15.        Me.ListBox1.Items.Clear()
  16.        Try
  17.            Dim abrir As StreamReader = Archivo.OpenText
  18.            Dim linea As String
  19.            Do While abrir.Peek() > 0
  20.                linea = abrir.ReadLine()
  21.                Me.ListBox1.Items.Add(linea)
  22.  
  23.  
  24.            Loop
  25.            abrir.Close()
  26.        Catch ex As SystemException
  27.            MsgBox(ex.Message, MsgBoxStyle.OkOnly, "ERROR")
  28.        End Try
  29.  
  30.  
  31. End Sub



Ahora busco como de los texbox guardar todos los datos en una sola linea para después verlos en en listbox y
separarlos cada uno en sus texbox, alguien me puede ayudar.





En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.700



Ver Perfil
Re: Guardar muchos datos en una sola linea de un txt para su lectura
« Respuesta #1 en: 29 Septiembre 2016, 17:53 pm »

Busco la forma de guardar uno datos en un txt los cuales deseo que este en
una sola fila, ejemplo de la recolección para guardar.

TextBox1 = 1 TextBox2 = Diego Santos TextBox3 = 18 sur 1023 TextBox4 = "ruta de sus archivos"

1 Diego Santo 18 sur 1023 D:\archivos_sr_Juan_S\
2 Carlos Herrera pueblo nuevo 1023 D:\archivos_sr_Carlos_H\

Una manera de juntar la información en una sola linea sería la siguiente:
Código
  1. Dim str As String = String.Format("{0};{1};{2};{3}", TextBox1.Text, TextBox2.Text, TextBox3.Text, TextBox4.Text)

lo que producirá el siguiente string CSV-like:
Código:
índice;Nombre;Dirección?;C:\Ruta

y entonces podrás identificar cada campo saparándolos mediante el caracter delimitador ";":
Código
  1. Dim fields As String() = str.Split(";"c)
  2.  
  3. Dim index As String = fields(0)
  4. Dim name As String = fields(1)
  5. Dim address As String = fields(2)
  6. Dim dirPath As String = fields(3)











...aunque algo mucho más apropiado sería definir un type/contenedor personalizado donde almacenar dicha información, y serializarlo en lugar de guardarlo en un archivo de texto...

Código
  1. <Serializable>
  2. <XmlRoot("PersonInfo")>
  3. Public NotInheritable Class PersonInfo
  4.  
  5.    <XmlElement("Index")> Public Index As Integer
  6.    <XmlElement("Name")> Public Name As String
  7.    <XmlElement("Address")> Public Address As String
  8.    <XmlElement("Dirpath")> Public Dirpath As String
  9.  
  10.    <DebuggerNonUserCode>
  11.    Private Sub New()
  12.    End Sub
  13.  
  14.    <DebuggerStepThrough>
  15.    Public Sub New(ByVal index As Integer, ByVal name As String, ByVal address As String, ByVal dirpath As String)
  16.        Me.Index = index
  17.        Me.Name = name
  18.        Me.Address = address
  19.        Me.Dirpath = dirpath
  20.    End Sub
  21.  
  22.    <DebuggerStepThrough>
  23.    Public Overrides Function ToString() As String
  24.        Return String.Format("{0};{1};{2};{3}", Me.Index, Me.Name, Me.Address, Me.Dirpath)
  25.    End Function
  26.  
  27. End Class

+

Código
  1. Public Module PersonInfoExtensions
  2.  
  3.    <Extension>
  4.    <DebuggerStepThrough>
  5.    Public Sub SerializeTo(ByVal sender As List(Of PersonInfo), ByVal filepath As String)
  6.        Dim serializer As New XmlSerializer(GetType(List(Of PersonInfo)))
  7.        Dim bufferSize As Integer = 8192 ' 8 KB.
  8.  
  9.        Using fs As New FileStream(filepath, FileMode.Create, FileAccess.Write, FileShare.Read, bufferSize)
  10.            serializer.Serialize(fs, sender)
  11.        End Using
  12.    End Sub
  13.  
  14.    <Extension>
  15.    <DebuggerStepThrough>
  16.    Public Sub DeserializeFrom(ByRef sender As List(Of PersonInfo), ByVal filepath As String)
  17.        Dim serializer As New XmlSerializer(GetType(List(Of PersonInfo)))
  18.        Dim bufferSize As Integer = 8192 ' 8 KB.
  19.  
  20.        Using fs As New FileStream(filepath, FileMode.Open, FileAccess.Read, FileShare.Read, bufferSize)
  21.            sender = DirectCast(serializer.Deserialize(fs), List(Of PersonInfo))
  22.        End Using
  23.    End Sub
  24.  
  25. End Module

Ejemplo de serialización:
Código
  1. Dim personInfo1 As New PersonInfo(CInt(TextBox1.Text), TextBox2.Text, TextBox3.Text, TextBox4.Text)
  2. Dim personInfo2 As New PersonInfo(2, "Pepito", "24 norte 1023", "C:\Ruta de archivos")
  3.  
  4. Dim personInfoList As New List(Of PersonInfo)
  5. personInfoList.AddRange({personInfo1, personInfo2})
  6. personInfoList.SerializeTo("C:\Data.xml")

lo que producirá un documento Xml como este:
Código
  1. <?xml version="1.0"?>
  2. <ArrayOfPersonInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  3.  
  4.  <PersonInfo>
  5.    <Index>1</Index>
  6.    <Name>Diego Santos</Name>
  7.    <Address>18 sur 1023</Address>
  8.    <Dirpath>C:\Ruta de archivos</Dirpath>
  9.  </PersonInfo>
  10.  
  11.  <PersonInfo>
  12.    <Index>2</Index>
  13.    <Name>Pepito</Name>
  14.    <Address>24 norte 1023</Address>
  15.    <Dirpath>C:\Ruta de archivos</Dirpath>
  16.  </PersonInfo>
  17.  
  18. </ArrayOfPersonInfo>

Ejemplo de deserialización:
Código
  1. Dim personInfoList As New List(Of PersonInfo)
  2. personInfoList.DeserializeFrom("C:\Data.xml")
  3.  
  4. For Each personInfo As PersonInfo In personInfoList
  5.    Console.WriteLine(personInfo.ToString()) ' ToString() = índice;Nombre;Dirección?;C:\Ruta
  6. Next personInfo

Resultado de ejecución del ejemplo de deserialización:
Citar
1;Diego Santos;18 sur 1023;C:\Ruta de archivos
2;Pepito;24 norte 1023;C:\Ruta de archivos

Saludos


« Última modificación: 29 Septiembre 2016, 18:11 pm por Eleкtro » En línea


cael1011

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Re: Guardar muchos datos en una sola linea de un txt para su lectura
« Respuesta #2 en: 1 Octubre 2016, 00:51 am »

Muchas gracias, veo te tomaste tu tiempo para ayudarme la verdad soy principiante voy a practicar y analizar tu código poco le entiendo, muchas gracias te agradezco, saludos. 
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines