Delphi-PRAXiS
Seite 1 von 7  1 23     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)

MiniMax 26. Sep 2010 12:13

Datei an Datei anhängen
 
Hallo Zusammen,
ich habe da nen Problem (mal wieder):

Ich bekomme beim Speichern ein Text File und ein JPG Bild.

Ich möchte nun das JPG Bild an die Text datei an hängen, sodass ich nur noch eine Datei habe.
Allerdings muss ich mit meinem Programm später diese Kombi Datei laden können und Die Text datei anzeigen lassen lassen (in ner Memo) und das JPG Bild in nem Image.

Nun meine Frage(n):
Geht dass überhaupt?
Wenn ja könnte jemand mir sagen (aufzeigen) wie das geht (code snippet):thumb:

Hoffe auf Antworten

mkinzler 26. Sep 2010 12:16

AW: Datei an Datei anhängen
 
Ich würde die beiden Dateien dann eher in ein Archiv oder anderen Container packen

zeras 26. Sep 2010 12:17

AW: Datei an Datei anhängen
 
Du kannst vorher einen Header integrieren, wo drin steht, ab welchem Index die Textdatei und ab welchem Index dann das Bild. Das müßte über Streams zu machen sein. Ein Beispiel habe ich aber im Moment nicht.

SirThornberry 26. Sep 2010 12:18

AW: Datei an Datei anhängen
 
das geht. Eine Datei kann beliebige Daten enthalten und du musst dir lediglich Gedanken darüber machen wie du die Daten darin ablegst.
Eine einfache Variante vor den Daten immer zu hinterlegen wie groß diese sind. Damit kannst du beliebig viele Datenblöcke (in deinem Fall verschiedene Dateien) in eine Datei stopfen und es auch wieder auseinander nehmen.
Üblicherweise schreibt man an den Anfang der Datei eine eindeutige Kennung um beim öffnen festzustellen ob es auch wirklich der richtige Dateityp ist (damit man die folgenden Daten nicht falsch interpretiert).

MiniMax 26. Sep 2010 12:25

AW: Datei an Datei anhängen
 
mhmm :?:

Wie bekomme ich den ein jpg in eine Stringlist? Und Später wieder zurück in eine JPG?
Eine Textdatei dürfte ja kein Prob sein. ??

SirThornberry 26. Sep 2010 12:26

AW: Datei an Datei anhängen
 
Warum in eine Stringlist? Ich denke es geht um eine Datei.
Du kannst sowohl eine Stringlist in einen Stream (TFileStream) als auch ein JPG in einen Stream speichern.

rollstuhlfahrer 26. Sep 2010 12:29

AW: Datei an Datei anhängen
 
ganz einfach: Du nimmst keine Stringliste, sondern Streams. Zuerst öffnest du den einen Stream und schreibst die Länge des Inhaltes vom Memo rein. Dann ein Trennungszeichen (du willst ja später wissen, wie lang und nicht den Text). Dann kannst du den kompletten Text per .SaveToStream() aus dem Memo holen. Danach schreibst du das JPEG mittels .SaveToStream() in den gleichen Stream. Fertig.

Bernhard

SirThornberry 26. Sep 2010 12:31

AW: Datei an Datei anhängen
 
Ein Trennzeichen ist nicht notwendig da die Länge zum Beispiel als Cardinal gespeichert werden kann. Und dieser hat immer die gleiche Größe (SizeOf).

rollstuhlfahrer 26. Sep 2010 12:36

AW: Datei an Datei anhängen
 
man sieht wohl, dass ich meine Zahlen gerne als Text schreibe (also wie auf der Tastatur). Dann braucht man das Trennzeichen. Nimmt man Zahlen als Datentyp dann nicht, richtig.

Bernhard

MiniMax 26. Sep 2010 12:42

AW: Datei an Datei anhängen
 
Mom,
ich komme da nicht mit:
also deklariere ich erstmal nen stream?
Dann SChreibe ich meine Memo werte da rein?
Dann nen Trennzeichen ?
und dann das Bild?

also so?

Delphi-Quellcode:
procedure Button1.click (sender: TObject);
var
MyStream: Stream;
Imagejpg: JPEG;
Trennzeichen: String;
begin
Memovirtual.savetostream(Mystream);
Trennzeichen:= '<begin JPG>';
Trennzeichen.savetostream(Mystream);
Imagejpg:= Loadfromfile('./Bild.jpg');
Imagejpg.savetoStream(MyStream);

Mystream.savetofile(Meinmixstream.abc);
end;
Ist dass so richtig?


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:02 Uhr.
Seite 1 von 7  1 23     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