Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TFileStream: Binäre datei lesen und hex als string anzeigen (https://www.delphipraxis.net/35934-tfilestream-binaere-datei-lesen-und-hex-als-string-anzeigen.html)

Pseudemys Nelsoni 13. Dez 2004 22:03


TFileStream: Binäre datei lesen und hex als string anzeigen
 
hi,

kann mir einer sagen was an folgendem falsch ist? (ja ich weiss das es schwachsinnig aussieht *g*...):

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  fs: TFileStream;
  e, b: char;
begin
  fs := TFileStream.Create('C:\datei', fmOpenRead);
  try
    while fs.Position <= fs.Size-1 do
    begin
      fs.Read(b, 1);
      BinToHex(pchar(b), pchar(e), sizeof(b));
      memo1.Text := memo1.Text + e;
    end;
  finally
    fs.Free;
  end;
end;
ich bekomme immer eine access violation.

ich möchte die datei in einem memo anzeigen (bzw die hexwerte)... also sowas wie FF...usw

Luckie 13. Dez 2004 22:08

Re: TFileStream: Binäre datei lesen und hex als string anzei
 
Na meine Seite ( http://www.luckie-online.de/Delphi/S...HexLoader.html ) noch nicht in den Favoriten drinne? :zwinker:

Pseudemys Nelsoni 13. Dez 2004 22:10

Re: TFileStream: Binäre datei lesen und hex als string anzei
 
danke luckie, der code sieht perfekt aus :)

seite hatte ich in den favoriten, aber habe bis jetzt immer nur auf die api tuts geachtet ;)

Luckie 13. Dez 2004 22:13

Re: TFileStream: Binäre datei lesen und hex als string anzei
 
Na dann merk dir mal, dass es da noch andere nette Dinge gibt. ;)

Pseudemys Nelsoni 13. Dez 2004 22:15

Re: TFileStream: Binäre datei lesen und hex als string anzei
 
Werd ich machen =)

Robert_G 13. Dez 2004 22:31

Re: TFileStream: Binäre datei lesen und hex als string anzei
 
Zitat:

Zitat von Pseudemys Nelsoni
Werd ich machen =)

Dann werfe am besten gleich mal einen Blick auf Luckies Artikel zum Thema CodeDesign. :mrgreen:

jim_raynor 13. Dez 2004 22:39

Re: TFileStream: Binäre datei lesen und hex als string anzei
 
Folgendes ist sehr Performance lastig:

Delphi-Quellcode:
 while fs.Position <= fs.Size-1 do
    begin
      fs.Read(b, 1);
Bei fs.Size wird jedes mal an das Ende der Datei gesprungen und anschliessend an die aktulle Stelle zurück. Die Funktion Read gibt die Anzahl der gelesenen Bytes zurück. Das ganz du ausnutzen:

Delphi-Quellcode:
 while (fs.Read(b, 1)<>0) do
    begin
Deine Access-Violation liegt daran, dass du einen Char nicht so in einen PChar konvertieren kannst.

Am besten du nutzt ganz einfach StrToHex:

Delphi-Quellcode:
e:=StrToHex(Integer(b),2)
dann muss aber e als String definiert werden.


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