Duvida com txt
Caros colegas,
Estou criando um arquivo texto em uma aplicação, estava fazendo isso no form principal e o codigo está assim:
procedure TFrmPrincipal.SpeedButton3Click(Sender: TObject);
var
txt: TextFile;
begin
AssignFile(txt,´c:\BD.txt´);
Rewrite(txt);
Writeln(txt, EdVendedor.Text);
Writeln(txt, LblNumPedido.Caption);
......................................
No form principal está funcionando perfeitamente, mas resolvi fazer isso em um outro form(secundário) coloquei o mesmo codigo lá(e tirei do principal), só q ai quando eu executo essa operação da o seguinte erro na linha
Rewrite(txt);
O erro é esse: Project Pedido.exe raised exception class EInOutError with message ´Invalid fileName´. Process Stopped. Use step or run to continue.
Alguem saberia me dizer o motivo??
Desde já agradeço.
[]´s.
Estou criando um arquivo texto em uma aplicação, estava fazendo isso no form principal e o codigo está assim:
procedure TFrmPrincipal.SpeedButton3Click(Sender: TObject);
var
txt: TextFile;
begin
AssignFile(txt,´c:\BD.txt´);
Rewrite(txt);
Writeln(txt, EdVendedor.Text);
Writeln(txt, LblNumPedido.Caption);
......................................
No form principal está funcionando perfeitamente, mas resolvi fazer isso em um outro form(secundário) coloquei o mesmo codigo lá(e tirei do principal), só q ai quando eu executo essa operação da o seguinte erro na linha
Rewrite(txt);
O erro é esse: Project Pedido.exe raised exception class EInOutError with message ´Invalid fileName´. Process Stopped. Use step or run to continue.
Alguem saberia me dizer o motivo??
Desde já agradeço.
[]´s.
Fabiano_aprendiz
Curtidas 0
Respostas
Decandido21
04/08/2005
var
Txt: TextFile;
begin
try
AssignFile(Txt,´C:\CLIENTES.TXT´);
Rewrite(Txt);
except
showmessage(´Erro ao gerar arquivo!´);
exit;
end;
WriteLn(Txt, QryClienteNome.AsString);
WriteLn(Txt, QryClienteEndereco.AsString);
...............................................
closefile(Txt);
showmessage(´Arquivo gerado com sucesso.´);
end;
Txt: TextFile;
begin
try
AssignFile(Txt,´C:\CLIENTES.TXT´);
Rewrite(Txt);
except
showmessage(´Erro ao gerar arquivo!´);
exit;
end;
WriteLn(Txt, QryClienteNome.AsString);
WriteLn(Txt, QryClienteEndereco.AsString);
...............................................
closefile(Txt);
showmessage(´Arquivo gerado com sucesso.´);
end;
GOSTEI 0
Fabiano_aprendiz
04/08/2005
Isso não funcionou, continua rolando o mesmo erro.
GOSTEI 0
Massuda
04/08/2005
Project Pedido.exe raised exception class EInOutError with message ´Invalid fileName´....
Essa mensagem de erro fala que o nome do arquivo é inválido... qual nome de arquivo você está usando?GOSTEI 0
Fabiano_aprendiz
04/08/2005
O arquivo texto?? Se for é BD.txt, mas já tentei renomear esse cara, mas continuou rolando o mesmo problema.
GOSTEI 0
Fabiano_aprendiz
04/08/2005
Esclarecendo, o problema está na linha do AssignFile. Pois se ela já estiver com o caminho determinado funciona. Ex:
AssignFile(txt,´a:\BD.txt´);
O problema é q eu vou executar esse software em diversos usuarios diferentes, e pode ser q em algum usuario o drive de disquete não esteja definido com a letra A. Então eu coloquei um componente DriveComboBox, na criação do formulário esse kra já recebe a letra A mas no caso d o usuario quizer mudar não tem problema. Fiz isso aqui no codigo.
procedure TFrmGravar.BitBtn1Click(Sender: TObject);
var
DriverDestino: String;
txt: TextFile;
begin
DriverDestino := DriveComboBox1.Drive + ´:´;
AssignFile(txt,DriverDestino\BD.txt´);
Rewrite(txt);
Writeln(txt, FrmPrincipal.EdVendedor.Text);
Writeln(txt, FrmPrincipal.LblNumPedido.Caption);
......................
Aí sim não funciona e ocorre o erro já citado. Parece q ele não pego o conteúdo da variavel ´DriverDestino´
AssignFile(txt,´a:\BD.txt´);
O problema é q eu vou executar esse software em diversos usuarios diferentes, e pode ser q em algum usuario o drive de disquete não esteja definido com a letra A. Então eu coloquei um componente DriveComboBox, na criação do formulário esse kra já recebe a letra A mas no caso d o usuario quizer mudar não tem problema. Fiz isso aqui no codigo.
procedure TFrmGravar.BitBtn1Click(Sender: TObject);
var
DriverDestino: String;
txt: TextFile;
begin
DriverDestino := DriveComboBox1.Drive + ´:´;
AssignFile(txt,DriverDestino\BD.txt´);
Rewrite(txt);
Writeln(txt, FrmPrincipal.EdVendedor.Text);
Writeln(txt, FrmPrincipal.LblNumPedido.Caption);
......................
Aí sim não funciona e ocorre o erro já citado. Parece q ele não pego o conteúdo da variavel ´DriverDestino´
GOSTEI 0
Rjun
04/08/2005
Acredito q você tenha digitado errado, mas....
AssignFile(txt, ´DriverDestino´ + ´\BD.txt´);
GOSTEI 0
Fabiano_aprendiz
04/08/2005
RJun, já tinha tentado assim tbm e acontece o mesmo erro.
GOSTEI 0
Rjun
04/08/2005
Tenta usar o TStringList.
procedure TFrmGravar.BitBtn1Click(Sender: TObject); var DriverDestino: String; Txt: TextFile; Lista: TStringList; begin Lista := TStringList.Create; try DriverDestino := DriveComboBox1.Drive + ´:´; Lista.Add(FrmPrincipal.EdVendedor.Text); Lista.Add(FrmPrincipal.LblNumPedido.Caption); Lista.SaveToFile(DriverDestino + ´\BD.TXT´); finally FreeAndNil(Lista); end; end;
GOSTEI 0
Fabiano_aprendiz
04/08/2005
Vlw Rogério Jun, estava mesmo pesquisando sobre TStringList (pois só tinha visto isso uma unica vz e não lembrava direito) com essa sua dica funcionou s/problemas. Obrigado pela força, não só sua como d todos os outros q tbm postaram aqui.
[]´s.
[]´s.
GOSTEI 0