AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Maske zum bearbeiten von Binärwerten
Thema durchsuchen
Ansicht
Themen-Optionen

Maske zum bearbeiten von Binärwerten

Ein Thema von Aurelius · begonnen am 12. Aug 2008 · letzter Beitrag vom 12. Aug 2008
Antwort Antwort
Benutzerbild von Aurelius
Aurelius

Registriert seit: 29. Jan 2007
Ort: Erfurt
753 Beiträge
 
Delphi 7 Personal
 
#1

Maske zum bearbeiten von Binärwerten

  Alt 12. Aug 2008, 11:34
Hi DPler

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
Miniaturansicht angehängter Grafiken
bild_200.jpg  
Jonas
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Maske zum bearbeiten von Binärwerten

  Alt 12. Aug 2008, 11:42
Schau mal hier: http://atorg.net.ru/delphi/atbinhex.htm
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
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#3

Byte zu Binärstring wandeln

  Alt 12. Aug 2008, 17:23
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.
Power is nothing without TControl
  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 16:45 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