none
Ordenar texto de um textbox RRS feed

Respostas

  • Cara depende muito da lógica que vc vai aplicar, vc poderia aplicar um split e na lista gerada aplicar a expressão lambda, levando em consideração que deve ter um separador depois de cada diretório.

    string[] listaD = txtId.Text.split(';').Tolist().OrderBy(); ou sort no array de string.

    É mais ou menos isso.



    Nome : Romy G. Moura Cargo: Analista Programador

    segunda-feira, 18 de agosto de 2014 18:03
  • Fiz um em C# que deverá ajudar muita gente. Funciona! hehehe

    private void btnOrdenar_Click(object sender, EventArgs e)
            {
                var arrBaguncadas = txtLetrasBaguncadas.Text.ToArray();//texto que será ordenado
                var arrOrdenadas = new char[arrBaguncadas.GetLength(0)];
    
                for (int a = 0; a < arrBaguncadas.GetLength(0); a++)//percorrer todas as letras
                {
                    var letraParaTestar = arrBaguncadas[a];
                    var posicaoDaLetra = 0;
    
                    for (int b = 0; b < arrBaguncadas.GetLength(0); b++) //ver em que posição a letra deve estar
                    {
                        //se tiver letra menor ou se a letra está repetida e já existe no array ordenado
                        if (letraParaTestar > arrBaguncadas[b] || arrOrdenadas[b] == letraParaTestar)
                            posicaoDaLetra++;
                    }
    
                    arrOrdenadas[posicaoDaLetra] = letraParaTestar;
                }
    
                txtLetrasOrdenadas.Text = new string(arrOrdenadas);
            }

    • Marcado como Resposta Marques Junior sexta-feira, 31 de julho de 2015 19:54
    terça-feira, 21 de julho de 2015 23:37

Todas as Respostas

  • Olá Marques,

     como assim ordenar o texto ? Poderia postar um exemplo.

    segunda-feira, 18 de agosto de 2014 16:46
  • Então, eu tenho uma textbox com os seguintes nomes de arquivos que foram listados de um diretório, como por exemplo:

    0_Nome_a

    10_Nome_c

    8_Nome_c

    2_Nome_b

    Gostaria de saber se há alguma propriedade na textbox que ordene as linhas para o seguinte:

    0_Nome_a

    2_Nome_b

    8_Nome_c

    10_Nome_c


    segunda-feira, 18 de agosto de 2014 17:48
  • Cara depende muito da lógica que vc vai aplicar, vc poderia aplicar um split e na lista gerada aplicar a expressão lambda, levando em consideração que deve ter um separador depois de cada diretório.

    string[] listaD = txtId.Text.split(';').Tolist().OrderBy(); ou sort no array de string.

    É mais ou menos isso.



    Nome : Romy G. Moura Cargo: Analista Programador

    segunda-feira, 18 de agosto de 2014 18:03
  • Então, fiz o list, porém o arquivo que começa com 10 está vindo primeiro que o arquivo que começa com 2, assim:

    0_Nome_a
    10_Nome_c
    2_Nome_b
    8_Nome_c

    Dim LinesList As New List(Of String) LinesList.AddRange(TxbResultado.Lines) LinesList.Sort() TxbResultado.Text = Nothing For Each Str As String In LinesList TxbResultado.AppendText(Str & Environment.NewLine) Next

    segunda-feira, 18 de agosto de 2014 18:17
  • Então, fiz o list, porém o arquivo que começa com 10 está vindo primeiro que o arquivo que começa com 2, assim:

    0_Nome_a
    10_Nome_c
    2_Nome_b
    8_Nome_c

    Dim LinesList As New List(Of String) LinesList.AddRange(TxbResultado.Lines) LinesList.Sort() TxbResultado.Text = Nothing For Each Str As String In LinesList TxbResultado.AppendText(Str & Environment.NewLine) Next

    Então a questão é que vc precisa separar o que é texto e o que é numero assim vc teria um controle melhor disso.

    Capitou a idea?

    Abraço!


    Nome : Romy G. Moura Cargo: Analista Programador

    terça-feira, 19 de agosto de 2014 20:09
  • Sei, verdade, primeiro faz o sort na lista separando o que é número para depois setar na textbox.
    quarta-feira, 20 de agosto de 2014 12:08
  • Fiz um em C# que deverá ajudar muita gente. Funciona! hehehe

    private void btnOrdenar_Click(object sender, EventArgs e)
            {
                var arrBaguncadas = txtLetrasBaguncadas.Text.ToArray();//texto que será ordenado
                var arrOrdenadas = new char[arrBaguncadas.GetLength(0)];
    
                for (int a = 0; a < arrBaguncadas.GetLength(0); a++)//percorrer todas as letras
                {
                    var letraParaTestar = arrBaguncadas[a];
                    var posicaoDaLetra = 0;
    
                    for (int b = 0; b < arrBaguncadas.GetLength(0); b++) //ver em que posição a letra deve estar
                    {
                        //se tiver letra menor ou se a letra está repetida e já existe no array ordenado
                        if (letraParaTestar > arrBaguncadas[b] || arrOrdenadas[b] == letraParaTestar)
                            posicaoDaLetra++;
                    }
    
                    arrOrdenadas[posicaoDaLetra] = letraParaTestar;
                }
    
                txtLetrasOrdenadas.Text = new string(arrOrdenadas);
            }

    • Marcado como Resposta Marques Junior sexta-feira, 31 de julho de 2015 19:54
    terça-feira, 21 de julho de 2015 23:37