我一直在做作业,我必须模拟一个实际的预订系统。
用户可以创建一个事件,该事件实际上只是命名一个他们以后可以写入的文本文件。
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;
所以现在我已经创建了一个文件,其中包含了他们应该能够用这个写入的事件的名称
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;
最初我只是在用户编写事件名称后才会写入文件的输入框,但是在重新阅读作业大纲之后我意识到我必须使用记录,所以现在我正在尝试使用它们但是我我不确定我哪里出错了。如果你打开文本文件中没有任何内容,那么实际上没有错误弹出它,空。
答案 0 :(得分:5)
如果我们看看你的第二个街区。有几个问题:
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;
没有考虑到的一件事是任何现有数据。它将从文件的开头开始编写,因此您应该调查Seek
。