我创建了一个具有登录系统的程序,用户输入信息后,程序将检查连接到其数据库的结果是否匹配,然后登录用户。我想为每次用户登录创建一个日志文件。该日志文件的名称应包含用户的用户名和用户登录的日期和时间。我正在使用以下代码来检查用户凭据并将其详细信息写入日志文件。另外,我希望文件名中的日期是像2013年1月23日这样的格式。所以相关的代码应该在“with dmPredictGame do…”之前。
现在我的问题是:如何在程序所在的当前目录之外的一个不同目录中创建文本文件?我有一个名为“Logs”的文件夹,它位于程序本身所在的相同文件夹中。当日志文件被创建时,我希望将其保存到该文件夹中。
有什么建议吗?
sDate := DateToStr(Date());
sTime := TimeToStr(Time());
iYear := StrToInt(Copy(sDate,1,4));
iDay := StrToInt(Copy(sDate,9,2));
K := StrToInt(Copy(sDate,6,2));
Case K of
1 : sMonth := 'January';
2 : sMonth := 'February';
3 : sMonth := 'March';
4 : sMonth := 'April';
5 : sMonth := 'May';
6 : sMonth := 'June';
7 : sMonth := 'July'; //Check for the current month
8 : sMonth := 'August';
9 : sMonth := 'September';
10 : sMonth := 'Oktober';
11 : sMonth := 'November';
12 : sMonth := 'December';
end;
sTime1 := copy(sTime,1,2);
sTime2 := copy(sTime,4,2);
sLoginTime := sTime1 + ';' + sTime2; //Use ; because windows does not allow : in file names
sLoginDate := IntToStr(iDay) + ' ' + sMonth + ' ' + IntToStr(iYear);
with dmPredictGame do
begin
if tblUserInfo.Locate('Username', edtUsername.Text, []) AND ((edtPassword.Text) = tblUserInfo['Password']) then //Check if the username and password is correct.
begin
MessageDlg('Login was successful! Welcome back ' + edtUsername.Text, mtInformation, [mbOK],0);
edtUsername.Text := tblUserInfo['Username'];
begin
sUsername := edtUsername.Text;
sPassword := tblUserInfo['Password'];
sName := tblUserInfo['Name'];
sSurname := tblUserInfo['Surname'];
assignFile(UserLogFile, 'Log ' + sUsername + ' (' + sLoginDate + ') ' + sLoginTime + '.txt');
Rewrite(UserLogFile);
writeln(UserLogFile, 'Username: ' + sUsername);
writeln(UserLogFile, 'Password: ' + sPassword);
writeln(UserLogFile, 'Name: ' + sName);
writeln(UserLogFile, 'Surname: ' + sSurname);
writeln(UserLogFile, 'Date Logged In: ' + sDate);
writeln(UserLogFile, 'Time Logged In: ' + sTime);
closeFile(UserLogFile);
end;
现在我的问题是:如何在程序所在的当前目录之外的一个不同目录中创建文本文件?我有一个名为“Logs”的文件夹,它位于程序本身所在的相同文件夹中。当日志文件被创建时,我希望将其保存到该文件夹中。
有什么建议吗?