AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Datei in array of Byte öffnen und Speichern
Thema durchsuchen
Ansicht
Themen-Optionen

Datei in array of Byte öffnen und Speichern

Ein Thema von bixi400 · begonnen am 20. Jun 2004 · letzter Beitrag vom 20. Jun 2004
Antwort Antwort
Benutzerbild von bixi400
bixi400

Registriert seit: 19. Mai 2003
179 Beiträge
 
Turbo Delphi für Win32
 
#1

Datei in array of Byte öffnen und Speichern

  Alt 20. Jun 2004, 10:06
hi!

Wie kann ich eine Datei in einem "array of Byte" öffnen
und nach dem Bearbeiten wieder Speichern?
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Datei in array of Byte öffnen und Speichern

  Alt 20. Jun 2004, 10:38
Ich würde sie mit einem TFileStream in das array einlesen.

ungetestet:

Delphi-Quellcode:
...

var
  Form1: TForm1;
  MyDat: array of Byte;

...

// einlesen
procedure TForm1.btnlesenClick(Sender: TObject);
var
  fs: TFileStream;
  i: integer;
begin
  fs := TFileStream.Create('C:\test.dat', fmOpenRead);
  SetLength(MyDat, fs.Size);
  for i := 0 to fs.Size-1 do
    fs.Read(MyDat[i], SizeOf(byte));
  fs.free;
end;


// speichern
procedure TForm1.btnlesenClick(Sender: TObject);
var
  fs: TFileStream;
  i: integer;
begin
  fs := TFileStream.Create('C:\test.dat', fmCreate);
  for i := 0 to High(MyDat) do
    fs.Write(MyDat[i], SizeOf(byte));
  fs.free;
end;
[edit]fs.free vergessen[/edit]
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Benutzerbild von bixi400
bixi400

Registriert seit: 19. Mai 2003
179 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Datei in array of Byte öffnen und Speichern

  Alt 20. Jun 2004, 10:44
Danke Funktioniert!!!
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Datei in array of Byte öffnen und Speichern

  Alt 20. Jun 2004, 11:41
Achtung: Es funktioniert aber nur mit kleinen Dateien
Wenn Du eine z.B. 100 MB Datei öffnest wird die komplett in der Arbeitsspeicher geladen.
Wenn es darum geht auf die einzelnen Bytes zuzugreifen ist 1. ziemlich langsam und 2. Arbeitsspeicherverschwenderei erster Extraklasse. Das Array wird dann ebenfalls 100 MB groß sein.

Wenn Du auf die einzelnen Bytes zugreifen möchtest bis Du mit Seek besser bedient.
Verwende lieber folgende Methoden

Delphi-Quellcode:
function ReadByteFromStream(aStream: TStream; aIndex: Int64): Byte;
begin
  aStream.Seek(aIndex,soFromBeginning);
  aStream.Read(Result,SizeOf(Byte));
end;

procedure WriteByteToStream(aStream: TStream; aIndex: Int64; aByte : Byte);
begin
  aStream.Seek(aIndex,soFromBeginning);
  aStream.Write(aByte,SizeOf(Byte));
end;
aIndex entspricht dann dem ArrayIndex.
I come from outer space to save the human race
  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 21:35 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