mirror of
https://github.com/vishapoberon/vipak.git
synced 2026-04-05 20:42:26 +00:00
82 lines
No EOL
1.5 KiB
Modula-2
82 lines
No EOL
1.5 KiB
Modula-2
MODULE Logger;
|
|
IMPORT time, Out, Strings;
|
|
|
|
CONST
|
|
deca = 10;
|
|
|
|
PROCEDURE GetDecas(number: LONGINT): LONGINT;
|
|
VAR
|
|
i: LONGINT;
|
|
BEGIN
|
|
i := 1;
|
|
|
|
WHILE number > deca DO
|
|
number := number DIV deca;
|
|
INC(i);
|
|
END;
|
|
|
|
RETURN i;
|
|
END GetDecas;
|
|
|
|
PROCEDURE LogInt*(number: LONGINT);
|
|
BEGIN
|
|
Out.Int(number, GetDecas(number));
|
|
END LogInt;
|
|
|
|
PROCEDURE LogIntLn*(number: LONGINT);
|
|
BEGIN
|
|
LogInt(number);
|
|
Out.Ln();
|
|
END LogIntLn;
|
|
|
|
PROCEDURE LogNormalized*(number, normal: LONGINT);
|
|
VAR
|
|
decimals, i: LONGINT;
|
|
BEGIN
|
|
i:=0;
|
|
decimals := GetDecas(number);
|
|
WHILE decimals + i < normal DO
|
|
INC(i);
|
|
Out.Int(0, 1)
|
|
END;
|
|
|
|
LogInt(number);
|
|
END LogNormalized;
|
|
|
|
PROCEDURE Log*(buff: ARRAY OF CHAR);
|
|
VAR
|
|
year, month, day, hour, min, sec, i: LONGINT;
|
|
BEGIN
|
|
time.Now(year, month, day, hour, min, sec);
|
|
|
|
LogNormalized(year, 4);
|
|
Out.String("/");
|
|
LogNormalized(month, 2);
|
|
Out.String("/");
|
|
LogNormalized(day, 2);
|
|
Out.String(" ");
|
|
LogNormalized(hour, 2);
|
|
Out.String("-");
|
|
LogNormalized(min, 2);
|
|
Out.String("-");
|
|
LogNormalized(sec, 2);
|
|
Out.String(" :- ");
|
|
FOR i := 0 TO Strings.Length(buff) - 1 DO
|
|
(* Out.Char(" ");
|
|
Out.Int(ORD(buff[i]), 4);
|
|
Out.Char("-"); *)
|
|
Out.Char(buff[i]);
|
|
(* Out.Char(" ");Out.Char(" ");Out.Char(" "); *)
|
|
END;
|
|
Out.Ln;
|
|
END Log;
|
|
|
|
PROCEDURE Char*(char: CHAR);
|
|
VAR
|
|
string :ARRAY 1 OF CHAR;
|
|
BEGIN
|
|
string[0] :=char;
|
|
Log(string);
|
|
END Char;
|
|
|
|
END Logger. |