Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Maske zum bearbeiten von Binärwerten (https://www.delphipraxis.net/118658-maske-zum-bearbeiten-von-binaerwerten.html)

Aurelius 12. Aug 2008 11:34


Maske zum bearbeiten von Binärwerten
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi DPler :hi:

Habt ihr eine Idee wie man eine Maske wie im Anhang zu finden für das Bearbeiten von Binärwerten der registry umsetzen bzw. wie man das Ganze sonst gestalten kann?

MFG
Jonas

DeddyH 12. Aug 2008 11:42

Re: Maske zum bearbeiten von Binärwerten
 
Schau mal hier: http://atorg.net.ru/delphi/atbinhex.htm

hboy 12. Aug 2008 17:23

Byte zu Binärstring wandeln
 
Also wenn es nur um die Ideen dazu geht, will ich hier mal ein paar Worte dazu verlieren:
Nett wäre eine weitere Spalte mit den Binärwerten ala

01001110 00000000 00000000 00000000 4E 00 00 00 N . . .

in der bei der Auswahl alle anderen zugehörigen Dastellungen markiert sind, etwa so

01001110 00000000 00000000 00000000 4E 00 00 00 N . . .

und natürlich für jede Darstellung die Editierbarkeit gegeben ist, vielleicht auch noch eine Dezimaldarstellung. Das ganze müsste man dann entweder komplett selbst zeichnen oder als richtext ausgeben. Das Umwandeln sollte kein Probelm darstellen, die Binärumwandlung kann man als mit inline deklarierte Assemblerroutine erledigen.

Hab dir mal die Wandelroutine gebastelt:

Delphi-Quellcode:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;


procedure ByteToBinary(stringstart: Pointer; const b: Byte); Register; // stringstart -> EAX, b -> EDX
label bit0_0 , bit1_0 , bit2_0 , bit3_0 , bit4_0 , bit5_0 , bit6_0 , bit7_0;
asm
        push EBX
        mov EBX, $30303030

        rcl DL, 1
        jnc bit7_0
        or EBX,$00000001
bit7_0: rcl DL, 1
        jnc bit6_0
        or EBX,$00000100
bit6_0: rcl DL, 1
        jnc bit5_0
        or EBX,$00010000
bit5_0: rcl DL, 1
        jnc bit4_0
        or EBX,$01000000
bit6_0:

        mov [EAX],EBX
        mov EBX, $30303030

        rcl DL, 1
        jnc bit3_0
        or EBX,$00000001
bit3_0: rcl DL, 1
        jnc bit2_0
        or EBX,$00000100
bit2_0: rcl DL, 1
        jnc bit1_0
        or EBX,$00010000
bit1_0: rcl DL, 1
        jnc bit0_0
        or EBX,$01000000
bit0_0:

        add EAX, 4
        mov [EAX],EBX

        pop EBX
end;


var outstr: string;
begin
  outstr :='######## ######## ######## ########  ';
  ByteToBinary(@outstr[1],$F0);
  ByteToBinary(@outstr[10],$0F);
  ByteToBinary(@outstr[19],$66);
  ByteToBinary(@outstr[28],$AA);
  outstr := outstr + IntToHex($F0,2) + ' '
                   + IntToHex($0F,2) + ' '
                   + IntToHex($66,2) + ' '
                   + IntToHex($AA,2) + ' ';
  outstr := outstr + ' '+' ' + Chr($F0)+' '+ Chr($0F)
                         +' ' + Chr($66)+' '+ Chr($AA);
  writeln(outstr);
  readln;
end.


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