關(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;
在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;