Erro I/O 32.
05/08/2004
0
O que está errado na instrução abaixo. A minha intenção na procedure abaixo é que a hora que for encontrado a linha MUDOU CONSIGNATARIA grave o nome do arquivo que vai estar na variável Recebe e assim sucessivamente. É preciso fazer isso porque grava-se o nome do banco (Banco do Brasil, Bradesco, Itaú etc....) que está na variável Recebe com os seus respectivos registros e assim sucessivamente para outros bancos (Banco do Brasil, Bradesco, Itaú etc....). Se alguém puder ajudar-me.
:idea: [color=blue:f4058be923]Mensagem alterada por oTTo. Usado BBCode pra facilitar a leitura.[/color:f4058be923]
procedure TFmrImportExport.BitBtn7Click(Sender: TObject); var Recebe : String; F : TextFile; A : STRING; B : String; // txt : TStrings; begin ClientDataSet1.First; While not ClientDataSet1.Eof do begin Recebe := ClientDataSet1NumericoCPF.AsString; A := ClientDataSet1Matricula.AsString; B := ClientDataSet1Nome.AsString; If (ClientDataSet1Nome.AsString = ´MUDOU CONSIGNATARIA´) then begin AssignFile(f,´c:\´+recebe+´.txt´); Rewrite(F); CloseFile(F); end else begin AssignFile(f,´C:\Teste.txt´); Rewrite(F); Writeln(f,A,b); ClientDataSet1.next; end; end; end;
:idea: [color=blue:f4058be923]Mensagem alterada por oTTo. Usado BBCode pra facilitar a leitura.[/color:f4058be923]
Oziasl
Curtir tópico
+ 0
Responder
Posts
06/08/2004
Keitarosan
Aí irmão, existem 2 pontos na sua rotina que me geraram uma dúvida, mas vou perguntar pra você antes de afirmar qualquer coisa:
[b:cde49dff10]//Porque você não colocou aqui esse comando: [color=red:cde49dff10]ClientDataSet1.next;[/color:cde49dff10]? quando sua condição cai aqui, ele não passa para o próximo registro, ou seja, você ficaria preso no seu While, não?[/b:cde49dff10] :roll:
[b:cde49dff10]//Provavelmente o erro I/O 32 ocorre pq você não fecha o arquivo aqui... Você deu um AssignFile, Rewrite, Writeln... porém não fechou o arquivo ao final da operação, creio que aqui deveria ter um [color=red:cde49dff10]CloseFile(F);[/color:cde49dff10][/b:cde49dff10] :D
É isso aí irmaozinho, qualquer erro cometido por mim, poste aí :wink:
procedure TFmrImportExport.BitBtn7Click(Sender: TObject); var Recebe : String; F : TextFile; A : String; B : String; begin ClientDataSet1.First; While not ClientDataSet1.Eof do begin Recebe := ClientDataSet1NumericoCPF.AsString; A := ClientDataSet1Matricula.AsString; B := ClientDataSet1Nome.AsString; If (ClientDataSet1Nome.AsString = ´MUDOU CONSIGNATARIA´) then begin AssignFile(F,´C:\´+recebe+´.txt´); Rewrite(F); CloseFile(F);
[b:cde49dff10]//Porque você não colocou aqui esse comando: [color=red:cde49dff10]ClientDataSet1.next;[/color:cde49dff10]? quando sua condição cai aqui, ele não passa para o próximo registro, ou seja, você ficaria preso no seu While, não?[/b:cde49dff10] :roll:
end else begin AssignFile(F,´C:\Teste.txt´); Rewrite(F); Writeln(F, A,B); ClientDataSet1.next;
[b:cde49dff10]//Provavelmente o erro I/O 32 ocorre pq você não fecha o arquivo aqui... Você deu um AssignFile, Rewrite, Writeln... porém não fechou o arquivo ao final da operação, creio que aqui deveria ter um [color=red:cde49dff10]CloseFile(F);[/color:cde49dff10][/b:cde49dff10] :D
end; end; end;
É isso aí irmaozinho, qualquer erro cometido por mim, poste aí :wink:
Responder
Clique aqui para fazer login e interagir na Comunidade :)