Thema: Delphi E/A Fehler 32

Einzelnen Beitrag anzeigen

kdrexler

Registriert seit: 12. Mai 2012
3 Beiträge
 
Delphi 6 Professional
 
#1

E/A Fehler 32

  Alt 18. Okt 2012, 19:47
Delphi-Version: 6
Hallo zusammen,

ich bekomme in der Rutine beim löschen der Datei einen Fehler E/A 32 (Datei wird von einer anderen Anwendung benutz). Habe aber vorher einen einen closefile() eingesetzt. Sieht jemand den Fehler??

Danke für die Hilfe!


Delphi-Quellcode:
procedure artikelnummern_sort;
var zaehler : integer;
Begin
  fartikelimport_neu.CBArtikelsort.Visible := true;
  fartikelimport_neu.CBArtikelsort.Items.Clear;
  assignfile(artikeldatei,stammverzeichnisname + '\' + datenverzeichnisname + '\' + artikeldateiname);
  reset(Artikeldatei);
  while not (eof(Artikeldatei)) do
    Begin
      init_artikel(artikel);
      read(Artikeldatei,artikel);
      str(artikel.typ:1,dummy);
      dummy_zeile := trim(dummy) + '|';
      str(artikel.Artikelnummer:10:0,dummy);
      dummy := '00000000000000000000000000' + trim(dummy);
      dummy := copy(dummy,length(dummy) - 15,length(dummy));
      dummy_zeile := dummy_zeile + trim(dummy) + '|';
      str(artikel.Artikelposition:10,dummy);
      dummy_zeile := dummy_zeile + trim(dummy);
      fartikelimport_neu.CBArtikelsort.Items.Add(dummy_zeile);
    end;
  assignfile(reorg_artikeldatei,stammverzeichnisname + '\' + datenverzeichnisname + '\' + 'S' + artikeldateiname);
  rewrite(reorg_artikeldatei);
  for zaehler := 0 to fartikelimport_neu.CBArtikelsort.Items.Count - 1 do
    Begin
      dummy_zeile := fartikelimport_neu.CBArtikelsort.Items[zaehler];
      init_artikel(artikel);
      dummy := copy(dummy_zeile,1,pos('|',dummy_zeile) - 1);
      val(dummy,artikel.typ,valok);
      dummy_zeile := copy(dummy_zeile,pos('|',dummy_zeile) + 1,length(dummy_zeile));
      dummy := copy(dummy_zeile,1,pos('|',dummy_zeile) - 1);
      val(dummy,artikel.Artikelnummer,valok);
      dummy_zeile := copy(dummy_zeile,pos('|',dummy_zeile) + 1,length(dummy_zeile));
      val(dummy_zeile,artikel.Artikelposition,valok);
      seek(artikeldatei,artikel.Artikelposition - 1);
      init_artikel(artikel);
      read(artikeldatei,artikel);
      artikel.Artikelposition := filesize(reorg_artikeldatei) + 1;
      write(reorg_artikeldatei,artikel);
    end;
  closefile(reorg_artikeldatei);
  close(artikeldatei);
  erase(artikeldatei); //<== Hier kommt der Fehler!!!
  if DeleteFiles(stammverzeichnisname + '\' + datenverzeichnisname + '\' + artikeldateiname) then
    rename(reorg_artikeldatei,stammverzeichnisname + '\' + datenverzeichnisname + '\' + artikeldateiname);
  fartikelimport_neu.CBArtikelsort.Visible := false;
end;
  Mit Zitat antworten Zitat