Delphi-PRAXiS
Seite 3 von 7     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Datei an Datei anhängen (https://www.delphipraxis.net/154806-datei-datei-anhaengen.html)

rollstuhlfahrer 26. Sep 2010 13:03

AW: Datei an Datei anhängen
 
Siehe Edit obendrüber: Es werden die einzelnen Längen in die Datei geschrieben und wieder ausgelesen.

Bernhard

SirThornberry 26. Sep 2010 13:06

AW: Datei an Datei anhängen
 
Such in dem Quelltext mal nach lDataSize. Das ist die Variable welche die Länge der Daten enthält und in die Datei geschrieben wird und umgekehrt.

Das Prinzip beim Speichern ist folgendes:
- Platz lassen für Größe der folgenden daten
- Daten schreiben
- Schauen wie groß die geschriebenen Daten waren
- Größe der geschriebenen Daten am Anfang platzieren wo wir Platz dafür gelassen haben.

MiniMax 26. Sep 2010 13:13

AW: Datei an Datei anhängen
 
ah jetzt hab ich es Verstnanden! Werde es eben Ausprobieren

xZise 26. Sep 2010 13:34

AW: Datei an Datei anhängen
 
Moin,
das Trennzeichen hat aber den Vorteil, dass die Länge nicht begrenzt ist. Außerdem braucht man mit 4 Byte am Anfang, wenn gar kein Text drin steht, sondern nur 1 oder 2 (je nach Kodierung).

Und es gibt viele die nicht das Rad neu erfinden: jars, Open Document, Office Open XML Dokumente verwenden alle *.zip zum komprimieren.

MfG
Fabian

mkinzler 26. Sep 2010 13:36

AW: Datei an Datei anhängen
 
Wenn man die Länge aber kennt, könnte man, wenn man die 2. Datei Einlesen will, direkt den Datensatzzeiger richtig positionieren.

rollstuhlfahrer 26. Sep 2010 13:38

AW: Datei an Datei anhängen
 
Also bitte: 4 GB Text und 4 GB als JPEG sind auch in fernerer Zukunft so schnell noch nicht erreicht. Selbst wenn: Dann ändert man Cardinal auf Int64 und hat die Probleme bis in alle Ewigkeit verschoben.

Bernhard

Sir Rufo 26. Sep 2010 13:40

AW: Datei an Datei anhängen
 
Zitat:

Zitat von xZise (Beitrag 1052084)
Moin,
das Trennzeichen hat aber den Vorteil, dass die Länge nicht begrenzt ist. Außerdem braucht man mit 4 Byte am Anfang, wenn gar kein Text drin steht, sondern nur 1 oder 2 (je nach Kodierung).

Und es gibt viele die nicht das Rad neu erfinden: jars, Open Document, Open Office XML Dokumente verwenden alle *.zip zum komprimieren.

MfG
Fabian

Selbst MS nutzt das ZIP-Format für die neuen Office-Dokumente

Luckie 26. Sep 2010 13:44

AW: Datei an Datei anhängen
 
Zitat:

Zitat von xZise (Beitrag 1052084)
Moin,
das Trennzeichen hat aber den Vorteil, dass die Länge nicht begrenzt ist.

Und den Nachteil, dass man es beim Einlesen suchen muss. Will ich nur das JPEG haben, kann ich direkt an den Anfang des JEPGS springen und es auslesen. Ich denke die Vorteile überwiegen hier die Nachteile.

Aber warum das nachträgliche schreiben der Textlänge? Die kann ich doch schon vorher ermitteln und gleich schreiben.

SirThornberry 26. Sep 2010 13:46

AW: Datei an Datei anhängen
 
Das nachträgliche Schreiben weil ich es allgemein halten wollte. Beim JPEG weiß ich erst nach dem schreiben wie groß es ist. Natürlich könnte man es in einem Memorystream zwischen speichern aber das kann man sich eben sparen in dem man nachträglich die Länge schreibt.
Und beim ermitteln der Textlänge ist es ja eigentlich auch nicht anders. Wenn man da Length(Memo.lines.text) abruft wird auch erstnochmal der Text abgerufen nur um die Länge zu ermitteln. Und das spart man sich damit ebenfalls.

Luckie 26. Sep 2010 13:48

AW: Datei an Datei anhängen
 
Wenn es wirklich nur eine Text und ein JPEG hat, braucht er die Größe des JPEGs nicht zum Auslesen. Einfach ans Ende des Textes springen, wir wissen ja wie lang er ist, und dann bis zum Dateiende lesen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:34 Uhr.
Seite 3 von 7     123 45     Letzte »    

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