Программная обработка информации, представленной в виде записей.
Под записью понимается структура данных, состоящая из фиксированного числа элементов. Каждый элемент записи имеет свой идентификатор и тип. Идентификатор в пределах записи должен быть уникальным. Для обращения к отдельным элементам записи указываются составные имена. Составное имя состоит из имени записи, после которого ставится точка и записывается идентификатор элемента записи. Например, "PotrM.Date". Использование записей позволяет объединять в единое целое совокупность логически связанных реквизитов документа.
В программное среде Delphi, для описания структурных взаимосвязей различных реквизитов предназначено утверждение “Record”, которое описывается в разделе “Type”.
Конструкция “Record” записывается в соответствии со следующим синтаксисом:
<имя структуры> = Record
<имя элемента>: <тип>;
[<имя элемента>:<тип>;]
End;
Выделение памяти для заданной структуры выполняется в разделе “Var” при описании переменных указанного типа.
Например:
Type
TPotrM = Record
Date: String [4];
ShCzeh: String [6];
NameMat: String [20];
Potr: Real;
End;
Var
PotrM: TPotrM;
При обработке документов, представленных в виде записей, можно использовать имена записей. Например,
W := PotrM:
Пример.
Имеется документ, который содержит информацию по потребности материалов на текущий период. Документ содержит следующие реквизиты:
Во-первых, дата, представленная в виде четырех символов. Первые два символа определяют месяц. Третий и четвертый символ определяют год.
Во-вторых, код цеха, представленный в виде шести символов.
В-третьих, код материала, представленный в виде десяти символов.
В-четвертых, потребность в материале, представленная в виде 8 цифр, две из которых определяют дробную часть.
Программный код, обеспечивающий определение квартала, к которому относится документ, имеет следующий вид:
Program PrjPotrM;
{$APPTYPE CONSOLE}
Uses
SysUtils;
Type
TPotrM = Record
Date: String [4];
ShCzeh: String [6];
NameMat: String [20];
Potr: Real;
End;
Var
PotrM: TPotrM;
Kv, Mes, Rc: Integer;
SMes: String;
Begin
// Ввод записи
Writeln ('Vvedite daty');
Readln (PotrM.Date);
Writeln ('Kod Czexa');
Readln (PotrM.ShCzeh);
Writeln ('Kod materiala');
Readln (PotrM.NameMat);
Writeln('Potrebnoct v materiale');
Readln (PotrM.Potr);
// Определение квартала
SMes := Copy(PotrM.Date, 1, 2);
Val(SMes,Mes,Rc); Kv:=0;
Case Mes Of
1..3: Kv:= 1;
4..6: Kv:= 2;
7..9: Kv:= 3;
10,11,12: Kv:= 4;
Else
Writeln('Oshibka v zadanii nomera mesjacza');
End;
Writeln ('Kvartal ',Kv);
Readln;
End.