Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi EInOutError mit Write (https://www.delphipraxis.net/35797-einouterror-mit-write.html)

TheReaper 11. Dez 2004 23:15


EInOutError mit Write
 
Guten Morgen! :)

Ich hab seit neuestem ein Problem mit dem Code:

Delphi-Quellcode:
...

for i:=delete to (filesize(f1)-1) do
begin
   seek(f1,i);
   read(f1,liste);
   seek(f1,i-1);
   Write(f1,liste); //<-- Hier ist der Fehler
end;
seek(f1,filesize(f1)-1);
truncate(f1);

...
Es kommt ein EInOutError mit Fehlercode 2 (Dateizugriff verweigert). Ich hab allerdings keinen blassen schimmer warum. Die Prozedur ging früher ohne Probleme. Hab auch seid Wochen nichts mehr dran geändert. Der war auf einmal von heute auf morgen da. Den Code der später ins Programm dazu kam, hat damit nichts zu tun. Also kanns daran nicht liegen. Hat jemand ne Ahnung?
Keine Ahnung ob es wichtig ist aber das ist ne untypisierte Datei.

fkerber 11. Dez 2004 23:38

Re: EInOutError mit Write
 
Hi!

Wie öffnest du die Datei denn?


Ciao Frederic

nailor 11. Dez 2004 23:56

Re: EInOutError mit Write
 
hast du schreib/lese-rechte für die datei geändert bzw sie verschoben/gelöscht?

TheReaper 12. Dez 2004 11:53

Re: EInOutError mit Write
 
Ich öffne die Datei ganz normal mit
Delphi-Quellcode:
AssignFile(f1, 'bla.bla');
{$I-}
reset(f1);
if IOResult<>0 then Rewrite(f1);
{$I+}
Schreib- , Leserechte hab ich nicht geändert. Daten aus der Datei lesen geht ohne Probs. Nur mit dem Schreiben gehts nich. :(

fkerber 12. Dez 2004 12:23

Re: EInOutError mit Write
 
Hi!

Hast du mal das IOResult nach dem Rewrite geprüft?


Ciao Frederic

TheReaper 12. Dez 2004 12:40

Re: EInOutError mit Write
 
Wie gesagt, Ich kann Datensätze lesen. Also wird das File auch Fehlerfrei geöffnet.
Ich hab nochmal versucht ein Datensatz zu ändern/anzulegen, und es hat funktioniert, obwohl ich nicht ein Bit an dem ganzen Code verändert habe. :gruebel: Keine Ahnung warum es aufeinmal geht. (Bug im Delphi???)

TheReaper 12. Dez 2004 16:52

Re: EInOutError mit Write
 
Funktioniert schon wieder nicht. :( Hab an dem Code nichts geändert. Er meckert immer rum das keine zugriffsrechte vorhanden sind. Kann mir jemand helfen?

fkerber 12. Dez 2004 16:55

Re: EInOutError mit Write
 
Hi!

Greift vielleicht ein anderes Programm auf die Datei zu?


Ciao Frederic

TheReaper 12. Dez 2004 17:02

Re: EInOutError mit Write
 
nee, nur andere Prozeduren. Ich versuch das mal mit FileMode:=2; zu machen. Soweit scheint das jetzt zu funzen.
Delphi-Quellcode:
...

for i:=delete to (filesize(f1)-1) do
begin
   FileMode:=2;
   reset(f1);
   seek(f1,i);
   read(f1,liste);
   seek(f1,i-1);
   Write(f1,liste);
end;
seek(f1,filesize(f1)-1);
truncate(f1);

...

Luckie 12. Dez 2004 22:33

Re: EInOutError mit Write
 
Bist du sicher, dass du die Datei auch wieder schließt?


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz