none
Incrementador para linhas RRS feed

  • Pergunta

  • Pessoal,

     

    Nova dúvida sobre arquivos .txt

     

    Tenho um arquivo Teste.txt com 50 linhas ok? Cada linha tem uma sequência de números separados por "espaço" conforme exemplo abaixo:

    01 02 03 04 05 06 07 08 09 10 11 12 13 14 15

     

    Como fazer para escrever no começo de cara linha um contador para identificar cada linha? Ficando como abaixo:

     

    1 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15

     

    E assim por diante até chegar a linha última linha e adicionar o número 50 no começo desta última linha?

     

    Obrigado.

    quarta-feira, 1 de junho de 2011 20:10

Respostas

  • Seria um script que Lê o original linha por linha e grava os dados em um novo arquivo acrescentado a numeração. Depois apaga o original e renomeia o novo.

     

    strArquivo_Original = "arquivo_original.txt"
    strArquivo_Novo = "arquivo_novo.txt"
    
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile_Original = objFSO.OpenTextFile(strArquivo_Original, 1)
    Set objFile_Novo = objFSO.CreateTextFile(strArquivo_Novo)
    
    i=0
    Do Until objFile_Original.AtEndOfStream
       i=i+1
       strLinha = objFile_Original.ReadLine
    
       objFile_Novo.writeline i & " " & strLinha
    
    Loop
    
    
    objFile_Original.Close
    objFile_Novo.Close
    
    objFSO.Deletefile strArquivo_Original
    objFSO.MoveFile strArquivo_Novo , strArquivo_Original
    
     

     


    Fábio de Paula Junior
    • Sugerido como Resposta Fábio JrModerator quarta-feira, 1 de junho de 2011 22:33
    • Marcado como Resposta Marco_AM quinta-feira, 2 de junho de 2011 16:05
    quarta-feira, 1 de junho de 2011 22:32
    Moderador
  • Não tive como testar o código abaixo, substitua o Loop do script anterior por este:

     

    Do Until objFile_Original.AtEndOfStream
       i=i+1
       strLinha = objFile_Original.ReadLine

       strLinha = replace(strLinha," ",vbtab) ' <-- Aqui eu subtituo " " por tab.

       objFile_Novo.writeline i & vbtab & strLinha

    Loop


    Fábio de Paula Junior
    • Sugerido como Resposta Fábio JrModerator quinta-feira, 2 de junho de 2011 22:34
    • Marcado como Resposta Marco_AM sexta-feira, 3 de junho de 2011 14:32
    quinta-feira, 2 de junho de 2011 22:34
    Moderador

Todas as Respostas

  • Seria um script que Lê o original linha por linha e grava os dados em um novo arquivo acrescentado a numeração. Depois apaga o original e renomeia o novo.

     

    strArquivo_Original = "arquivo_original.txt"
    strArquivo_Novo = "arquivo_novo.txt"
    
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile_Original = objFSO.OpenTextFile(strArquivo_Original, 1)
    Set objFile_Novo = objFSO.CreateTextFile(strArquivo_Novo)
    
    i=0
    Do Until objFile_Original.AtEndOfStream
       i=i+1
       strLinha = objFile_Original.ReadLine
    
       objFile_Novo.writeline i & " " & strLinha
    
    Loop
    
    
    objFile_Original.Close
    objFile_Novo.Close
    
    objFSO.Deletefile strArquivo_Original
    objFSO.MoveFile strArquivo_Novo , strArquivo_Original
    
     

     


    Fábio de Paula Junior
    • Sugerido como Resposta Fábio JrModerator quarta-feira, 1 de junho de 2011 22:33
    • Marcado como Resposta Marco_AM quinta-feira, 2 de junho de 2011 16:05
    quarta-feira, 1 de junho de 2011 22:32
    Moderador
  • Perfeito Fábio....

     

    Muito obrigado!!!

     

    Abraços

    quinta-feira, 2 de junho de 2011 16:05
  • Fábio, mais uma ajuda sobre esse mesmo script...

     

    Digamos que já tenho o contador para as linhas ok, no esquema que tinha solicitado, ou seja, com um "espaço" entre cada número desde o contador no início de cada linha. Porém, tenho que importar esses dados para uma tabela do MySQL, e com os "espaços" não rola...

     

    Tem como fazer um .vbs para substituir os "espaços" por um espaço como se eu tivesse dado um "tab" entre cada número? Tentei fazer com 7 "espaços", que são equivalentes a um "tab", mas não rola.

     

    Valeu...

    quinta-feira, 2 de junho de 2011 21:07
  • Não tive como testar o código abaixo, substitua o Loop do script anterior por este:

     

    Do Until objFile_Original.AtEndOfStream
       i=i+1
       strLinha = objFile_Original.ReadLine

       strLinha = replace(strLinha," ",vbtab) ' <-- Aqui eu subtituo " " por tab.

       objFile_Novo.writeline i & vbtab & strLinha

    Loop


    Fábio de Paula Junior
    • Sugerido como Resposta Fábio JrModerator quinta-feira, 2 de junho de 2011 22:34
    • Marcado como Resposta Marco_AM sexta-feira, 3 de junho de 2011 14:32
    quinta-feira, 2 de junho de 2011 22:34
    Moderador
  • Excelente Fábio... funcionou perfeitamente...

     

    O script faz o incremento para o contador de linhas e substitui os " " pelo "tab"...

     

    Obrigado mais uma vez...

     

    Abraço.

    sexta-feira, 3 de junho de 2011 14:31