Ошибка с записью в типизированный файл - Free Pascal

Узнай цену своей работы

Формулировка задачи:

В строчках под номером 21, 25, 29 при кампиляции кода, выдает ошибку о несовместимости типов. Если, окажется, что ошибку не исправить, то будьте добры, подскажите, как с консоли записать что-либо в типизированный файл.
Листинг программы
  1. Program PhoneBook;
  2. Uses
  3. Crt;
  4. Const
  5. FName='PhoneBook.txt';
  6. Type
  7. TPhoneBook=Record
  8. Name:String;
  9. SurName:String;
  10. Number:LongInt;
  11. end;
  12. Var
  13. Rab:TPhoneBook;
  14. F:File of TPhoneBook ;
  15. Ch:Char;
  16. Procedure InPut;
  17. begin
  18. Write('Vvedite Imja: ');
  19. ReadLn(Rab.Name);
  20. Write(F,Rab.Name);
  21. {____________________________}
  22. Write('Vvedite Familiju: ');
  23. ReadLn(Rab.SurName);
  24. Write(F,Rab.SurName);
  25. {____________________________}
  26. Write('Vvedite Nomer: ');
  27. ReadLn(Rab.Number);
  28. Write(F,Rab.Number);
  29. end;
  30. Procedure OutPut;
  31. var
  32. UName,SUName:String;
  33. begin
  34. Write('Vvedite Imja: ');
  35. ReadLn(UName);
  36. {_________________________}
  37. Write('Vvedite Familiju: ');
  38. ReadLn(SUName);
  39. While Not EoF(F) do
  40. begin
  41. Read(F,Rab);
  42. If (Rab.Name=Uname) and (Rab.SurName=SUName) then
  43. WriteLn(Rab.Number);
  44. end;
  45. end;
  46. Begin
  47. ClrScr;
  48. Assign(F,FName);
  49. Reset(F);
  50. WriteLn('Jeta programa PhoneBook.');
  51. WriteLn('Vvoditj nomer i imja: Press "D"');
  52. WriteLn('Prosmotr nomera po imeni: Press "V"');
  53. WriteLn('Vixod iz programmi: Press "Q"');
  54. ReadLn(Ch);
  55. While (Ch<>'Q') do
  56. begin
  57. If Ch='D' then
  58. InPut// Procedurka, vvoda imeni i nomera telefona
  59. Else
  60. OutPut;// Procedurka, vivoda nomera po imeni
  61. WriteLn('4to delajem dal6e["D"=vvod,"V"=vivod,"Q"=vixod]:');
  62. ReadLn(Ch);
  63. end;
  64. WriteLn('Vsego dobrogo!');
  65. Close(F);
  66. ReadKey;
  67. End.

Решение задачи: «Ошибка с записью в типизированный файл»

textual
Листинг программы
  1. ReadLn(Rab.Name);
  2. ReadLn(Rab.SurName);
  3. ReadLn(Rab.Number);
  4. Write(F,Rab);

Объяснение кода листинга программы

  1. Программа запрашивает и сохраняет в переменных имя, фамилию и номер пациента.
  2. Затем программа пытается записать данные о пациенте в типизированный файл с именем Rab.
  3. Если файл не существует, программа создает его.
  4. Если файл существует, программа открывает его для записи.
  5. Затем программа записывает данные о пациенте в файл.
  6. После успешной записи программа закрывает файл.
  7. Если возникла ошибка при записи в файл, программа выводит сообщение об ошибке и прекращает выполнение.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.364 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут