AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Binäre Datei in Array of Byte laden
Thema durchsuchen
Ansicht
Themen-Optionen

Binäre Datei in Array of Byte laden

Ein Thema von SyntaxXx · begonnen am 17. Feb 2013 · letzter Beitrag vom 18. Feb 2013
Antwort Antwort
SyntaxXx

Registriert seit: 14. Dez 2008
328 Beiträge
 
Delphi XE4 Architect
 
#1

Binäre Datei in Array of Byte laden

  Alt 17. Feb 2013, 16:13
Guten Tag zusammen,
ich versuche gerade eine binäre Datei in ein Array of Byte zu speichern.

Doch leider weiß ich nicht, wie ich anfangen soll.
Die Dateien die gelesen werden sollen sind max. 10MB groß.

Im Array soll die Datei also Byte für Byte eingelesen werden.

Könnt ihr mir sagen, wie ich das anstellen soll?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.546 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Binäre Datei in Array of Byte laden

  Alt 17. Feb 2013, 16:19
Du kannst z.B. einen Stream nehmen oder die Datei mit Delphi-Referenz durchsuchenBlockRead einlesen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.757 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Binäre Datei in Array of Byte laden

  Alt 17. Feb 2013, 16:48
.. mit einer Instanz von TFileStream die Datei öffnen.
Mit fileStream.size die Größe der Datei ermitteln.
Mit setLength(DeinArray, Dateigröße) das Array auf die entsprechende Größe ändern.
Mit fileSize.readBuffer(DeinArray,ArrayGröße) die Datei in das Array einlesen.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
SyntaxXx

Registriert seit: 14. Dez 2008
328 Beiträge
 
Delphi XE4 Architect
 
#4

AW: Binäre Datei in Array of Byte laden

  Alt 17. Feb 2013, 18:13
Das habe ich jetzt mal gemacht.
So sieht das jetzt bei mir aus:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var bArray: Array of byte;
    FileStream: TFileStream;
    myfile : file;
    i, filesizevalue: integer;
    fname: string;
begin

  FileStream := TFileStream.Create(Edit1.Text, fmOpenRead);
  setLength(bArray, FileStream.Size);
  FileStream.ReadBuffer(bArray, FileStream.Size);
  FileStream.Free;
end;
Aber wenn ich das starte, bekomme ich einen Fehler:
Erste Gelegenheit für Exception bei $00406637. Exception-Klasse $C0000005 mit Meldung 'access violation at 0x00406637: write of address 0x00190000'. Prozess Projekt1.exe (5236)


Das hier wird dann im System-Tab Rrt makiert:
FISTP QWORD PTR [EDX+ECX]
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.757 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Binäre Datei in Array of Byte laden

  Alt 17. Feb 2013, 18:37
.. versuche es mal so:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var bArray: Array of byte;
    FileStream: TFileStream;
    myfile : file;
    i, filesizevalue: integer;
    fname: string;
begin
  try
    try
      FileStream := TFileStream.Create(Edit1.Text, fmOpenRead);
    except
      on E:Exception do
        showMessage(E.Message);
    end;
    setLength(bArray, FileStream.Size);
    FileStream.seek(0,soFromBeginning);
    FileStream.ReadBuffer(bArray, FileStream.Size);
  finally
    FileStream.Free;
  end;
end;
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
SyntaxXx

Registriert seit: 14. Dez 2008
328 Beiträge
 
Delphi XE4 Architect
 
#6

AW: Binäre Datei in Array of Byte laden

  Alt 17. Feb 2013, 18:46
Habe ich jetzt kopiert, aber immernoch das Gleiche.

Gibt es eine Möglichkeit mit TEncoding.XXX.GetBytes() eine binäre Datei einzulesen?

Geändert von SyntaxXx (17. Feb 2013 um 18:52 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 05:15 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