AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Einlesen von Binärdateien

Ein Thema von RuX · begonnen am 19. Sep 2006 · letzter Beitrag vom 19. Sep 2006
Antwort Antwort
Seite 1 von 2  1 2      
RuX

Registriert seit: 21. Jul 2004
Ort: Nürnberg
115 Beiträge
 
Delphi 7 Architect
 
#1

Einlesen von Binärdateien

  Alt 19. Sep 2006, 12:23
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.
Delphi3/Delphi5/Delphi7/Delphi8 User
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Einlesen von Binärdateien

  Alt 19. Sep 2006, 12:32
Du kannst eine Binärdatei nicht in einen String einlesen, weil er den Inhalt als Steuerzeichen interpretieren würde. Was hast du vor?
Markus Kinzler
  Mit Zitat antworten Zitat
RuX

Registriert seit: 21. Jul 2004
Ort: Nürnberg
115 Beiträge
 
Delphi 7 Architect
 
#3

Re: Einlesen von Binärdateien

  Alt 19. Sep 2006, 12:48
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.
Delphi3/Delphi5/Delphi7/Delphi8 User
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Einlesen von Binärdateien

  Alt 19. Sep 2006, 12:53
Speichere sei in einen Buffer.
Markus Kinzler
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#5

Re: Einlesen von Binärdateien

  Alt 19. Sep 2006, 13:29
array of Byte. So isses nämlich auch auf der Platte...

mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
KrasserChecker

Registriert seit: 21. Jul 2004
120 Beiträge
 
#6

Re: Einlesen von Binärdateien

  Alt 19. Sep 2006, 13:47
Schau dir mal "TMemoryStream" an. Das dürfte genau das sein, was Du suchst.
  Mit Zitat antworten Zitat
orest

Registriert seit: 19. Feb 2004
7 Beiträge
 
#7

Re: Einlesen von Binärdateien

  Alt 19. Sep 2006, 14:14
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ß.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Einlesen von Binärdateien

  Alt 19. Sep 2006, 14:17
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.
Markus Kinzler
  Mit Zitat antworten Zitat
orest

Registriert seit: 19. Feb 2004
7 Beiträge
 
#9

Re: Einlesen von Binärdateien

  Alt 19. Sep 2006, 14:25
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....
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Einlesen von Binärdateien

  Alt 19. Sep 2006, 14:28
Dann versuch mal eine Binärdatei hier einzulesen.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 19:13 Uhr.
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