AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Datei an Datei anhängen

Ein Thema von MiniMax · begonnen am 26. Sep 2010 · letzter Beitrag vom 27. Sep 2010
Antwort Antwort
Seite 1 von 2  1 2   
MiniMax

Registriert seit: 15. Dez 2009
Ort: Bremen
193 Beiträge
 
Delphi 2009 Architect
 
#1

AW: Datei an Datei anhängen

  Alt 26. Sep 2010, 13:02
Woher weiß den der Code, wie lang der Text ist und das jpg? Der kennt doch nur die gesamt länge?
Gruß
MiniMax
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#2

AW: Datei an Datei anhängen

  Alt 26. Sep 2010, 13:03
Siehe Edit obendrüber: Es werden die einzelnen Längen in die Datei geschrieben und wieder ausgelesen.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

AW: Datei an Datei anhängen

  Alt 26. Sep 2010, 13:06
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
MiniMax

Registriert seit: 15. Dez 2009
Ort: Bremen
193 Beiträge
 
Delphi 2009 Architect
 
#4

AW: Datei an Datei anhängen

  Alt 26. Sep 2010, 13:13
ah jetzt hab ich es Verstnanden! Werde es eben Ausprobieren
Gruß
MiniMax
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#5

AW: Datei an Datei anhängen

  Alt 26. Sep 2010, 13:34
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
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler

Geändert von xZise (26. Sep 2010 um 14:06 Uhr) Grund: *OOPs Reihenfolge vertauscht;
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.880 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Datei an Datei anhängen

  Alt 26. Sep 2010, 13:36
Wenn man die Länge aber kennt, könnte man, wenn man die 2. Datei Einlesen will, direkt den Datensatzzeiger richtig positionieren.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#7

AW: Datei an Datei anhängen

  Alt 26. Sep 2010, 13:38
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
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Datei an Datei anhängen

  Alt 26. Sep 2010, 13:40
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
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#9

AW: Datei an Datei anhängen

  Alt 26. Sep 2010, 14:05
[...]Und es gibt viele die nicht das Rad neu erfinden: jars, Open Document, Open Office XML Dokumente verwenden alle *.zip zum komprimieren.[...]
Selbst MS nutzt das ZIP-Format für die neuen Office-Dokumente
Argh ein Verdreher, aber Office Open XML ist das neue Format von Office (docx etc.).

Und wegen der Länge: Wenn die JPG im Stream drin ist, dann ist sie ja fertig kodiert etc. das heißt man kennt schon deren Größe. Ein anderer Weg wäre die Länge hinten zu speichern. Bei Schreiben wird dann direkt hintereinander weg geschrieben, und beim lesen wird die letzte Größe gelesen, soweit nach vorne gesprungen und dann eingelesen werden:
Code:
i := Lese letzten Cardinal
Mache solange
  Springe i Bytes - Cardinalbreite * 2 zurück
  j := Lese Cardinal (= Länge von den Daten davor)
  Lese i Bytes
  Springe (i + j) Bytes - Cardinalbreite * 2 zurück
  i := j;
bis Position <= 0
Der aktuelle Weg wäre auch mit einem Pufferstream möglich. Darein kopiert man den Inhalt nimmt die Länge, schreibt sie, und kopiert dann den Inhalt des Pufferstreams in den echten Dateistream.

[redbox]Statt Image1.SaveToStram mach mal lieber Image1.Picture.SaveToStream. Das TImage zeigt nur ein TPicture an, das heißt speichern kann nur das Bild selber (und nicht der "Anzeiger").[/redbox]

[redbox #2]TImage selber geht nicht zu speichern, nur das Bild, was es geladen hat.[/redbox #2]

MfG
Fabian
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

AW: Datei an Datei anhängen

  Alt 26. Sep 2010, 13:44
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 02:02 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-2025 by Thomas Breitkreuz