Скачиваний:
14
Добавлен:
01.05.2014
Размер:
3 Кб
Скачать
☆
(*
 * uTrList.pas - ¬®¤г«м, ॠ«Ё§гойЁ© в Ў«Ёжг ваЁ ¤
 * ver. 0.37
 * 21.05.2007 serg
 *)

unit uTrList;
interface

const triadTableSize = 200;
type
  tUseInfo = record
    isUse:  Boolean; (* == १г«мв в нв®© ваЁ ¤л ­г¦Ґ­ ¤агЈЁ¬ ваЁ ¤ ¬*)
    endUse: Integer; (* == ­ з «® ®Ў« бвЁ ЁбЇ®«м§®ў ­Ёп нв®© ваЁ ¤л *)
    numTmpVar: Integer; (* == ­®¬Ґа ўаҐ¬Ґ­­®© ЇҐаҐ¬Ґ­­®©, ў Є®в®а®© еа ­Ёвбп १г«мв в *)
  end;

  Str20 = String[20];
  tTriadData = record
   (* Џ®«п, Ї®«гз Ґ¬лҐ ®в ‘Ё­в ЄбЁзҐбЄ®Ј® Ђ­ «Ё§ в®а  *)
    (* num : Integer; *)
    name: Str20;
    op1: Str20;
    op2: Str20;

   (* Џ®«п, ­г¦­лҐ ¤«п ЇҐаҐў®¤  ў ЂбᥬЎ«Ґа *)
    useInfo: tUseInfo; (* Ё­д  ®Ў ЁбЇ®«м§гҐ¬®б⨠१г«мв в  ¤ ­­®© ваЁ ¤л *)
  end;
  tTriadList = record
    top: integer;
    data: array[1..triadTableSize] of tTriadData;
  end;

procedure copyTriad(var dest: tTriadData; const source: tTriadData);
procedure createTriad(var triada: tTriadData; name, op1, op2: Str20);
procedure createTriadList(var list: tTriadList);
procedure addTriadElemNum(var list: tTriadList; const triada: tTriadData; num: Integer);
procedure addTriadElemTop(var list: tTriadList; const triada: tTriadData);
procedure getTriadElemNum(const list: tTriadList; num: Byte;  var triada: tTriadData);
procedure setTriadElemNum(var list: tTriadList;   num: Byte; const triada: tTriadData);
procedure printTriadList(triadFile:string; const list: tTriadList);

var TriadList: tTriadList;

implementation

procedure copyTriad(var dest: tTriadData; const source: tTriadData);
begin
    (* num : Integer; *)
    dest.name:= source.name ;
    dest.op1 := source.op1 ;
    dest.op2 := source.op2 ;
    dest.useInfo  := source.useInfo;
end;
procedure createTriad(var triada: tTriadData;name, op1, op2: Str20);
begin
    (* num : Integer; *)
    triada.name:= name ;
    triada.op1 := op1 ;
    triada.op2 := op2 ;

    triada.useInfo.isUse      := false;
    triada.useInfo.endUse     := 0;
    triada.useInfo.numTmpVar  :=0;

end;


procedure createTriadList(var list: tTriadList);
begin
  list.top := 0;
end;

procedure addTriadElemNum(var list: tTriadList; const triada: tTriadData;
                              num: Integer);
begin
  if num > list.top then list.top := num;
  copyTriad(list.data[num], triada);
end;
procedure addTriadElemTop(var list: tTriadList; const triada: tTriadData);
begin
  inc(list.top);
  copyTriad(list.data[list.top], triada);
end;

procedure getTriadElemNum(const list: tTriadList; num: Byte; var triada: tTriadData);
begin
  copyTriad(triada, list.data[num]);
end;
procedure setTriadElemNum(var list: tTriadList;   num: Byte; const triada: tTriadData);
begin
  copyTriad(list.data[num],triada);
end;

procedure printTriadList(triadFile:string; const list: tTriadList);
var f: Text;
    i: integer;
begin
  assign(f, triadFile);
  rewrite(f);
  writeln(f, 'num':10, 'name': 10, 'op1': 10, 'op2': 10,
             'isUse':10,  'endUse':10, 'numTmpVar':10);
  with list do
    for i:=1 to top do
      with data[i] do
        writeln(f, i:10, name: 10, op1: 10, op2: 10,
             useInfo.isUse:10,  useInfo.endUse:10, useInfo.numTmpVar:10);
  close(f);
end;
end.
Соседние файлы в папке src