’D2 07 0C 00 00 00 0D 00’代表的意思是;
07D2----2003年
000C----12月
000D----13日
我想在程序中得到这个日期,该怎幺做呢?
谢谢~

解决方案 »

  1.   

    var
      buffer:array [0..5] of byte;
      bufinteger:integer;
    begin
      Registry:=TRegistry.Create;  Registry.RootKey:=HKEY_LOCAL_MACHINE;
      if Registry.OpenKey('MYKEY',False) then
        Registry.ReadBinaryData('MyValue',Buffer,BufSize): Integer;  Registry.Free;
    end;
      

  2.   

    var
      buffer:array [0..5] of byte;
      bufinteger:integer;
    begin
      Registry:=TRegistry.Create;  Registry.RootKey:=HKEY_LOCAL_MACHINE;
      if Registry.OpenKey('MYKEY',False) then
        Registry.ReadBinaryData('MyValue',Buffer,BufSize);  Registry.Free;
    end;
      

  3.   

    Var Reg : TRegistry; 
        list : TStrings; 
        i    : Integer; 
    Begin 
     Reg:=TRegistry.Create; 
     Reg.RootKey:='HKEY_LOCAL_MACHINE'; 
     If Reg.OpenKey('\Software\Microsoft\CurrentVersion\Run', false) then 
      Begin 
       List:=TStringList.Create; 
       Reg.GetValueNames(List); 
       For i:=0 to list.Count-1 do 
        If Reg.ValueExists(List[i]) then 
         Begin 
          Case Reg.GetDataType(List[i]) of 
           rdInteger: Reg.ReadInteger(List[i]); 
           rdBinary: Reg.ReadBinaryData(List[i]); 
          else  
            Reg.ReadString(List[i]); 
          End;   
         End; 
      End; 
    End;
      

  4.   

    07D2----2003年   {好象是2002吧}
    000C----12月
    000D----13日这个字符串是一个16进制数,你可以把这个字符串每两位截开来,如:
    var
      DateStr : String;
      tmpStr,DayStr,MonthStr,YearStr:String;
      Strlen : Integer;
      
    begin
      DateStr := ’D2 07 0C 00 00 00 0D 00’;
      StrLen := Length(DateStr);
      tmpStr := Copy(DateStr,Strlen-2,2);
      DayStr := Copy(DateStr,Strlen-5,Strlen-3) + tmpStr;{字符串的位置可能有错,你自己再调整一下}
      
      {...写一个十六进制字符串转换成整数的函数,这个楼主自己考虑一下吧}
    end;