Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Einlesen von Binärdateien (https://www.delphipraxis.net/77416-einlesen-von-binaerdateien.html)

RuX 19. Sep 2006 11:23


Einlesen von Binärdateien
 
Hallo,

wie kann ich binärdateien (z.b exes, bilder, < 1MB) komplett in einen string einlesen?
ich habe probiert mit tfilestream oder assignfile/read/etc eine datei einzulesen, aber er bricht vor dateiende ab weil er wohl irgendwo ein eof# findet.
ich bräuchte es im string prinzipiell genauso wie wenn man eine binäre datei z.b mit notepad öffnet.

mkinzler 19. Sep 2006 11:32

Re: Einlesen von Binärdateien
 
Du kannst eine Binärdatei nicht in einen String einlesen, weil er den Inhalt als Steuerzeichen interpretieren würde. Was hast du vor?

RuX 19. Sep 2006 11:48

Re: Einlesen von Binärdateien
 
ich brauch eine funktion die mir eine beliebige binär datei zurückgibt, dachte string is da am einfachsten aber wenn das nicht geht ok :(
als was sollte man den binärdateien einlesen? gibs den kein binär-datentyp für dateien? "blob" oder so ähnlich, ich kenne keinen.

mkinzler 19. Sep 2006 11:53

Re: Einlesen von Binärdateien
 
Speichere sei in einen Buffer.

r2c2 19. Sep 2006 12:29

Re: Einlesen von Binärdateien
 
array of Byte. So isses nämlich auch auf der Platte...

mfg

Christian

KrasserChecker 19. Sep 2006 12:47

Re: Einlesen von Binärdateien
 
Schau dir mal "TMemoryStream" an. Das dürfte genau das sein, was Du suchst.

orest 19. Sep 2006 13:14

Re: Einlesen von Binärdateien
 
Zitat:

Zitat von mkinzler
Du kannst eine Binärdatei nicht in einen String einlesen, weil er den Inhalt als Steuerzeichen interpretieren würde. Was hast du vor?

Hmm, ich denke da irrst Du dich. In Pascal-Strings kann man sehr wohl Binärdaten einlesen.
Pascal-Strings haben ja eine Längenangabe vorangestellt und sind -im Gegensatz zu C-Strings (PChar)- nicht nullterminiert.

Gruß.

mkinzler 19. Sep 2006 13:17

Re: Einlesen von Binärdateien
 
Zitat:

Hmm, ich denke da irrst Du dich. In Pascal-Strings kann man sehr wohl Binärdaten einlesen.
Pascal-Strings haben ja eine Längenangabe vorangestellt und sind -im Gegensatz zu C-Strings (PChar)- nicht nullterminiert.

Gruß.
Delphi verwendet aber nicht unbedingt den klassischen Pascal-String ( ShortString) sondern je nach Einstellung/Länge der Zeichenkette AnsiString (0-terminiert). Eine Binärdatei wird er aber kaum in einen ShortString (max 255 Zeicehn) bringen.

orest 19. Sep 2006 13:25

Re: Einlesen von Binärdateien
 
Zitat:

Zitat von mkinzler
Zitat:

Hmm, ich denke da irrst Du dich. In Pascal-Strings kann man sehr wohl Binärdaten einlesen.
Pascal-Strings haben ja eine Längenangabe vorangestellt und sind -im Gegensatz zu C-Strings (PChar)- nicht nullterminiert.

Gruß.
Delphi verwendet aber nicht unbedingt den klassischen Pascal-String ( ShortString) sondern je nach Einstellung/Länge der Zeichenkette AnsiString (0-terminiert). Eine Binärdatei wird er aber kaum in einen ShortString (max 255 Zeicehn) bringen.

AnsiStrings sind ebenfalls nicht 0-terminiert. Sie haben genauso eine Längenangabe wie ShortStrings.

Auszug aus der Delphi-Hilfe:
... Die acht Byte vor der Stelle enthalten eine Längenangabe und einen Referenzzähler von je 32 Bit. Da dieser Speicherplatz auf dem Heap reserviert und vollkommen automatisch verwaltet wird, erfordert er keinerlei Benutzercode....

mkinzler 19. Sep 2006 13:28

Re: Einlesen von Binärdateien
 
Dann versuch mal eine Binärdatei hier einzulesen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:40 Uhr.
Seite 1 von 2  1 2      

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