Announcement

Collapse
No announcement yet.

Registry Daten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Registry Daten

    Hallo,

    ich hatte vor ein paar Tagen schon einmal gesagt, daß ich eine kürzere Funktion<br>
    geschrieben hätte, um Binärdaten aus der Registry in einen String umzuwandeln.<br>
    Ich habe sie hier mal aufgeschrieben und wollte wissen, was der Vorteil der längeren<br>
    Funktion ist.<br>

    function BinaryToStr(Binary: Array of DWORD; Laenge: Integer): String;<br>
    var<br>
    i: Integer;<br>
    begin<br>
    Result := '';<br>
    for i := 0 to Laenge - 1 do begin<br>
    Result := Result + IntToHex((LoByte(LoWord(Binary[i]))), 2);<br>
    Result := Result + IntToHex((HiByte(LoWord(Binary[i]))), 2);<br>
    Result := Result + IntToHex((LoByte(HiWord(Binary[i]))), 2);<br>
    Result := Result + IntToHex((HiByte(HiWord(Binary[i]))), 2);<br>
    end;<br>
    // String abschneiden, damit keine unnsinnigen Zeichen am Ende stehen<br>
    Delete(Result, ((Laenge * 2) + 1), Length(Result));<br>
    end;<br>
    <br>
    procedure TForm1.Button1Click(Sender: TObject);<br>
    var<br>
    Laenge: Integer;<br>
    buf: Array [0..255] of DWORD;<br>
    begin<br>
    Reg := TRegistry.Create;<br>
    with Reg do begin<br>
    RootKey := HKEY_CURRENT_USER;<br>
    OpenKey('Test', True);<br>
    Laenge := ReadBinaryData('Test', buf, SizeOf(buf));<br>
    end;<br>
    Label1.Caption := BinaryToStr(buf, Laenge);<br>
    end;<br>
    <br>
    Lars<br>

  • #2
    Hallo,

    der Output meiner (längeren) Implementierung ist in meinem Buch <i>Delphi Win32-Lösungen</i> auf der Seite 227 zu sehen. Die binären Daten werden nicht nur einfach in einen String umgewandelt, sondern formatiert wie bei einem Binär-Editor in Spalten ausgerichtet angezeigt. Das könnte zum Beispiel so aussehen:
    <pre>
    0: 55 65 72 74 20 31 61 00 57 65 72 74 20 32 61 00 Wert 1a.Wert 2a.
    10: 57 65 72 74 20 33 61 00 00 00 00 00 00 00 00 00 Wert 3.a
    20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    usw.
    </pre>
    Links steht der Adress-Offset, in der Mitte die binären Datenwerte und ganz rechts am Rand die sich daraus ergebende Textdarstellung. Jedes nicht darstellbare Zeichen wird dabei durch einen Punkt ersetzt

    Comment


    • #3
      Danke für die Antwort!

      Lar

      Comment

      Working...
      X