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>
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>
Comment