Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Delphi + Festplatte voll = Stream Fehler (Tipp) (https://www.delphipraxis.net/5192-delphi-festplatte-voll-%3D-stream-fehler-tipp.html)

hitzi 27. Mai 2003 12:58


Delphi + Festplatte voll = Stream Fehler (Tipp)
 
Hallo,

Achtet darauf, dass auf eurer Festplatte immer genügend Speicher für die Speicherung eurer Projekte aus Delphi heraus vorhanden ist!

Ich hatte gerade so einen Zustand. Festplatte voll wollte Speichern, da ich eine kleine Änderung im Quelltext gemacht habe -> IDE Fehler "Stream Fehler". Hmmm, ... ok. Delphi war ja auch schon mehrere Tage offen. Schließ ich's eben. War eh nur eine kleine Änderung seit dem letzten erfolgreichen speichern. <-- SCHWERER FEHLER VON MIR!

Als Delphi dann geschlossen war und bekam ich über den Explorer mit, dass die Platte voll war (hatte mit Zip Archiven rumexperimentiert - entpackt je 700MB). Ok Platte aufgeräumt. Delphi neugestartet. Mein Projekt wieder aufgerufen. Hmmm ... Leeres Codefenster????
Nochmal versucht - wieder das Gleiche. Entsprechendes Verzeichnis im Explorer geöffnet - Dateigröße von unit1 ist auf null?!
Verdammt eine halbe Woche Arbeit weg :( Glücklicherweise hatte ich ein Sicherung. Trotzdem ist ein ganzer Tag Programmierung im A*sch!

Also, falls ihr mal den Fehler "Stream Fehler" bekommt, ERST die Plattenkapazität überprüfen und evt. wieder Speicherplatz freimachen oder woanders abspeichern. Das kann viel Arbeit ersparen...

Btw. wieso sagt mir Delphi eigentlich nicht, dass zum Speichern kein Speicherplatz mehr vorhanden ist?


MfG Hitzi

Stanlay Hanks 27. Mai 2003 13:37

Hat es doch, wenn es dir einen Fehler bringt....zwar nicht eindeutig, aber immerhin. Also mein Windows sagt bescheid, wenn die Festplatte zu so und soviel Prozent voll is...das kann man glaub ich irgendwo einstellen, weiß aber im moment nicht genau, wo...
Man liest sich, Stanlay

woki 27. Mai 2003 14:31

Hallo,

Delphi legt doch per Voreinstellung immer Backups an, also was war denn mit unit1.~pas, war die denn auch platt?

Außerdem, immer Autospeichern auf true,

Grüße
Woki

hitzi 27. Mai 2003 15:10

Zitat:

Zitat von woki
Delphi legt doch per Voreinstellung immer Backups an, also was war denn mit unit1.~pas, war die denn auch platt?

Habe ich deaktiviert.
Zitat:

Zitat von woki
Außerdem, immer Autospeichern auf true,

Eben der Speicherversuch war falsch. Delphi überprüft nicht, ob der Platz noch ausreicht zum Speichern, sondern erstellt erstmal die gewünschte Datei (in dem Fall unit1.pas) neu und versucht dann in die Datei zu schreiben und eben erst bei dem Schreibvorgang bekommt Delphi den Fehler - aber zu diesem Zeitpunkt sind die alten Daten leider schon weg :(

MfG Hitzi

woki 27. Mai 2003 16:43

Zitat:

Habe ich deaktiviert
Dann darfst du dich auch nicht beschweren. Nun sind natürlich die Daten mindestens der gerade im Schreiben befindlichen Datei platt, egal aus welchem Grund es hier zu einem Problem kommt.

Darum, daß noch genug Platz auf der Platte ist, muß man sich schon kümmern, Delphi kann das schwerlich tun, man denke z.B. an komprimierende Filessysteme, außerdem soll gerade Autospeichern natürlich schnell gehen, und wie gesagt, wenn man alle Sicherungen abschaltet...

Grüße
Woki

hitzi 28. Mai 2003 06:18

Zitat:

Zitat von woki
Dann darfst du dich auch nicht beschweren.

Klar darf ich mich beschweren. Hätte Delphi gesagt, dass der Platz zum Speichern nicht ausreicht, hätte ich einen alternativen Speicherort angegeben. Wozu hab ich den mehrere Partitionen und zur Not noch einen Fileserver im Netzwerk?!

Das ist ja wohl das mindeste was ich von einem Programm in dieser Preisklasse verlangen kann.

Aber das geht am Thema vorbei - eigentlich wollte ich nur darauf aufmerksam machen das ein "Stream Fehler" beim Speichern auch "Festplatte voll" bedeuten kann.

MfG Hitzi

Christian Seehase 28. Mai 2003 14:45

Moin Hitzi,

auch wenn's jetzt leicht OT wird:
Meist werden Schreibvorgänge auf die Festplatte von Windows gepuffert, und erst dann tatsächlich ausgeführt, wenn das OS sich "langweilt".
Dieser Vorgang kann auch mal schiefgehen, z.b. bei Hardwareproblemen.

Sollte also beim Speichern mal ein Fehler auftreten, kann man's mal mit Speichern unter versuchen.

hitzi 28. Mai 2003 15:00

Zitat:

Zitat von Christian Seehase
Meist werden Schreibvorgänge auf die Festplatte von Windows gepuffert, und erst dann tatsächlich ausgeführt, wenn das OS sich "langweilt".
Dieser Vorgang kann auch mal schiefgehen, z.b. bei Hardwareproblemen.

Sollte also beim Speichern mal ein Fehler auftreten, kann man's mal mit Speichern unter versuchen.

Man sollte aber annehmen, dass vor dem Speichervorgang gescheckt wird, ob noch Platz zur Verfügung steht und eine dementsprechende Meldung ausgegeben wird! Früher (kleine Festplatten, Disketten, ..) war das Standard in fast allen Programmen - warum wird das heut nicht gemacht?
So eine Funktion zum Checken des freien Speicherplatzes ist doch sogar in den Borlands Sysutils gekapselt -> GetDiskFreeSpaceEx.

Was ist, wenn ich meine Projekte nur auf Diskette speichere. Da kann es schnell mal vorkommen, dass der Platz nicht ausreicht. Oder greift in dem Fall eine Prüfroutine? In der Art:

If Speichern auf Diskette then
Prüfung an
Else
Prüfung aus

Wäre nicht ok ... werd's aber mal in einer freien Minute testen.

Naja - eben mal wieder was dazu gelernt. :)

MfG Hitzi

Christian Seehase 28. Mai 2003 15:07

Moin Hitzi,

Zitat:

Zitat von Hitzi
Früher (kleine Festplatten, Disketten, ..) war das Standard in fast allen Programmen - warum wird das heut nicht gemacht?

Wann hast Du das letzte mal was auf eine Diskette kopiert?

Wenn der Platz nicht reicht erfährst Du das auch immer erst, später. Windows prüft es nicht vorher.
Ich versuche bei Speicherroutinen zwar auch das vorherzu prüfen, aber es ist doch manchmal etwas aufwendig.
Wenn Du z.b. mit GetDiskFreeSpaceEx feststellt, dass Du noch 2000 Byte freihast, und zu speichernde Datei 1000 Byte gross ist, könnte man auf die Idee kommen, das der Platz reicht. Ist jetzt aber die Clustergrösse auf 4096 eingestellt (Standard unter W2K) so wird der Platz nicht reichen, da mindestens 4096 Byte belegt werden. Das muss dann also auch noch berücksichtigt werden.

wb32 11. Sep 2003 14:51

Re: Delphi + Festplatte voll = Stream Fehler (Tipp)
 
wie kann man den die clustergrösse ermitteln ?

mir war so als wenn die im boot sektor steht richtig ???


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:01 Uhr.
Seite 1 von 2  1 2      

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