none
abertura de arquivo texto RRS feed

  • Pergunta

  • Olá a todos,

    Estou com o seguinte problema:
    - tenho um arquivo texto de 48 mb e preciso abri-lo para leitura, so que o arquivo não possui finalização de linha(chr(10) + chr(13)) ou senha, se eu edito ele aparece como somente uma linha.
    Estou utilizado no vb o comando:
    Open ARQUIVO For Input As #1
    mas quando eu executo o comando para jogar o conteudo do arquivo em uma variável para eu manipulá-lo:
    Line Input #1, VARIAVEL
    o sistema trava.
    Por favor, alguém pode me ajudar a criar nova rotina de leitura desse arquivo ?

    Luiz

     

     

    quarta-feira, 11 de outubro de 2006 18:32

Todas as Respostas

  • Qual é a formatação desse arquivo???

     

     

    quarta-feira, 11 de outubro de 2006 18:36
  • O arquivo é texto separado por chr(10) - quando eu abro pelo editor de texto ele aparece com uma linha só.
    Eu preciso abrí-lo para substituir o chr(10)  por chr(13) + chr(10)

     

     

    quarta-feira, 11 de outubro de 2006 18:42
  • Tente abrir pouco a pouco o arquivo...

    Usando

    System.IO.TextReader tr = System.IO.File.OpenWrite("Caminho");

    Depois vc usa o metodo Peek, que retorna char por char ate o final do texto.... de forma que vc tem um controle de quanto ja foi colocado em memoria e pode ir montando um arquivo ja com os valores substituidos.

     

    quarta-feira, 11 de outubro de 2006 19:14
  •  

    Estou usando VB 6 e não vb .Net

    quarta-feira, 11 de outubro de 2006 19:46
  • 1) abre o arquivo em modo binário,
    2) se os registros forem de tamanho fixo, ao ler, informa a quantidade de caracteres que deseja ler em cada leitura que fizer.
    3) se os resgistros forem de tamanho variado, captura o total de caractres do arquivo, lê caracter a caracter até encontrar um Chr(10), e assim por diante até o final do arquivo.
    4) Ao encontrar um Chr(10), grave em outro arquivo em modo OUTPUT , acrecentando o Chr(13) ao final da linha

    Importante: não tenter ler em modo Imput (leitura) de uma única vez pq ele teria que alocar TODO o conteúdo do arquivo numa única variável e isto, além de ser um processo lento, penaliza os outros aplicativos que estejam rodando e pode esgotar a memória do sistema, obrigando o Windows criar cache em disco, o que torna o processo mais demorado ainda (e muito).
    Procure utilizar a abordagem que te falei anteriormente e tudo vai dar certo.
    terça-feira, 17 de outubro de 2006 10:46