none
¿De RichTextBox a RichTextBox usado Array.Sort?

    Pregunta

  • Hola.

    Estoy intentando ordenar, de A á Z, cada línea de un RichTextBox pasando el resultado a otro RichTextBox, para después guardarlo en un archivo.

    He usado

            Dim read As String = TextBox1.Text
            Dim readText() As String = File.ReadAllLines(read)
            Dim strg As String
            For Each strg In readText
                Dim chrs() As Char = strg.ToCharArray()
                Array.Sort(chrs)
                Dim wrte As String = TextBox2.Text
                Dim appendText As String = chrs + Environment.NewLine
                File.AppendAllText(wrte, appendText)
            Next

    Pero es muy lento para archivos demasiado pesados.

    Por eso, necesito cargar el pesado archivo en un RichTextBox y luego guardar este en otro archivo usado (Array.Sort).

    Por la rapidez de la carga de archivos con RichTextBox.LoadFile, seria lo mas eficiente.

    Gracias por su ayuda


    Rafael FM

    miércoles, 29 de marzo de 2017 23:09

Respuestas

  • Puedes cargar el texto y ordenarlo de esta forma:

    Dim read As String = TextBox1.Text

    RichTextBox1.LoadFile(read) Dim strTexto() As String = Strings.Split(RichTextBox1.Text, Chr(10)) Dim strg As String For Each strg In strTexto Dim chrs() As Char = strg.ToCharArray() Array.Sort(chrs) Dim appendText As String = chrs + Environment.NewLine RichTextBox2.Text += appendText Next RichTextBox2.SaveFile(TextBox2.Text)


    Saludos, Javier J


    Gracias. Pero con tu respuesta la compilación deja de responder.

    De todos modos ya he logrado una respuesta satisfactoria.

    http://es.stackoverflow.com/questions/58972/c%c3%b3mo-ordenar-de-a-a-z-cada-linea-de-un-archivo-con-vb-net/59078#59078

    Dim readText() As String = File.ReadAllLines(TextBox1.Text, Encoding.GetEncoding(1252))
    Dim ordenados = readText.Select(Function(x) New String(x.ToArray().OrderBy(Function(y) y).ToArray()))
    File.WriteAllLines(TextBox2.Text, ordenados)

    Después, solo tengo que cargar el nuevo archivo archivo en un RichTextBox y listo.

    Atentamente:


    Rafael FM


    • Marcado como respuesta RafaelFM jueves, 30 de marzo de 2017 12:08
    • Editado RafaelFM jueves, 30 de marzo de 2017 12:11
    jueves, 30 de marzo de 2017 12:08

Todas las respuestas

  • Puedes cargar el texto y ordenarlo de esta forma:

    Dim read As String = TextBox1.Text

    RichTextBox1.LoadFile(read) Dim strTexto() As String = Strings.Split(RichTextBox1.Text, Chr(10)) Dim strg As String For Each strg In strTexto Dim chrs() As Char = strg.ToCharArray() Array.Sort(chrs) Dim appendText As String = chrs + Environment.NewLine RichTextBox2.Text += appendText Next RichTextBox2.SaveFile(TextBox2.Text)

    Te recomiendo que hagas un control de los ficheros. Estás abriendo TextBox1.Text sin comprobar su existencia. Puedes comprobar la existencia haciendo

    If Not File.Exists(read) Then

        MsgBox("No existe el fichero")
        Exit Sub

    End If

    antes de cargar el fichero en el RichTextBox


    Saludos, Javier J


    jueves, 30 de marzo de 2017 6:59
  • Puedes cargar el texto y ordenarlo de esta forma:

    Dim read As String = TextBox1.Text

    RichTextBox1.LoadFile(read) Dim strTexto() As String = Strings.Split(RichTextBox1.Text, Chr(10)) Dim strg As String For Each strg In strTexto Dim chrs() As Char = strg.ToCharArray() Array.Sort(chrs) Dim appendText As String = chrs + Environment.NewLine RichTextBox2.Text += appendText Next RichTextBox2.SaveFile(TextBox2.Text)


    Saludos, Javier J


    Gracias. Pero con tu respuesta la compilación deja de responder.

    De todos modos ya he logrado una respuesta satisfactoria.

    http://es.stackoverflow.com/questions/58972/c%c3%b3mo-ordenar-de-a-a-z-cada-linea-de-un-archivo-con-vb-net/59078#59078

    Dim readText() As String = File.ReadAllLines(TextBox1.Text, Encoding.GetEncoding(1252))
    Dim ordenados = readText.Select(Function(x) New String(x.ToArray().OrderBy(Function(y) y).ToArray()))
    File.WriteAllLines(TextBox2.Text, ordenados)

    Después, solo tengo que cargar el nuevo archivo archivo en un RichTextBox y listo.

    Atentamente:


    Rafael FM


    • Marcado como respuesta RafaelFM jueves, 30 de marzo de 2017 12:08
    • Editado RafaelFM jueves, 30 de marzo de 2017 12:11
    jueves, 30 de marzo de 2017 12:08