有什么方法,或什么类型的值,可以在关闭程序后,但程序中的一个值能保留,在下次再运行该程序时,还可以读取这个值.
例如:
{$J+}
const
firstpart: string = '123';
{$J-}
再进行操作后,firstpart变成了'562'.然后关闭程序,在我下一次读取,firstpart时,能读到562.要求不能用数据库保存该值.
例如:
{$J+}
const
firstpart: string = '123';
{$J-}
再进行操作后,firstpart变成了'562'.然后关闭程序,在我下一次读取,firstpart时,能读到562.要求不能用数据库保存该值.
//功能描述: 获取一个字串的值
//入口参数:
// iHKey - 主键名
// sPath - 路径名
// sName - 字串名
// sDefault - 默认值(当找不到这个字串时返回)
//出口参数:
// 返回值 - 获取的字串的内容
var
Reg : TRegistry;
sResult : String;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := iHKey;
if Reg.OpenKey(sPath, False) then
begin
if Reg.ValueExists(sName) then
sResult := Reg.ReadString(sName)
else
sResult := sDefault;
Reg.CloseKey;
end
else
sResult := sDefault;
finally
Reg.free;
end;
Result := sResult;
end;function Registry_SaveString(iHKey: HKEY; sPath, sName, sValue: String): Boolean;
//功能描述: 保存一个字串的值
//入口参数:
// HKey - 主键名
// sPath - 路径名
// sName - 字串名
// sValue - 要保存的字串的内容
//出口参数:
// 返回值 - True表示成功, False表示失败
var
Reg : TRegistry;
begin
Result := False;
Reg := TRegistry.Create;
try
Reg.RootKey := iHKey;
if Reg.OpenKey(sPath, True) then
begin
Reg.WriteString(sName, sValue);
Reg.CloseKey;
Result := True;
end;
finally
Reg.Free;
end;
end;在程序启动时, 调用:
firstpart := Registry_ReadString(HKEY_CURRENT_USER, 'Software\MyCompany\MyProgram', 'firstpart', '123');在程序退出时, 调用:
Registry_SaveString(HKEY_CURRENT_USER, 'Software\MyCompany\MyProgram', 'firstpart', firstpart);
uses inifiles;var
myinifile:TInifile;procedure TForm1.FormCreate(Sender: TObject);
var
filename:string;
begin
filename:=ExtractFilePath(paramstr(0))+'myini.ini';
myinifile:=TInifile.Create(filename);
showmessage(myinifile.readstring('程序参数','firstpart','缺省的firstpart'));
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
myinifile.writestring('程序参数','firstpart',firstpart的值(通过你的程序获取的));
myinifile.Destroy;
end;
释放 b.exe //这是你的主程序
举起 b.exe
a.exe退出
。。b.exe 结束时 写数据 到a.exe