You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

105 lines
2.1 KiB
Plaintext

{ Julius Riegel, 20.12.18 }
unit utils;
interface
uses
crt,
Graph;
type
person = record
pname : String[10];
psurname : String[10];
number: Integer;
end;
function int_to_str(i: Integer): String;
procedure write_file(fname: String; data: person);
function read_file(fname: String): person;
procedure drawrectnums(nums: Array of Integer; size: Integer);
procedure init_graphics;
procedure graphictext(x, y, size: Integer; text: String);
implementation
function int_to_str(i: Integer): String;
begin
Str(i, int_to_str);
end;
procedure write_file(fname: String; data: person);
var
outfile: File of person;
begin
Assign(outfile, fname);
Rewrite(outfile);
Write(outfile, data);
Close(outfile);
end;
function read_file(fname: String): person;
var
infile: File of person;
begin
Assign(infile, fname);
Reset(infile);
Read(infile, read_file);
Close(infile);
end;
function format_num(num: Integer) : String;
var
tempstr: String;
begin
tempstr := int_to_str(num);
if (tempstr = '0') then
tempstr := '*';
format_num := tempstr;
end;
procedure init_graphics;
var
gdriver,
gmode : Integer;
begin
DetectGraph(gdriver, gmode);
InitGraph(gdriver, gmode, '');
end;
procedure graphictext(x, y, size : Integer; text: String);
begin
SetTextStyle(0, 0, round(size/40));
OutTextXY(x, y, text);
end;
procedure drawrectnums(nums: Array of Integer; size: Integer);
var
xsize,
ysize,
xstart,
ystart: Integer;
begin
xsize := GetMaxX;
ysize := GetMaxY;
xstart := Round(xsize/2) - round(size/2);
ystart := Round(ysize/2) - round(size/2);
SetTextStyle(0, 0, round(size/40));
OutTextXY(xstart+size, ystart, format_num(nums[0]));
OutTextXY(xstart+size, ystart+size, format_num(nums[1]));
OutTextXY(xstart, ystart+size, format_num(nums[2]));
OutTextXY(xstart, ystart, format_num(nums[3]));
end;
procedure draw_lines(xstart, ystart, size: Integer);
begin
Line(xstart, ystart, xstart+size, ystart);
Line(xstart+size, ystart, xstart+size, ystart+size);
Line(xstart+size, ystart+size, xstart, ystart+size);
Line(xstart, ystart+size, xstart, ystart);
end;
begin
{ Main Body }
end.