關(guān)于讀寫注冊(cè)表二進(jìn)制數(shù)據(jù)的問題

字號(hào):

關(guān)于讀寫注冊(cè)表二進(jìn)制數(shù)據(jù)的問題
    在Delphi的幫助文件中得到了關(guān)于注冊(cè)表二進(jìn)制數(shù)據(jù)的讀寫函數(shù)聲明,但是幫助文件中并沒有給出例子.現(xiàn)在我給出例程.
    1.讀取二進(jìn)制數(shù)據(jù)
    function ReadBinaryData(const Name: String; var Buffer; BufSize: Integer): Integer;
    從當(dāng)前鍵值返回一個(gè)二進(jìn)制數(shù)據(jù).如果成功則返回所需數(shù)據(jù),所需數(shù)據(jù)保存在buffer中,而返回的integer值表示返回?cái)?shù)據(jù)的大小(byte).
    2.存儲(chǔ)二進(jìn)制數(shù)據(jù)
    procedure WriteBinaryData(const Name: String; var Buffer; BufSize: Integer);
    存儲(chǔ)一個(gè)二進(jìn)制數(shù)據(jù)到指定的鍵值.
    例程:
    procedure TForm1.Button1Click(Sender: TObject);
    var
    reg:TRegistry; {聲明Regstry對(duì)象}
    typ:TRegDataType; {注冊(cè)表數(shù)據(jù)類型.常用的有字符串類型(rdString)、數(shù)值類型(rdInteger)、二進(jìn)制類型(rdBinary)}
    str:string; {用于顯示操作信息}
    i:integer; {注冊(cè)表的數(shù)據(jù)大小,以字節(jié)為單位}
    vv:integer; {注冊(cè)表的數(shù)據(jù)內(nèi)容}
    begin
    reg:=TRegistry.Create; {創(chuàng)建注冊(cè)表對(duì)象}
    reg.RootKey :=HKEY_LOCAL_MACHINE; {設(shè)置根鍵}
    reg.OpenKey (\'MYSOFT\',TRUE); {打開主鍵}
    typ:=reg.GetDataType(\'ccc\'); {得到所需數(shù)據(jù)的類型}
    i:=reg.GetDataSize(\'ccc\'); {得到所需數(shù)據(jù)的大小}
    case typ of {根據(jù)數(shù)據(jù)類型顯示提示信息}
    rdstring:
    str:=\'This is String Type\';
    rdInteger:
    str:=\'This is Integer Type\';
    rdBinary:
    str:=\'This is Binary Type\';
    else
    str:=\'This is Unknown Type\';
    end;
    memo1.Lines.Add(str);
    memo1.lines.Add(inttostr(i)); {提示信息結(jié)束}
    reg.ReadBinaryData(\'ccc\',vv,i); {讀取數(shù)據(jù)的內(nèi)容,函數(shù)返回?cái)?shù)據(jù)內(nèi)容的大小[本例中未寫出返回值]}
    memo1.Lines.add(inttostr(vv));
    vv:=1; {設(shè)定數(shù)據(jù)內(nèi)容vv=1}
    reg.WriteBinaryData(\'ccc\',vv,i); {把數(shù)據(jù)內(nèi)容寫入注冊(cè)表中}
    reg.CloseKey; {關(guān)閉主鍵}
    reg.Free;