我創建了一個程序,其中包含用戶輸入他的信息的登錄系統,程序檢查程序連接到的數據庫以查看結果是否匹配,然後將用戶記入日誌。我想爲每次用戶登錄時創建一個日誌文件。日誌文件的名稱應該包含用戶的用戶名以及用戶登錄的日期和時間。我使用以下代碼檢查用戶的憑據並寫入他的細節到一個日誌文件。此外,我想在文件名中的日期是像2013 1月23日。所以爲的編碼是之前的「與dmPredictGame做......」如何將文本文件保存到特定文件夾
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;
現在我的問題:我怎樣才能創建文本文件與程序所在的當前目錄不同的目錄中?我在與程序本身相同的文件夾中有一個名爲「日誌」的文件夾。我希望日誌在創建時保存到該文件夾中。
有什麼建議嗎?
@JerryDodge,** **相對路徑。順便說一下,如果CWD設置正確,相對也會起作用。 –
我建議你重新考慮將日誌寫入應用程序文件夾的子目錄。這是可能導致程序不必要求提升權限的事情之一。建議的替代方法是使用Shell API獲取適當的「用戶文檔」或「應用程序數據」文件夾。 –
@克雷格也許這是一個便攜式應用程序,意味着駐留在記憶棒上,這需要它的設置 –