Работа с файлами - Free Pascal (186)

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

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

Есть один созданный файл с именами клиентов. Необходимо создать второй файл с 3-мя записями, при этом, чтобы в записи "Номер клиента" было число, соответствующее порядковому номеру имени клиента из 1-го файла, т.е. предусматривалась проверка, что такой клиент вообще существует в файле 1. Как это организовать?

Решение задачи: «Работа с файлами»

textual
Листинг программы
  1. type
  2.   TNameStr = String[31];
  3.   TDate = String[8];
  4.   TClient = record
  5.     Name: TNameStr;
  6.     {...}
  7.   end;
  8.   TPurchess = record
  9.     Date: TDate;
  10.     Value: Real;
  11.     Client: Integer;
  12.   end;
  13. var
  14.   fc: file of TClient;
  15.   fp: file of TPurchess;
  16.   Clients: array [1..10] of TClient;
  17.   ClientCnt: Integer;
  18.   p: TPurchess;
  19. begin
  20.   Assign(fc,'file1.bin'); Reset(fc);
  21.   while not EoF(fc) and (ClientCnt<High(Clients)) do begin
  22.     Inc(ClientCnt); Read(fc,Clients[ClientCnt]);
  23.   end;
  24.   Close(fc); {$I-}
  25.   Assign(fp,'file2.bin'); Reset(fp);
  26.   if IOResult<>0 then Rewrite(fp);
  27.   Seek(fp,FileSize(fp));
  28.   with p do
  29.     repeat
  30.       Write('Дата: '); ReadLn(Date);
  31.       if Date='' then Break;
  32.       Write('Сумма: '); ReadLn(Value);
  33.       repeat
  34.         Write('Номер клиента: '); ReadLn(Client);
  35.         if (Client>=Low(Clients)) and (Client<=ClientCnt) then begin
  36.           WriteLn('Клиент: ',Clients[Client].Name);
  37.           Break;
  38.         end else WriteLn('*** Ошибочный номер клиента');
  39.       until False;
  40.       if not (Date='') then Write(fp,p);
  41.     until Date='';
  42.   Close(fp);
  43. end.

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

  1. Объявление типов данных: TNameStr (строка 31 символа), TDate (строка 8 символов), TClient (запись с полями Name типа TNameStr), TPurchess (запись с полями Date типа TDate, Value типа Real и Client типа Integer)
  2. Создание файлов fc и fp для работы с данными типов TClient и TPurchess соответственно
  3. Объявление массива Clients типа TClient на 10 элементов и переменной ClientCnt типа Integer
  4. Чтение данных из файла fc в массив Clients до тех пор, пока не закончится файл или не заполнится 10 элементов массива Clients
  5. Закрытие файла fc
  6. Открытие файла fp для записи
  7. Если файл fp не может быть открыт, то его создание и перезапись
  8. Перемещение позиции чтения файла fp в конец файла
  9. Ввод данных о дате, сумме и номере клиента с помощью функций ReadLn
  10. Проверка корректности номера клиента путем сравнения со значениями Low и ClientCnt
  11. Запись данных в файл fp
  12. Закрытие файла fp

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


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

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

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

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

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

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