Registriert seit: 12. Mai 2012
3 Beiträge
Delphi 6 Professional
|
E/A Fehler 32
18. Okt 2012, 20: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;
|
|
Zitat
|