Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#7
  Alt 10. Jun 2002, 16:50
Moin Chewie,

da hast Du aber Glück, dass ich gerade an einem Reg Editor arbeite

Code:
function RegDataToString(const p_dwRegDataType : DWord;const p_pValueData : Pointer;const p_dwDataLen : DWord) : string;

var
  pRegBinary : PByte;
  pRegDWord : PDWord;
  pRegString : PChar;
  pRegQWord : PInt64;
  i         : DWord;

begin
  Result := '';
  case p_dwRegDataType of
    REG_BINARY,
    REG_MULTI_SZ,
    REG_NONE,
    REG_LINK,
    REG_RESOURCE_LIST,
    REG_FULL_RESOURCE_DESCRIPTOR,
    REG_RESOURCE_REQUIREMENTS_LIST :
      begin
        pRegBinary := p_pValueData;
        for i := 1 to p_dwDataLen do
        begin
          Result := Result + IntToHex(pRegBinary^,2)+#32;
          inc(pRegBinary);
        end;
        Result := trim(Result);
      end;
    REG_DWORD :
      begin
        pRegDWord := p_pValueData;
        Result   := IntToHex(pRegDWord^,8) + ' ('+IntToStr(pRegDWord^)+'/'+IntToStr(integer(pRegDWord^))+')';
      end;
    REG_DWORD_BIG_ENDIAN :
      begin
        pRegBinary := p_pValueData;
        for i := 1 to 4 do
        begin
          Result := Result + IntToHex(pRegBinary^,2);
          inc(pRegBinary);
        end;
      end;
    REG_EXPAND_SZ,
    REG_SZ :
      begin
        pRegString := p_pValueData;
        Result    := pRegString;
      end;
    REG_QWORD :
      begin
        pRegQWord := p_pValueData;
        Result   := IntToHex(pRegQWord^,16) + ' ('+IntToStr(pRegQWord^)+')';
      end;
  end;
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat