AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Stream automatisch teilen

Ein Thema von backdraft · begonnen am 7. Mär 2008 · letzter Beitrag vom 12. Mär 2008
Antwort Antwort
backdraft

Registriert seit: 19. Apr 2005
Ort: Hückeswagen
335 Beiträge
 
Delphi 11 Alexandria
 
#1

Stream automatisch teilen

  Alt 7. Mär 2008, 23:57
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).
Oliver
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Stream automatisch teilen

  Alt 8. Mär 2008, 01:01
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
backdraft

Registriert seit: 19. Apr 2005
Ort: Hückeswagen
335 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Stream automatisch teilen

  Alt 12. Mär 2008, 15:31
Zitat von SirThornberry:
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.
Naja, dass denke ich auch, aber in 2 Stunden hab ich sowas nicht fertig ... So ganz ohne ist das nicht!
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.
Oliver
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Stream automatisch teilen

  Alt 12. Mär 2008, 16:25
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
backdraft

Registriert seit: 19. Apr 2005
Ort: Hückeswagen
335 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Stream automatisch teilen

  Alt 12. Mär 2008, 17:35
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
Oliver
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:14 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