Announcement

Collapse
No announcement yet.

Probleme mit TFileStream...

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Probleme mit TFileStream...

    Hi.

    Ich hab da ein Problem mit TFileStream. Und zwar mache ich einen TFileStream auf bzw erstelle ihn mit Create. Jetzt gibt es eine Variable MemoryBuffer vom Typ TMemoryStream. Bei der kommen Daten an. Diese Daten sollen in den TFileStream. Das mache ich indem ich DateiStream.CopyFrom(MemoryBuffer,MemoryBuffer.Siz e) nutze. Nur wird das alles in den Hauptspeicher geschrieben. Wenn das aber von der Größe her den freien Hauptspeicher übersteigt, stürzt das ab. Auch wenn ich den Stream schließe und dann mit fmOpenReadWrite neu öffne wird er zwar zwischendurch auf Platte geschrieben aber dann scheinbar wieder komplett in den Hauptspeicher geschrieben. Unter Windows 2000 wird das dagegen scheinbar gleich auf Platte geschrieben. Wie kann ich unter Windows 98 den FileStream so hinbekommen, daß der FileStream wirklich auf die Platte geht und der Speicher frei bleibt?

  • #2
    Hallo Sven,<br>warum verwendest Du den Umweg über TMemoryStream. Laß die Daten doch gleich nach TFilestream schreiben.<bR>Jens Schuman

    Comment


    • #3
      Das mach ich darum nicht, weil es dann gleich gar nicht funktioniert.

      Das Problem ist folgendes:
      Es sollen Dateien zwischen 2 Rechnern hin und her geschickt werden. Dazu verwende ich die Streamkomponente von FastNet (Delphi 5). Als ich versucht habe, direkt in einen FileStream zu schreiben, ging das zwar, aber nur bei kleinen Dateien. Die Dateien, um die es aber wirlich geht sind im Bereich 120-680 MB. Also recht große Dateien, und da funktioniert das überhaupt nicht. Zumindest nicht unter Windows 98. Nur ist das das Zielsystem. Über den Memory nutze ich nun quasi die Auslagerungsdatei mit. So kommen ich schon von Dateigrößen 10 MB auf bis zu 40 MB. Nur reicht das noch immer nicht. An Hardware und Software kann ich nichts ändern, da das zum Kunden gehört. Nur an der Software, an der ich arbeite. Also brauch ich irgend einen Weg, den FileStream auf der Platte zu lassen, um diese großen Dateien "hinzustreamen"

      Comment

      Working...
      X