none
Lendo conteúdo inexistente de um arquivo .TXT - Visual Basic RRS feed

  • Pergunta

  • Estou lendo e escrevendo um arquivo .TXT usando o Visual Basic.
    O programa carrega um conteudo que ja não existe mais, eu só consigo visualizar esse bug usando o 
    internet Explorer. 
    exemplo:

    Abrindo o arquivo usando o notepad++ ele parece assim:

    Cabo 1; 1202,8; 2357,6; 19722; 140205;

    Abrindo o mesmo arquivo usando o internet explorer ele parece assim, mostra um conteúdo que já tinha sido apagado.

    Cabo 1; 1202,8; 2357,6; 19722; 140205;
    Cabo 3; 1202,8; 2357,6; 19722; 140205;
    Cabo 2; 1202,8;700; 19722; 140205;

    O arquivo fica dentro do diretório C:\Program Files (x86)\BM_MM\resistencias.txt

    Não sei porque ele mostra esse conteúdo, e algo que só consigo ver usando o internet Explorer,
    mandei visualizar os arquivo escondidos e do sistemas e não mostra nenhum outro arquivo 
    dentro da pasta que possa conter esse conteúdo. 

    Espero que alguém possa me dar alguma luz que ta osso!!

    terça-feira, 12 de maio de 2015 12:16

Respostas

  • Caso tenha conseguido a solução finalize sua Thread marcando a resposta

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    • Marcado como Resposta Marcos SJ terça-feira, 23 de fevereiro de 2016 13:54
    domingo, 28 de junho de 2015 14:01

Todas as Respostas

  • Posta o código que você supostamente esteja apagando o conteúdo do arquivo, lembrando que para você deletar é necessário regravar o arquivo e não somente deletar em tempo de execução.

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    terça-feira, 12 de maio de 2015 12:42
  • Limpa os arquivos temporários do IE.

    Junior

    terça-feira, 12 de maio de 2015 12:44
  • Eu não estou deletando o arquivo, apenas alterando o conteúdo dele. 
    Não sou da área de programação de alto nível, com certeza deve ter algo que estou fazendo errado.

    Estou usando o visual basic 6... 

    Desde já valeu pela ajuda.

    Private Sub btn_salvar_Click()
        
        Dim linha As String
        Dim Lines(20) As String
        Dim naoExiste As Integer
        Dim linhas_total As Integer
        
        Dim X As Integer
        
        num_linhas = 0
        linhas_total = 0
        naoExiste = 0
        
        strFileName = nameFile 'App.Path & "\Resistencia_Cabos.txt"
        Open strFileName For Input As #1
        
        Do Until EOF(1)
        
            linha = strFileName
            
            Line Input #1, linha
            
            Lines(linhas_total) = linha
            
            
            'verifica se o cabeçalho e valido
            If InStr(1, linha, cbo_cabo.Text) Then
                
                Lines(linhas_total) = cbo_cabo.Text & ";" & txt_R1.Text & ";" & txt_R2.Text & ";" & txt_R3.Text & ";" & txt_R4.Text & ";"
                
            Else
            
                naoExiste = naoExiste + 1
                
            End If
            
            linhas_total = linhas_total + 1
        Loop
        
        If naoExiste = linhas_total Then
        
            Lines(linhas_total) = cbo_cabo.Text & ";" & txt_R1.Text & ";" & txt_R2.Text & ";" & txt_R3.Text & ";" & txt_R4.Text & ";"
            
        End If
        
        
        Close #1
        
        '--------------------------------------------------------------------------------------------
        'Escrita
        Open nameFile For Output As #1
        
        For X = 0 To linhas_total
            Print #1, Lines(X)
        Next X
        
        Close #1
        
        'Atualiza Combobox
        cbo_cabo.Clear
        
        initCabo
        
        cbo_cabo.ListIndex = 0
        loadCabo (cbo_cabo.Text)
        loadCabo ("Cabo 1")
        
    End Sub


    • Editado brakatsu terça-feira, 12 de maio de 2015 13:18
    terça-feira, 12 de maio de 2015 13:13
  • Tenta como o Junior já falou acima, limpa o cache do IE.
    terça-feira, 12 de maio de 2015 14:01
  • Testei e não resolveu o problema. Estou tendo esse mesmo problema com arquivos .XML também. 
    Não sei se pode ser algum bug do Visual Basic 6 com o windows 8.
    terça-feira, 12 de maio de 2015 14:14
  • Tive um problema certa vez em um cliente parecido com esse seu e só foi resolvido depois que se desligou tudo, a página estava em cache em algum lugar(switch,servidor web,etc...).

    Junior

    terça-feira, 12 de maio de 2015 14:39
  • O estranho e que o erro não acontece enquanto estou debugando o programa. 
    Só apos gerar o arquivo executável e instalar o programa que o conteúdo fantasma acontece.
    Não sei se tem relação direta com o projeto que gera os arquivos de instalação.
    Sera que falta alguma configuração que eu preciso fazer antes de gerar os arquivos .exe ??

    terça-feira, 12 de maio de 2015 16:36
  • Veja se deletando o arquivo .suo não resolve ele costuma guardar lixos.

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    terça-feira, 12 de maio de 2015 18:30
  • Também não resolveu o problema.
    Eu fecho o programa e tendo editar o arquivo resistencias.txt que esta dando erro, ele fica localizado no diretório "C:\Program Files (x86)\BM_MM\" e na hora de salvar 
    ele me da a seguinte mensagem. "Save Failed: Please check whether if this file is opened in a another program". O erro persiste mesmo reiciando o computador, isso e normal por ele se encontrar dentro do Program Files (x86) ??

    Sera que eu não estou fechando o arquivo em algum ponto.. tem alguma função do visual basic que eu posso estar usar pare fechar todas as dependências que meu programa abriu??
    terça-feira, 12 de maio de 2015 19:25
  • Tente parar o IIS, ele esta salvando nessa pasta por que provavelmente você não determinou um local para o salvamento.

    O IIS mesmo reiniciando o computador não para a não ser que force a parada.


    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    terça-feira, 12 de maio de 2015 19:42
  • Também continua na mesma... dei um stop no IIS, limpei o cache do IE e nada.
    Existe alguma rotina de encoding que precisa ser feito durante a escrita no arquivo??
    terça-feira, 12 de maio de 2015 20:05
  • Nessa linha informa um caminho que não seja esse:


     strFileName = nameFile 'App.Path & "\Resistencia_Cabos.txt"

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    terça-feira, 12 de maio de 2015 20:12
  • Ele esta dessa forma na verdade.
    'Variavel Global.
    Public nameFile As String  
    
    nameFile = App.Path & "\Resistencia_Cabos.txt"
    
    '------Funcao de escrita-----
     Open strFileName For Input As #1
     
     'execução da rotina....
     
     Close #1
    Mesmo alterando o nome do arquivo o erro persiste. Já tentei colocando 

     Open App.Path & "\Resistencia_Cabos.txt" For Input As #1
    
     'e 
    
     Open "Resistencia_Cabos.txt" For Input As #1
    mas também não funcionou.


    terça-feira, 12 de maio de 2015 20:31
  • Não é alterar o nome do arquivo e sim o local onde você o salva

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    terça-feira, 12 de maio de 2015 20:42
  • Não funcionou, alterei as configurações da pasta tbm e nada.
    quarta-feira, 13 de maio de 2015 12:11
  • Boa tarde usuário,

    Qual o Unicode da sua maquina e do seu programa ? Esse pode ser o motivo do lixo na sua resposta

    Abraços


    Matheus Leopardi Mello Canelada Campos

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    TechNet Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 22 de maio de 2015 19:30
  • A pasta "C:\Program Files (x86)" é de sistema e por defeito não dá acesso de escrita aos utilizadores, apenas aos adminstradores.

    Não é boa pratica colocar ficheiros de utilizador nesse local.

    App.Path retorna o local em que o executável está. Tenta colocá-lo na pasta dos documentos e executa.

    Deverás usar a pasta de dados:  Environ$("AppData") no lugar de App.Path. será utilizada a pasta:  "C:\Users\<user>\AppData\Roaming\"

    E em debug o executável fica nos temporários do utilizador, algo como "C:\Users\<user>\AppData\Local\Temp\"

    sábado, 23 de maio de 2015 13:25
  • Caso tenha conseguido a solução finalize sua Thread marcando a resposta

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    • Marcado como Resposta Marcos SJ terça-feira, 23 de fevereiro de 2016 13:54
    domingo, 28 de junho de 2015 14:01
  • Bom dia,

    Por falta de retorno do usuário, esta thread será encerrada.

    Caso seja necessário, por gentileza, abra uma thread nova.

    Atenciosamente

    Marcos SJ

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    terça-feira, 23 de fevereiro de 2016 13:55