Erro I/O 32.

05/08/2004

7

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.

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]


Responder

Posts

06/08/2004

Pauloamaral

Não sei se vai resolver, mas tem um ´end´ a mais.


Responder

06/08/2004

Pauloamaral

Desculpe-me, li errado. Se encontrar algo te respondo.


Responder

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:

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

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar