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

Delphi 如何样保存输入的信息

2012-02-10 
Delphi 怎么样保存输入的信息我想用D写一个程序,这个程序不涉及数据库我想实现:给一个窗口输入一些信息,然

Delphi 怎么样保存输入的信息
我想用D写一个程序,这个程序不涉及数据库
   
我想实现:给一个窗口输入一些信息,然后关掉程序,再次打开时,刚才输入的信息还在。怎么样实现?
  谢谢各位大虾帮忙(最好有个简单的例子)
-------------------
我的想法是:先把一个可执行文件和一个文本文件(.txt)用流的方法组合在一起。这样执行可执行文件来对文本文件读写,
文本文件专门有来保存输入的信息。
高手们,谢谢了。。。。



[解决办法]
用ini配置文件来存呀


uses inifiles;

constructor Create(const FileName: string);
function SectionExists(const Section: string): Boolean;
function ReadString(const Section, Ident, Default: string): string; virtual; abstract;
procedure WriteString(const Section, Ident, Value: String); virtual; abstract;
function ReadInteger(const Section, Ident: string; Default: Longint): Longint; virtual;
procedure WriteInteger(const Section, Ident: string; Value: Longint); virtual;
function ReadBool(const Section, Ident: string; Default: Boolean): Boolean; virtual;
procedure WriteBool(const Section, Ident: string; Value: Boolean); virtual;
function ReadBinaryStream(const Section, Name: string; Value: TStream): Integer; virtual;
function ReadDate(const Section, Name: string; Default: TDateTime): TDateTime; virtual;
function ReadDateTime(const Section, Name: string; Default: TDateTime): TDateTime; virtual;
function ReadFloat(const Section, Name: string; Default: Double): Double; virtual;
function ReadTime(const Section, Name: string; Default: TDateTime): TDateTime; virtual;
procedure WriteBinaryStream(const Section, Name: string; Value: TStream); virtual;
procedure WriteDate(const Section, Name: string; Value: TDateTime); virtual;
procedure WriteDateTime(const Section, Name: string; Value: TDateTime); virtual;
procedure WriteFloat(const Section, Name: string; Value: Double); virtual;
procedure WriteTime(const Section, Name: string; Value: TDateTime); virtual;
procedure ReadSection(const Section: string; Strings: TStrings); virtual; abstract;
procedure ReadSections(Strings: TStrings); virtual; abstract;
procedure ReadSectionValues(const Section: string; Strings: TStrings); virtual; abstract;
procedure EraseSection(const Section: string); virtual; abstract;
procedure DeleteKey(const Section, Ident: String); virtual; abstract;
procedure UpdateFile; virtual; abstract;
function ValueExists(const Section, Ident: string): Boolean;
property FileName: string read FFileName;
[解决办法]
使用流的方式保存
procedure TForm1.btn2Click(Sender: TObject);
var
i:Integer;
begin
with TFileStream.Create('c:\derek.dat',fmcreate or fmOpenWrite) do
begin
try
for i:=0 to Screen.FormCount-1 do
begin
if Screen.Forms[i]<>Self then
WriteComponent(Screen.Forms[i]);
end;
finally
Free;
end;
end;
end;

procedure TForm1.btn3Click(Sender: TObject);
begin

with TFileStream.Create('c:\derek.dat',fmOpenread) do
begin
try
while Position<Size do
begin
Form2:=TForm2.CreateNew(nil);
Form2.ParentWindow:=HWND_DESKTOP;
ReadComponent(Form2);
end;
finally
Free;
end;
end;
end;
[解决办法]
procedure TForm1.FormCreate(Sender: TObject);
var AppIni: TIniFile;
begin


try
 AppIni := TIniFile.Create(ExtractFilePath(application.ExeName)+'\ID.ini');
id:=appini.ReadString('id','user','');
password:=appini.ReadString('id','password','');

finally
AppIni.Free;
end;

end;
------解决方案--------------------


这个问题太简单了,几乎不编程就可以搞定,举例方法一:
在窗体里放一个Memo1控件.uses SysUtils;
在窗体启动时写代码:
procedure TForm1.FormCreate(Sender: TObject);
begin
if FileExists(ExtractFilePath(Application.ExeName)+'login.ini') then
memo1.Lines.LoadFromFile(ExtractFilePath(Application.ExeName)+'你的文件名.txt');
end;

//关闭时写代码
procedure TFrmOrderform.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
memo1.Lines.SaveToFile(ExtractFilePath(Application.ExeName)+'你的文件名.txt'');
end;


热点排行