我一直在做作业,我必须模拟一个实际的预订系统.
用户可以创建一个事件,该事件实际上只是命名一个他们可以在以后写入的文本文件.
procedure TForm4.Button1Click(Sender: TObject);
var
f: textfile;
usersFilename: string;
begin
usersFilename := Inputbox('Enter the name of the Event', '', '');
AssignFile(f, usersFilename);
ReWrite(f, usersFilename);
WriteLn(f, usersFilename);
CloseFile(f);
Reset(f);
end;
Run Code Online (Sandbox Code Playgroud)
所以现在我已经创建了一个文件,其中包含了他们应该能够写入的事件的名称
procedure TForm4.Button2Click(Sender: TObject);
var
Customer: TCustomer;
f: textfile;
usersFilename: string;
begin
usersFilename := Inputbox('Event Name', '', '');
AssignFile(f, usersFilename);
with Customer do
begin
FirstName := 'John';
LastName := 'Smith';
EventDate := 'Grimworth';
SeatNumber := '1';
PhoneNumber := '1';
Adress := '7 Park Drive';
end;
end;
Run Code Online (Sandbox Code Playgroud)
最初我只是在用户写了事件名后才会写入文件的输入框,但是在重新阅读作业大纲之后我意识到我必须使用记录,所以现在我正在尝试使用它们但我不是确定我哪里出错了.如果您打开文本文件,其中没有任何内容空,则实际上没有错误弹出它.
如果我们看看你的第二个街区.有几个问题:
File of TCustomer而不是一个TextFile.记录文件是特定类型的文件.Write(f, ....)Reset(f)打开文件进行读写或ReWrite(f)创建文件(如果已经存在,也会将其清空).总而言之,您的代码块应该如下所示:
procedure TForm4.Button2Click(Sender: TObject);
var
Customer: TCustomer;
f: File of TCustomer;
usersFilename: string;
begin
usersFilename := Inputbox('Event Name', '', '');
AssignFile(f, usersFilename);
// Open if it exists or create the file
if FileExists(usersFilename) then
Reset(f)
else
ReWrite(f);
// Set up our data for writing. This information could
// be retrieved from text boxes, etc.
with Customer do
begin
FirstName := 'John';
LastName := 'Smith';
EventDate := 'Grimworth';
SeatNumber := '1';
PhoneNumber := '1';
Adress := '7 Park Drive';
end;
// Write the data to the file
Write(f, Customer);
CloseFile(f);
end;
Run Code Online (Sandbox Code Playgroud)
没有考虑到的一件事是任何现有数据.它将从文件的开头开始编写,因此您应该对此Seek进行调查.