Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Datei binär abspeichern (https://www.delphipraxis.net/165518-datei-binaer-abspeichern.html)

ffas1994 3. Jan 2012 19:05

Datei binär abspeichern
 
Hey,
weis nicht ob das hier wirklich reingehört, aber da das mein erster Beitrag ist verzeiht es mir. Also ich habe folgendes Problem:
Ich wollte mir mal eben schnell ein DES Verschlüsselungsprogramm basteln, womit ich jede beliebige Datei verschlüsseln kann. Hab mir also erstmal den Algorithmus angeschaut und dann versucht eine beliebige Datei in binärer Form (also nur 0 und 1) anzuzeigen. Habe das ganze mit Filestream gelöst und die übergebenen Bytes dann ins Dualsystem übersetzt und in ein Memo geschrieben. Zum Speichern schreibe ich den Memotext dann wieder in ein ByteArray und lass es über Filestream in eine neue Datei speichern.
Das klappt auch wunderbar. Wenn ich also eine txt Datei einlese und wieder speichere, zeigt mir die Kopie beim Öffnen exakt das selbe wie das Original. Mache ich das selbe jetzt aber mit einer doc, bmp oder wav Datei und speichere die dann eben mit der entsprechenden Endung, sagt mir mein PC beim Öffnen nur das er das nicht lesen kann.:x
Woran liegt das? Ich dachte da ich die Datei ja binär auslese und exakt so wieder speichere müsste das funktionieren!?

Klaus01 3. Jan 2012 19:15

AW: Datei binär abspeichern
 
Hallo

die Zeichen char(0) und char(1)kann ein Texteditor nicht anzeigen.
Du könntest Dir die Datei mit einem HexEditor/HexViewer (HxD z.B.) anschauen.

Dateien werden immer binär abgespeichert.

Grüße
Klaus

ffas1994 3. Jan 2012 19:24

AW: Datei binär abspeichern
 
Mhh.. ich weiß nicht was ich mit deiner Antwort anfangen soll.:-D
Filestream schreibt beim Einlesen die OrdinalWerte von z.B. meiner txt Datei in ein ByteArray. Die wandle ich dann ins Dualsystem um und schreibe sie in mein Memo. Und beim abspeichern läuft das alles rückwärts ab, weshalb letztendlich in meiner abgespeicherten Datei wieder exakt das selbe stehen müsste (und zwar in binärer Form).Das trifft zumindest bei txt Dateien auch zu. Nur eben Dateien mit anderer Endung lassen sich nach dem Abspeichern nicht wiedergeben. (Hoffe es ist klar was meine Frage ist)

ffas1994 3. Jan 2012 20:46

AW: Datei binär abspeichern
 
:oops::oops::oops::oops::oops:
Oh Gott... Habe gerade festgestellt, dass meine Prozedur, die die Datei ausliest jedes 25. Byte abgeschnitten hat.
Jetzt funzts.:oops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:37 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