Usuário com melhor resposta
Lendo conteúdo inexistente de um arquivo .TXT - Visual Basic

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!!
Respostas
-
Caso tenha conseguido a solução finalize sua Thread marcando a resposta
A 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
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.
A vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel
-
-
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
-
-
-
-
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 ??
-
-
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?? -
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.
A vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel
-
-
-
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.
-
-
-
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.
-
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\"
-
Caso tenha conseguido a solução finalize sua Thread marcando a resposta
A 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
-
Bom dia,
Por falta de retorno do usuário, esta thread será encerrada.
Caso seja necessário, por gentileza, abra uma thread nova.
AtenciosamenteMarcos 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.