![]() |
Stream automatisch teilen
Hallo,
hat jemand schonmal einen Stream programmiert, der sich automatisch bei z.B. 2 GB teilt und dann eine neue Datei anlegt? Der Stream sollte sich aber so verhalten, als wären es nicht einzelne Dateien, sondern eine Datei (Size, Position, etc sollte auch gehen). |
Re: Stream automatisch teilen
du meinst einen Filestream? programmiert habe ich das noch nicht, stelle es mir allerdings nicht all zu schwer vor da TStream nicht all zu viel virtuelle Methoden beinhaltet.
|
Re: Stream automatisch teilen
Zitat:
Deswegen frag ich mal, ob jemand sowas schonmal gemacht hat. Ich würde halt für jeden "Chunk" des FileStreams, wieder nen eigenen FileStream machen. |
Re: Stream automatisch teilen
ich würde direkt von TStream eine neue Klasse ableiten. Diese braucht beim erzeugen einen Base-Dateinamen. Fest reinknoten solltest du wie groß eine Datei maximal sein darf. Und dann kommt der Moment wo du entscheiden musst ob du erst beim lesen/schreiben die Dateien öffnest und schließt, ob du sie die ganze Zeit alle offen hältst oder ob du sie die ganze zeit offen hältst aber erst öffnest wenn ein Zugriff auf eine Datei statt findet.
Der rest spielt sich dann eigentlich nur noch in der read und write methode ab. Und du musst dir überlegen wie du die Dateigröße ausliest. Entweder legst du diese irgendwo in der ersten Datei ab, vielleicht in einer Konfigurationsdatei oder du schaust wieviel Dateistücken existieren und schaust dann wie groß das letzte ist. Ich persönliche würde eine extra config datei nehmen. Damit hättest du die Möglichkeit unter anderem zu vermerken welche Teilstücken erstellt wurden. Beispielsituation: - maximale Größe pro Stück 10 MB - Nutzer schreibt etwas zwischen das erste MB und das zweite MB - Nutzer schreibt etwas zwischen das 98te und das 100te MB Mit ordentlicher Organisation erstellst du nur Datei0 für das erste Teilstück und Datei9 für das andere Teilstück. Dadurch sparst du platz auf der Platte weil die 8 stücken mit undefiniertem Inhalt nicht erstellt werden müssen. |
Re: Stream automatisch teilen
Also in der Art hatte ich das schonmal angefangen, aber irgendwie hab ich damals angefangen, ohne mir den Stream genau anzuschauen, und deswegen hatte ich Probleme mit Position und Size, und hatte es genau anders herum programmiert.
Ich glaub ich fange einfach nochmal von vorne an. Wo ich Probleme mit hatte war unter anderem, dass man die einzelne Dateigröße ändern konnte, da man es einmal mit 10MB blöcken und beim nächsten mal mit 100mb blöcken machen konnte. Über eine Configdatei hätte ich das prob nicht. Darüber hatte ich noch gar nicht nachgedacht. Ich mach erstmal und melde mich dann bei Problemen ... Danke erstmal Oliver |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz