Работа с файлами - Free Pascal (186)
Формулировка задачи:
Есть один созданный файл с именами клиентов. Необходимо создать второй файл с 3-мя записями, при этом, чтобы в записи "Номер клиента" было число, соответствующее порядковому номеру имени клиента из 1-го файла, т.е. предусматривалась проверка, что такой клиент вообще существует в файле 1. Как это организовать?
Решение задачи: «Работа с файлами»
textual
Листинг программы
type TNameStr = String[31]; TDate = String[8]; TClient = record Name: TNameStr; {...} end; TPurchess = record Date: TDate; Value: Real; Client: Integer; end; var fc: file of TClient; fp: file of TPurchess; Clients: array [1..10] of TClient; ClientCnt: Integer; p: TPurchess; begin Assign(fc,'file1.bin'); Reset(fc); while not EoF(fc) and (ClientCnt<High(Clients)) do begin Inc(ClientCnt); Read(fc,Clients[ClientCnt]); end; Close(fc); {$I-} Assign(fp,'file2.bin'); Reset(fp); if IOResult<>0 then Rewrite(fp); Seek(fp,FileSize(fp)); with p do repeat Write('Дата: '); ReadLn(Date); if Date='' then Break; Write('Сумма: '); ReadLn(Value); repeat Write('Номер клиента: '); ReadLn(Client); if (Client>=Low(Clients)) and (Client<=ClientCnt) then begin WriteLn('Клиент: ',Clients[Client].Name); Break; end else WriteLn('*** Ошибочный номер клиента'); until False; if not (Date='') then Write(fp,p); until Date=''; Close(fp); end.
Объяснение кода листинга программы
- Объявление типов данных: TNameStr (строка 31 символа), TDate (строка 8 символов), TClient (запись с полями Name типа TNameStr), TPurchess (запись с полями Date типа TDate, Value типа Real и Client типа Integer)
- Создание файлов fc и fp для работы с данными типов TClient и TPurchess соответственно
- Объявление массива Clients типа TClient на 10 элементов и переменной ClientCnt типа Integer
- Чтение данных из файла fc в массив Clients до тех пор, пока не закончится файл или не заполнится 10 элементов массива Clients
- Закрытие файла fc
- Открытие файла fp для записи
- Если файл fp не может быть открыт, то его создание и перезапись
- Перемещение позиции чтения файла fp в конец файла
- Ввод данных о дате, сумме и номере клиента с помощью функций ReadLn
- Проверка корректности номера клиента путем сравнения со значениями Low и ClientCnt
- Запись данных в файл fp
- Закрытие файла fp
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д