首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

有什么方法,可以在关闭程序后,但程序中的一个值能保留解决方法

2012-02-04 
有什么方法,可以在关闭程序后,但程序中的一个值能保留有什么方法,或什么类型的值,可以在关闭程序后,但程序

有什么方法,可以在关闭程序后,但程序中的一个值能保留
有什么方法,或什么类型的值,可以在关闭程序后,但程序中的一个值能保留,在下次再运行该程序时,还可以读取这个值.
例如:
{$J+}
  const
          firstpart:       string       =     '123 ';
  {$J-}
再进行操作后,firstpart变成了 '562 '.然后关闭程序,在我下一次读取,firstpart时,能读到562.要求不能用数据库保存该值.

[解决办法]
可以保存到注册表中

function Registry_ReadString(iHKey: HKEY; sPath, sName, sDefault: String): String;
//功能描述: 获取一个字串的值
//入口参数:
// 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);

[解决办法]
读写INI
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;

热点排行