pascalabcnet/bin/Lib/PT4Exam.pas
Бондарев Иван bab33a265b #512
2017-10-08 15:11:13 +02:00

212 lines
3.6 KiB
ObjectPascal
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/// Модуль электронного задачника PT for Exam
unit PT4Exam;
//------------------------------------------------------------------------------
// Модуль для подключения задачника PT for Exam
// Версия 1.2
// Copyright (©) 2014-2017 М.Э.Абрамян
//------------------------------------------------------------------------------
interface
procedure Task(name: string);
procedure FinExam;
//1.2
procedure Show(S: string);
procedure Show(S: string; A: Integer; W: Integer);
procedure Show(S: string; A: Real; W: Integer);
procedure Show(S: string; A: Integer);
procedure Show(S: string; A: Real);
procedure Show(A: Integer; W: Integer);
procedure Show(A: Real; W: Integer);
procedure Show(A: Integer);
procedure Show(A: Real);
procedure ShowLine;
procedure ShowLine(S: string);
procedure ShowLine(S: string; A: Integer; W: Integer);
procedure ShowLine(S: string; A: Real; W: Integer);
procedure ShowLine(S: string; A: Integer);
procedure ShowLine(S: string; A: Real);
procedure ShowLine(A: Integer; W: Integer);
procedure ShowLine(A: Real; W: Integer);
procedure ShowLine(A: Integer);
procedure ShowLine(A: Real);
procedure SetPrecision(N: integer);
procedure HideTask;
implementation
uses
PT4, System.IO, System.Text;
procedure ToWin(s: string);
begin
var fs: StreamReader := new StreamReader(s);
var fs1: StreamWriter := new StreamWriter('$$.tmp', false,
Encoding.Default);
fs1.Write(fs.ReadToEnd);
fs.Close;
fs1.Close;
System.IO.File.Delete(s);
System.IO.File.Move('$$.tmp',s);
end;
var
NextTask: boolean := False;
s1, s2: string;
procedure Task(name: string);
var
f: textfile;
begin
PT4.Task(name);
if NextTask then
exit;
NextTask := True;
GetS(s1);
GetS(s2);
if not FileExists(s1) then
begin
s1 := 'null1.tst';
Assign(f, s1);
Rewrite(f);
Close(f);
end;
if s2 = '' then
s2 := 'null2.tst';
Assign(input, s1);
Reset(input);
Assign(output, s2);
Rewrite(output);
end;
procedure FinExam;
begin
Close(input);
Close(output);
if s1 = 'null1.tst' then
Erase(input);
if s2 = 'null2.tst' then
Erase(output)
else
ToWin(s2);
NextTask := false;
end;
procedure Show(S: string);
begin
PT4.Show(S);
end;
procedure Show(S: string; A: Integer; W: Integer);
begin
PT4.Show(S, A, W);
end;
procedure Show(S: string; A: Real; W: Integer);
begin
PT4.Show(S, A, W);
end;
procedure Show(S: string; A: Integer);
begin
PT4.Show(S, A);
end;
procedure Show(S: string; A: Real);
begin
PT4.Show(S, A);
end;
procedure Show(A: Integer; W: Integer);
begin
PT4.Show(A, W);
end;
procedure Show(A: Real; W: Integer);
begin
PT4.Show(A, W);
end;
procedure Show(A: Integer);
begin
PT4.Show(A);
end;
procedure Show(A: Real);
begin
PT4.Show(A);
end;
procedure ShowLine(S: string);
begin
PT4.ShowLine(S);
end;
procedure ShowLine;
begin
PT4.ShowLine;
end;
procedure ShowLine(S: string; A: Integer; W: Integer);
begin
PT4.ShowLine(S, A, W);
end;
procedure ShowLine(S: string; A: Real; W: Integer);
begin
PT4.ShowLine(S, A, W);
end;
procedure ShowLine(S: string; A: Integer);
begin
PT4.ShowLine(S, A);
end;
procedure ShowLine(S: string; A: Real);
begin
PT4.ShowLine(S, A);
end;
procedure ShowLine(A: Integer; W: Integer);
begin
PT4.ShowLine(A, W);
end;
procedure ShowLine(A: Real; W: Integer);
begin
PT4.ShowLine(A, W);
end;
procedure ShowLine(A: Integer);
begin
PT4.ShowLine(A);
end;
procedure ShowLine(A: Real);
begin
PT4.ShowLine(A);
end;
procedure HideTask;
begin
PT4.HideTask;
end;
procedure SetPrecision(N: Integer);
begin
PT4.SetPrecision(N);
end;
initialization
finalization
FinExam;
end.