Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi openDialog für Hexeditor (https://www.delphipraxis.net/40224-opendialog-fuer-hexeditor.html)

Jab 12. Feb 2005 17:06


openDialog für Hexeditor
 
Ich habe folgenden Code aus Luckie's Hexloader.
Ich würde da gerne Irgendwo einen opendialog (VCL) einbauen, anstelle des

Delphi-Quellcode:
 fs := TFileStream.Create('G:\MP3s\Beatles\Beatles -  Blue Jay Way.mp3',
    fmOpenRead);


Hier die komplette Prozedur

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  fs: TFileStream;
  Buffer: TMyByteArray;
  BytesRead: Longint;
  s: string;
  i: Int64;
  HexLength: Integer;
begin
  i := 0;
  SetLength(Buffer, BUFFERSIZE);
  fs := TFileStream.Create('G:\MP3s\Beatles\Beatles -  Blue Jay Way.mp3',
    fmOpenRead);
  HexLength := Length(HEXPREFIX) + 2 + Length(HEXSUFFIX);
  SetLength(s, fs.size * HexLength);
  Progressbar1.Max := fs.Size div BUFFERSIZE;
  try
    repeat
      BytesRead := fs.Read(Buffer[0], BUFFERSIZE);
      Move(BuffToHex(Buffer)[1], s[i * (HexLength * BUFFERSIZE) + 1],
        HexLength * BytesRead);
      Inc(i);
      Progressbar1.StepIt;
      Application.ProcessMessages;
    until BytesRead < BUFFERSIZE;
    Memo1.Text := s;
  finally
    FreeAndNil(fs);
  end;
end;
Danke schonmal
Jab

Gentleman 12. Feb 2005 17:36

Re: openDialog für Hexeditor
 
wenn ich das richtig verstanden habe sollte es so funktionieren:

Delphi-Quellcode:
if OpenDialog1.Execute then
  fs:= TFileStream.Create(OpenDialog1.Filename,
    fmOpenRead);

Jab 13. Feb 2005 14:31

Re: openDialog für Hexeditor
 
Liste der Anhänge anzeigen (Anzahl: 1)
Danke, das hat funktioniert...

Weiß denn auch einer, wie ich es schaffe, ähnlich wie in einem Hexeditor, den hexadezimalen Block aus der Memo1 Komponente , gleichzeitig im Ansii Zeichensatz (oder wie das heißt) in einer Memo2 Komponente darstellen zu lassen??? (siehe Anhang)

Über Codesnippets würde ich mich freuen ;)

Jab

Fourcorner 13. Feb 2005 14:40

Re: openDialog für Hexeditor
 
Hallo,

Aus der Delphihilfe zu der Funktion Chr:

Zitat:

function Chr(X: Byte): Char;

Die Funktion gibt das Zeichen mit einem bestimmten ASCII-Wert zurück.

Chr gibt das Zeichen zurück, das dem im Byte-Wert X angegebenen Ordinalwert (ASCII-Wert) entspricht.

Kernel32.DLL 13. Feb 2005 15:08

Re: openDialog für Hexeditor
 
Wobei du aber darauf achten musst, dass das ASCII-Zeichen #13 einen Zeilenumbruch darstellt! D.H. wenn du zufällig als Byte den Wert 13 hast (Dezimal), wird in deinem Memo die Zeile umgebrochen.

(
Denke mal das war so richtig, ansonsten gilt das Zitat:

[equote="Flomei's Fahrlehrer soll mal gesagt haben:"]
Ich hab doch keine Ahnung von dem Sch**** hier...
[/equote]
)


mfg Daniel

Jab 13. Feb 2005 18:31

Re: openDialog für Hexeditor
 
??? :wiejetzt:

Auch wenn das jetzt n bisschen doof klingt, aber ich hab da mal garkeine Ahnung wie das gehen soll :roll: :oops: :pale: . Gibt's da nicht einfach n Befehl für? sowas wie Intohex() nur umgedreht?

Kernel32.DLL 13. Feb 2005 21:01

Re: openDialog für Hexeditor
 
Wozu brauchst du denn eine Funktion, die Hexadezimalzahlen in Integer umwandelt??

Pass auf:
Du liest das erste Byte ein, wandelst das in einen Hexadezimalwert um und schreibst ihn in das erste Memo. Dann nimmst du dir wieder das gerade gelesene Byte, wandelst das mit Chr(Byte) in ein ASCII - Zeichen um schreibst das ins zweite Memo.
Na ja, usw...

mfg
Daniel

Quake 14. Feb 2005 06:22

Re: openDialog für Hexeditor
 
Such dir doch einfach im i-Net eine neue Komponente, die dir dein Hex-Editor anzeigt.
Zum Beispiel hier.

Kernel32.DLL 14. Feb 2005 11:57

Re: openDialog für Hexeditor
 
man könnte sowas zur Abwechslung aber auch mal selbst machen :roll:
war eins der ersten Programme, was ich geschrieben habe, wenn auch ziemlich rudimentär ;)

Jab 14. Feb 2005 12:11

Re: openDialog für Hexeditor
 
@Kernel32.DLL
Ja genau sowas brauch ich, weiß aber nicht wie ich das programmieren soll...
Hast du dein Programm vielleicht zufällig noch ?
:roll: :roll: :) Wär echt super, da ich mit Delphi noch nicht so richtig durchblicke...


@Quake

Danke für den Link, hab mal ein paar runtergeladen, sehen aber alle ziemlich kompliziert aus.



Schon mal danke für alles...

Jab


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