当两个记录都存在时,函数将IsValid返回为false [英] function returns IsValid as false when both records exist
本文介绍了当两个记录都存在时,函数将IsValid返回为false的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
以下代码的目的是查找并打开贷款记录和会员记录。由于我正在创建一个用户没有带条形码卡的图书馆系统,他们必须记住唯一ID,所以我认为如果他们只需要记住一个唯一身份证的号码就会更容易相关记录。但是,下面的代码有一个错误,即当两个记录都存在时,函数将IsValid返回为false。帮助?
The aim of the code below is to find and open a loan record and a member record. Since I'm creating a library system where the user does not have a card with a barcode, they have to remember the Unique ID so i thought it would be easier if they only have to remember one number that is the Unique ID to all their relevant records. However the code below has an error in that the function returns IsValid as false when both records exist. Help?
procedure RecordCheck(var MemberID: integer);
var
IsValid: boolean;
{ Procedure to check that Records exist }
function ValidateID(Member_ID: integer): boolean;
var
Error: boolean; { True/False- false until there is an error }
Count: integer; { For each letter and number }
begin
Error := false;
AssignFile(MemberDetailsFile, 'MemberDetails.dat');
Reset(MemberDetailsFile);
while not eof(MemberDetailsFile) do
begin
read(MemberDetailsFile, MemberRecords);
if Member_ID = MemberRecords.UniqueId then
begin
{ if match/record found }
Error := false;
end
else
Error := true
end;
begin
AssignFile(LoanFile, 'LoanFile.dat');
Reset(LoanFile);
while not eof(LoanFile) do
begin
read(LoanFile, LoanRecords);
if not Member_ID = LoanRecords.LoanUniqueId then
begin
Error := true
end
else
result := not Error;
end; { of Check }
end;
end;
begin
IsValid := ValidateID(MemberID);
if IsValid = false then
if MessageDlg('The Member ID or loan record does not exist! Try again?',
mtConfirmation, [mbYes, mbNo], 0) <> mrYes then
begin
{ if user chooses not to try again }
frmLoanProductsIDConfirm.Close;
frmIssue.Show;
exit;
end
else
begin
{ if user chooses to try again }
frmLoanProductsIDConfirm.Show;
frmIssue.Hide;
end;
if IsValid = true then
frmIssueProd.Show;
frmIssue.Close;
frmLoanProductsIDConfirm.Close;
end;
推荐答案
嗯,这可能会有所帮助您是否曾将错误
分配给false以外的其他内容
...
这些都是你引用变量的时间:
Well, it would probably help is you ever assignedError
to something other thanfalse
...
These are every time you reference the variable:
Error: boolean; { True/False- false until there is an error }
Error := false;
Error := false;
Error := false
result := not Error;
因此结果将始终为真。
这篇关于当两个记录都存在时,函数将IsValid返回为false的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文