Entwickler-Ecke
Dateizugriff - Probleme beim laden/speichern (I/O Fehler 32)
matschmann - Mi 06.04.05 16:09
Titel: Probleme beim laden/speichern (I/O Fehler 32)
Hallo,
ich habe ein Problem, bei dem ich absolut nicht weiterkomme (wahrscheinlich steh ich aber nur ziemlich auf dem Schlauch):
Ich habe zwei Funktionen in einer Klasse, die eine öffnet eine Datei, die andere speichert. Öffne ich eine Datei und will dann mit der writeFunktion die gleiche Datei ersetzen, dann krieg ich immer die Fehlermeldung 32.
Hier die beiden Funktionen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| function TNuvemReader.writeNuvem(myFile:String):boolean; Var j : Word; F : TextFile;
Begin AssignFile(F,myFile); ReWrite(F); WriteLn(F,'Nuvem-S Vers. 0.1'); [....] For j:=0 To length(werte)-1 Do WriteLn(F,Werte[j].zeit:12:7,' ', Werte[j].weggeber[1]:5,' ', Werte[j].weggeber[2]:5); CloseFile(F); result:=true;
End; |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| function TNuvemReader.readNuvem2File(myFile:String):boolean; Var j : Word; co,x : Integer; s : String; So : TextFile;
Begin AssignFile(So,myfile); ReSet(So);
ReadLn(So,s); if s<>'Nuvem-S Vers. 0.1' then begin CloseFile(So); result:=false end else begin
[....]
For j:=0 To Pred(datenpunkte) Do ReadLn(So,werte[j].zeit, werte[j].weggeber[1], werte[j].weggeber[2]);
CloseFile(So); result:=true; end; End; |
Moderiert von
raziel: Topic aus CLX / Delphi Language (Object-Pascal) verschoben am Mi 06.04.2005 um 16:39
Moderiert von
raziel: Code- durch Delphi-Tags ersetzt.
MAlsleben - Do 07.04.05 09:51
Hi,
Fehlercode 32 bedeutet: Verletzung bei der gemeinsamen Benutzung .
Offenbar ist die Datei noch geöffnet, indem Moment wo Du sie mit rewrite überschreibst.
Gruß Micha.
jasocul - Do 07.04.05 10:00
Sowas kann durch einen Programmabsturz oder ein vergessenes (oder nicht durchgeführtes bei einer Exception) CloseFile verursacht werden. Andere Möglichkeit: Du greifst mit zwei Programmen gleichzeitig darauf zu.
Theoretisch sollte ein Neustart des Rechners Abhilfe schaffen. Wenn die Datei nämlich erstmal gesperrt ist, gibt Windoof die so schnell nicht wieder frei.
Delete - Do 07.04.05 12:39
Man braucht einfach nur alle Programme beenden, die auf die Datei zugreifen, dann räumt Windows automatisch aus und ginbt alle Kernelobjekct automatisch wieder frei.
jasocul - Do 07.04.05 12:44
Luckie hat folgendes geschrieben: |
Man braucht einfach nur alle Programme beenden, die auf die Datei zugreifen, dann räumt Windows automatisch aus und ginbt alle Kernelobjekct automatisch wieder frei. |
Soweit die Theorie, wie es sein sollte. :twisted: (Nichts für ungut Luckie :wink: )
Ich habs in der Praxis leider schon anders erlebt. Nach einem Neustart des Rechners sollte es auf jeden Fall wieder funktionieren.
drstar - Do 25.05.06 01:44
chkdsk Laufwerk: /x in der DOS-Eingabeaufforderung wirkt manchmal einfach wunder, wenn es nicht grad eine Systempartition ist (Laufwerk durch den entsprechenden Bucstaben ersetzen).
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!