none
¿Como puedo crear un archivo plano con un paquete de archivos .txt?

    Pregunta

  • Buenos Días, 

    Estoy tratando de crear un formulario donde pueda seleccionar varias tramas .txt y crear un archivo plano.

    Hasta el momento solo me deja seleccionar un archivo y me lo muestra en un RichTexBox, pero no me deja seleccionar mas de uno, para después guardarlo en uno solo.

           

    Public Class Form1

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim OpenFileDialog1 As New OpenFileDialog

            OpenFileDialog1.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments
            OpenFileDialog1.Filter = "Text Files |*.txt"
            OpenFileDialog1.Filter = "Text Files |*.log"

            If (OpenFileDialog1.ShowDialog() = DialogResult.OK) Then
                Dim FileName As String = OpenFileDialog1.FileName
                Me.RichTextBox1.LoadFile(OpenFileDialog1.FileName, RichTextBoxStreamType.PlainText)
                MsgBox(OpenFileDialog1.FileName)
            End If
        End Sub
    End Class

    Les Agradezco la ayuda que me puedan dar, pues la verdad soy novato.

    viernes, 2 de septiembre de 2016 15:27

Respuestas

  • Hola

    Eso ocurre porque cuando dices que el richtextbox cargue un archivo, borra el texto anterior, entonces en vez de usar richtextbox.loadfile(), se puede usar esto:

    Public Class Form1
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim OpenFileDialog1 As New OpenFileDialog
    
            OpenFileDialog1.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments
            OpenFileDialog1.Filter = "Text Files|*.txt|Text Files|*.log"
            OpenFileDialog1.Multiselect = true 'Para seleccionar varios archivos con un solo openfiledialog
    
            If (OpenFileDialog1.ShowDialog() = DialogResult.OK) Then
                For Each archivo as String In OpenFileDialog1.FileNames
                    Dim leer As New System.IO.StreamReader(archivo)
                    richtextbox1.Text += leer.ReadToEnd() + vbcrlf 'Añadimos el texto del archivo al richtextbox e insertamos una linia en blanco para dejar un margen entre archivo y archivo (con vbcrlf)
                    MsgBox(OpenFileDialog1.FileName)
                Next
            End If
        End Sub
    End Class

    Espero que te sirva de ayuda,

    Gerry Soft

    viernes, 2 de septiembre de 2016 15:42
  • hola

    tienes que definir la propiedad

    OpenFileDialog.Multiselect Property

    en true

    entonces usar

    For Each file As String In openFileDialog1.FileNames
    
      'codigo
    
    Next

    para tomar cada archivo seleccionado

    el tema es que si solo tienes un unico RichTextBox vas a poder mostrar un unico file, quizas debas realizar un merge previo de todos los archivos y al final mostrar esto en el RichTextBox1

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 2 de septiembre de 2016 16:15

Todas las respuestas

  • Hola

    Eso ocurre porque cuando dices que el richtextbox cargue un archivo, borra el texto anterior, entonces en vez de usar richtextbox.loadfile(), se puede usar esto:

    Public Class Form1
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim OpenFileDialog1 As New OpenFileDialog
    
            OpenFileDialog1.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments
            OpenFileDialog1.Filter = "Text Files|*.txt|Text Files|*.log"
            OpenFileDialog1.Multiselect = true 'Para seleccionar varios archivos con un solo openfiledialog
    
            If (OpenFileDialog1.ShowDialog() = DialogResult.OK) Then
                For Each archivo as String In OpenFileDialog1.FileNames
                    Dim leer As New System.IO.StreamReader(archivo)
                    richtextbox1.Text += leer.ReadToEnd() + vbcrlf 'Añadimos el texto del archivo al richtextbox e insertamos una linia en blanco para dejar un margen entre archivo y archivo (con vbcrlf)
                    MsgBox(OpenFileDialog1.FileName)
                Next
            End If
        End Sub
    End Class

    Espero que te sirva de ayuda,

    Gerry Soft

    viernes, 2 de septiembre de 2016 15:42
  • hola

    tienes que definir la propiedad

    OpenFileDialog.Multiselect Property

    en true

    entonces usar

    For Each file As String In openFileDialog1.FileNames
    
      'codigo
    
    Next

    para tomar cada archivo seleccionado

    el tema es que si solo tienes un unico RichTextBox vas a poder mostrar un unico file, quizas debas realizar un merge previo de todos los archivos y al final mostrar esto en el RichTextBox1

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 2 de septiembre de 2016 16:15