none
problema no Loop

    Question

  • tenho um Do While dentro de outro Do While, na hora de gravar no arquivo txt ele grava da seguinte forma

    Ex.: 1121231234  eu gostaria que que ele gravasse 1234     

    meu codigo

     sArquivo = App.Path & "\teste.TXT" ' ARQUIVO 1
        iARQ = FreeFile
        Open sArquivo For Input As iARQ
                 Do While Not EOF(iARQ)
                    ArquivoNovo = ""
                    Line Input #iARQ, sLinha
                    ArquivoNovo = ArquivoNovo & sLinha & vbCrLf
                        
                    FiltroC405 = Mid(sLinha, 23, 6)
                    FiltroDataC405 = Mid(sLinha, 7, 8)
                    
                                Open App.Path & "\gerado.txt" For Append As #2
                                Print #2, ArquivoNovo & Chr(10) & Chr(13)
                                Close #2
                                                                    
                                               
                            sArquivoC420 = App.Path & "\teste2.TXT" ' ARQUIVO 2 PARA COMPARAÇÃO
                             iARQC420 = FreeFile
                             Open sArquivoC420 For Input As iARQC420
                                Do While Not EOF(iARQC420)
                                    Line Input #iARQC420, LinhaC420
                                                             
                                    
                                    If FiltroC420 = FiltroC405 Then
                                                                            
                                        ArquivoNovoC420 = ArquivoNovoC420 & LinhaC420 & vbCrLf
                                           
                                                                                                                   
                                            Open App.Path & "\gerado.txt" For Append As #3
                                            Print #3, ArquivoNovoC420 & Chr(10) & Chr(13)
                                            Close #3
                                                                                                                        
                                    End If
                                                                    
                                    
                                Loop
                             Close iARQC420
                                
                      sArquivoC460 = App.Path & "\teste3.TXT" ' ARQUIVO 3 PARA COMPARAÇÃO
                             iARQC460 = FreeFile
                             Open sArquivoC460 For Input As iARQC460
                                Do While Not EOF(iARQC460)
                                    Line Input #iARQC460, LinhaC460
                                    
                                     FiltroDataC460 = Mid(LinhaC460, 17, 8) 'pega os dados data
                                                                                                                               
                                     If FiltroDataC460 = FiltroDataC405 Then 'filtrando pela data
                                        ArquivoNovoC460 = ArquivoNovoC460 & LinhaC460 & vbCrLf
                                           
                                            Open App.Path & "\gerado.txt" For Append As #4
                                            Print #4, ArquivoNovoC460 & Chr(10) & Chr(13)
                                            Close #4
                                                                                                                                
                                    End If
                                                                   
                                    
                                Loop
                             Close iARQC460
              
          Loop
                 
        Close iARQ
        Cont = 0

    Monday, July 16, 2012 1:46 PM

Answers

  • Junior obrigado pela dica, mais resolvi o meu problema com a seguinte forma, colocando um dentro do outro

    Do While 1

    Do While   2

    Do While   3

    Do While  4

    loop

    loop

    loop

    loop

    • Marked as answer by sidao_40 Tuesday, July 17, 2012 12:43 PM
    Tuesday, July 17, 2012 12:43 PM

All replies

  • Desculpa a ignorância, mas o q vc quer fazer é salvar os 4 últimos dígitos de um certo grupo de números?

    **A blonde girl who tries understand the world in C# and VB**

    ***_Hey, se alguém resolveu seu problema, não esquece de marcar e/ou deixar sua solução!_***

    ***** Winter is coming *****

    Monday, July 16, 2012 4:00 PM
  • Sidao como vc tem um while dentro do outro entao primeiro o segundo while percorre todos os outros numeros, vc poderia fazer isso com um for e a cada numero passado vc pega o valor dele e acrescenta +1 pq o que vc mandou é isso

    1121231234 então o primeiro while pega o numero 1 e percorre tudo depois o primeiro while pega novamente o numero 1 e percorre tudo e pelo result que vc quer nao é assim para cada final de iteração vc pega o primeiro numero e acrescenta +1 a ele assim ele le o 1 ai depois ele tem que ler o 2 e não o 1 novamente depois do 2 ele arecenta 2 + 1 e tem que ler o 3 e assim por diante. acho que um while dentro do outro não dá certo acho que um for seria melhor

    for (i==1 , i<= sua string, i+z)

     onde o z seria o numero lido mais 1

    nao sei se isso permite mais a lógica seria mais ou menos essa.


    Junior

    Monday, July 16, 2012 5:20 PM
  • Junior obrigado pela dica, mais resolvi o meu problema com a seguinte forma, colocando um dentro do outro

    Do While 1

    Do While   2

    Do While   3

    Do While  4

    loop

    loop

    loop

    loop

    • Marked as answer by sidao_40 Tuesday, July 17, 2012 12:43 PM
    Tuesday, July 17, 2012 12:43 PM