Ошибка с записью в типизированный файл - Free Pascal
Формулировка задачи:
В строчках под номером 21, 25, 29 при кампиляции кода, выдает ошибку о несовместимости типов. Если, окажется, что ошибку не исправить, то будьте добры, подскажите, как с консоли записать что-либо в типизированный файл.
Program PhoneBook;
Uses
Crt;
Const
FName='PhoneBook.txt';
Type
TPhoneBook=Record
Name:String;
SurName:String;
Number:LongInt;
end;
Var
Rab:TPhoneBook;
F:File of TPhoneBook ;
Ch:Char;
Procedure InPut;
begin
Write('Vvedite Imja: ');
ReadLn(Rab.Name);
Write(F,Rab.Name);
{____________________________}
Write('Vvedite Familiju: ');
ReadLn(Rab.SurName);
Write(F,Rab.SurName);
{____________________________}
Write('Vvedite Nomer: ');
ReadLn(Rab.Number);
Write(F,Rab.Number);
end;
Procedure OutPut;
var
UName,SUName:String;
begin
Write('Vvedite Imja: ');
ReadLn(UName);
{_________________________}
Write('Vvedite Familiju: ');
ReadLn(SUName);
While Not EoF(F) do
begin
Read(F,Rab);
If (Rab.Name=Uname) and (Rab.SurName=SUName) then
WriteLn(Rab.Number);
end;
end;
Begin
ClrScr;
Assign(F,FName);
Reset(F);
WriteLn('Jeta programa PhoneBook.');
WriteLn('Vvoditj nomer i imja: Press "D"');
WriteLn('Prosmotr nomera po imeni: Press "V"');
WriteLn('Vixod iz programmi: Press "Q"');
ReadLn(Ch);
While (Ch<>'Q') do
begin
If Ch='D' then
InPut// Procedurka, vvoda imeni i nomera telefona
Else
OutPut;// Procedurka, vivoda nomera po imeni
WriteLn('4to delajem dal6e["D"=vvod,"V"=vivod,"Q"=vixod]:');
ReadLn(Ch);
end;
WriteLn('Vsego dobrogo!');
Close(F);
ReadKey;
End.Решение задачи: «Ошибка с записью в типизированный файл»
textual
Листинг программы
ReadLn(Rab.Name); ReadLn(Rab.SurName); ReadLn(Rab.Number); Write(F,Rab);
Объяснение кода листинга программы
- Программа запрашивает и сохраняет в переменных имя, фамилию и номер пациента.
- Затем программа пытается записать данные о пациенте в типизированный файл с именем
Rab. - Если файл не существует, программа создает его.
- Если файл существует, программа открывает его для записи.
- Затем программа записывает данные о пациенте в файл.
- После успешной записи программа закрывает файл.
- Если возникла ошибка при записи в файл, программа выводит сообщение об ошибке и прекращает выполнение.