none
LAÇO DE REPETIÇÃO C# RRS feed

  • Pergunta

  • Sou iniciante de C# e estou com uma dificuldade no meu laço de FOR. Tenho uma lista e gostaria de separa-la a cada 5 linhas incluir um texto específico e no final da lista incluir o mesmo texto.

    A SAÍDA SERIA ASSIM 

    <Interval 4>13{E_Enter}
    130311{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18// LINHA 1
    130322{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18// LINHA 2
    130333{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18// LINHA 3
    130344{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18// LINHA 4
    130355{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18// LINHA 5
    {E_Enter}s{E_Enter}     // A CADA 5 LINHAS ADICIONA ESSE TEXTO
    130366{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18// LINHA 6
    130377{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18// LINHA 7
    {E_Enter}s{E_Enter}// NO FINAL ADICIONA ESSE TEXTO

    MEU CÓDIGO É ESSE

         private void btnGeraScrpt_Click(object sender, EventArgs e)
            {
                string Inicio = "<Interval 4>13{E_Enter}" + (char)13 + (char)10;
                var ResultFinal = "";

                for (int dados = (Lista_Notas.Items.Count-1); dados >= 0; dados--)
                {
                    byte Contador;                
                    var Lista = Lista_Notas.Items[dados].ToString();
                  
                    for (Contador = 1; Contador < Lista_Notas.Items.Count; Contador++)
                        {

                        if (((dados) % 5) == 0)
                            {
                                ResultFinal = ResultFinal + Lista + "{E_Enter}s{E_Enter}" ;                                                   
                            }
                        ResultFinal = ResultFinal + Lista;  
                             
                    }
                    txtScript.Text = Inicio + ResultFinal + "{E_Enter}s{E_Enter}";
                }

              Salvar();
            }


    • Editado M_REIS_06 sexta-feira, 13 de julho de 2018 19:53 PARA UM BOM ENTENDIMENTO
    sexta-feira, 13 de julho de 2018 16:25

Respostas

  • Primeiramente você pode escrever em C# "\r\n" para fazer um salto de linha.

    Com base nisso, o código fica assim:

      private void btnGeraScrpt_Click(object sender, EventArgs e)
            {
                string Inicio = "<Interval 4>13{E_Enter}\r\n";
                var ResultFinal = "";
    
                for (int dados = (Lista_Notas.Items.Count-1); dados >= 0; dados--)
                {
                    byte Contador;                
                    var Lista = Lista_Notas.Items[dados].ToString();
                     ResultFinal = ResultFinal + Lista + "\r\n";  
                     if (((dados) % 5) == 0)
                      {
                                ResultFinal = ResultFinal +  "{E_Enter}s{E_Enter}\r\n" ;                                                   
                      } 
                    txtScript.Text = Inicio + ResultFinal + "{E_Enter}s{E_Enter}";
                }
    
              Salvar();
            }


    William John Adam Trindade
    Analyste-programmeur


    Sogi Informatique ltée
    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".


    sexta-feira, 13 de julho de 2018 22:09
    Moderador

Todas as Respostas

  • Mostre o que voce quer como saida. NAo consegui entender o que voce quer fazer.

    Att


    William John Adam Trindade
    Analyste-programmeur


    Sogi Informatique ltée
    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    sexta-feira, 13 de julho de 2018 16:39
    Moderador
  • <Interval 4>13{E_Enter}
    130311{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18// LINHA 1
    130322{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18// LINHA 2
    130333{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18// LINHA 3
    130344{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18// LINHA 4
    130355{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18// LINHA 5
    {E_Enter}s{E_Enter} // A CADA 5 LINHAS ADICONA ESSE TEXTO
    130366{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18// LINHA 6
    130377{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18// LINHA 7
    {E_Enter}s{E_Enter}// NO FINAL ADICIONA ESSE TEXTO

    sexta-feira, 13 de julho de 2018 18:44
  • Primeiramente você pode escrever em C# "\r\n" para fazer um salto de linha.

    Com base nisso, o código fica assim:

      private void btnGeraScrpt_Click(object sender, EventArgs e)
            {
                string Inicio = "<Interval 4>13{E_Enter}\r\n";
                var ResultFinal = "";
    
                for (int dados = (Lista_Notas.Items.Count-1); dados >= 0; dados--)
                {
                    byte Contador;                
                    var Lista = Lista_Notas.Items[dados].ToString();
                     ResultFinal = ResultFinal + Lista + "\r\n";  
                     if (((dados) % 5) == 0)
                      {
                                ResultFinal = ResultFinal +  "{E_Enter}s{E_Enter}\r\n" ;                                                   
                      } 
                    txtScript.Text = Inicio + ResultFinal + "{E_Enter}s{E_Enter}";
                }
    
              Salvar();
            }


    William John Adam Trindade
    Analyste-programmeur


    Sogi Informatique ltée
    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".


    sexta-feira, 13 de julho de 2018 22:09
    Moderador
  • Fiz essa alteração e a saída foi essa

    <Interval 4>13{E_Enter}
    130311{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130311{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130311{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130311{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130311{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130311{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130322{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    {E_Enter}s{E_Enter}
    130322{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    {E_Enter}s{E_Enter}
    130322{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    {E_Enter}s{E_Enter}
    130322{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    {E_Enter}s{E_Enter}
    130322{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    {E_Enter}s{E_Enter}
    130322{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    {E_Enter}s{E_Enter}
    130333{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130333{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130333{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130333{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130333{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130333{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130344{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130344{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130344{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130344{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130344{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130344{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130355{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130355{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130355{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130355{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130355{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130355{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130366{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130366{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130366{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130366{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130366{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130366{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    130377{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    {E_Enter}s{E_Enter}
    130377{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    {E_Enter}s{E_Enter}
    130377{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    {E_Enter}s{E_Enter}
    130377{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    {E_Enter}s{E_Enter}
    130377{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    {E_Enter}s{E_Enter}
    130377{E_ENTER}0{E_ENTER}DATA{E_ENTER}texto{E_ENTER}NOME{E_ENTER}DOC{E_ENTER}18
    {E_Enter}s{E_Enter}
    {E_Enter}s{E_Enter}

    sábado, 14 de julho de 2018 13:34
  • Consegui o que eu queria, retirei um dos FOR.

    Utilizei essa inversão que você me solicitou antes do IF e deu certo ...

    obrigado pelo apoio..

    sábado, 14 de julho de 2018 17:56