Erro Ao tentar ler o Arquivo
22/02/2006
0
A função que uso pra ler o arquivo e não ta com erro é:
AssignFile(ArqServidor, ´C:\ARQUIVO.TXT´);
Reset(ArqServidor);
Read(ArqServidor, LocalServidor);
CloseFile(ArqServidor);
e depois tento usar a seguinte para editar o arquivo e da o erro é:
Try
AssignFile (ArquivoServidor, ´C:\Arquivo.TXT´);
ReWrite(ArqTexto);
WriteLn(ArqTexto, LbLocal.Text);
except
On EconvertError do
Messagedlg(´ERRO: Arquivo Invalido´, mterror, [mbok],0);
end;
Alguem pode me ajudar a resolver este problema
Marcal
Posts
22/02/2006
Paullsoftware
coloque esse código dentro do Try Finally..
try
AssignFile(ArqServidor, ´C:\ARQUIVO.TXT´);
Reset(ArqServidor);
Read(ArqServidor, LocalServidor);
finally
CloseFile(ArqServidor);
end;
22/02/2006
Massuda
No caso, quando você vai escrever no arquivo, o Rewrite pede acesso exclusivo ao arquivo, mas não está conseguindo porque alguém está usando o arquivo (para leitura ou escrita). Pode ser alguma outra parte do seu programa ou algum outro programa que está mantendo o arquivo aberto.
22/02/2006
Marcal
22/02/2006
Massuda
22/02/2006
Marcal
1º {Codigo de Leitura}
Try
AssignFile(ArqServidor, ´C:\SERVIDOR.TXT´);
Reset(ArqServidor);
Read(ArqServidor, LocalServidor);
Finally
CloseFile(ArqServidor);
end;
e depois 2º
{Codigo de Escrita }
Try
Try
AssignFile(ArquivoServidor, ´C:\SERVIDOR.TXT´);
ReWrite(ArquivoServidor);
WriteLn(ArquivoServidor, LbLocal.Text);
Finally
Closefile(ArquivoServidor);
end;
except
On EconvertError do
Messagedlg(´ERRO: Arquivo Invalido´, mterror, [mbok],0);
end;
22/02/2006
Massuda
Os pedaços de código que você postou não tem problema.
22/02/2006
Martins
procedure TForm1.Button1Click(Sender: TObject); var Arq: TextFile; LocalServidor: String; begin try AssignFile(Arq, ´C:\Rename\Teste.txt´); Reset(Arq); ReadLn(Arq, LocalServidor); Edit2.Text := LocalServidor; finally CloseFile(Arq); end; end; procedure TForm1.Button2Click(Sender: TObject); var arq: TextFile; begin try try AssignFile(Arq, ´C:\Rename\Teste.txt´); ReWrite(Arq); WriteLn(Arq, Edit1.Text); finally CloseFile(Arq); end; except on EConvertError do MessageDlg(´ERRO: Arquivo inválido´, mtError, [mbOK], 0 ); end; end;
Boa sorte!!!
22/02/2006
Martins
Verdade [b:92e8eb741c]Massuda[/b:92e8eb741c], pode ser isso, talvez um outo aplicativo possa está usando o arquivo, para simular o erro eu criei o arquivo normal, utilizando o [b:92e8eb741c]CloseFile[/b:92e8eb741c] para fechá-lo e depois em outro botão eu faço a leitura do conteúdo do arquivo sem fechá-lo e quando tento alterar seu conteúdo, é mostrado o Erro 32 q indica q o arquivo está em uso. Talvez em algum lugar do seu sistema vc faça essa leitura, verifique seu código.
Boa sorte!!!
22/02/2006
Marcal
22/02/2006
Massuda
22/02/2006
Martins
Isso mesmo, bem lembrado [b:413692757d]Massuda[/b:413692757d], faça o teste sugerido pelo Massuda ou então mude o nome desse arquivo chato :P
Faça os testes e post aqui novamente!!
22/02/2006
Marcal
Try
AssignFile(ArquivoServidor, ´C:\SERVIDOR.TXT´);
ReWrite(ArquivoServidor);
WriteLn(ArquivoServidor, LbLocal.Text);
Finally
Closefile(ArquivoServidor);
end;
para alterar o arquivo e so q agora da erro I/O error 103, o mudou o erro mais continua não funcionando
22/02/2006
Massuda
AssignFile(ArquivoServidor, ´C:\SERVIDOR.TXT´); {$I-} ReWrite(ArquivoServidor); {$I+} if IOResult = 0 then begin {$I-} WriteLn(ArquivoServidor, LbLocal.Text); {$I+} {$I-} Closefile(ArquivoServidor); {$I+} end;
22/02/2006
Marcal
AssignFile(ArquivoServidor, ´C:\SERVIDOR.TXT´);
{$I-} ReWrite(ArquivoServidor); {$I+}
if IOResult = 0 then
begin
{$I-} WriteLn(ArquivoServidor, LbLocal.Text); {$I+}
{$I-} Closefile(ArquivoServidor); {$I+}
end
So que o valor de IOResult = Inaccessible value
E não acontence nada nenhuma msg de erro como nosso amigo Massuda falou o que devo fazer agora parece uma coisa tão simples mais ta me dando a maior dor de cabeça tentei colocar <> ao inves de = mais nada
22/02/2006
Martins
Por favor, verifique os atributos do arquivo, veja se ele não está somente leitura, pq esse erro é o q o Massuda falou mesmo, o arquivo não está sendo aberto.
Boa sorte!!!
Clique aqui para fazer login e interagir na Comunidade :)