3.9.0.3307 Release

This commit is contained in:
Mikhalkovich Stanislav 2023-07-10 11:20:04 +03:00
parent 7d61ba8464
commit 1d28d5030b
8 changed files with 38 additions and 12 deletions

View file

@ -15,7 +15,7 @@ internal static class RevisionClass
public const string Major = "3";
public const string Minor = "9";
public const string Build = "0";
public const string Revision = "3305";
public const string Revision = "3307";
public const string MainVersion = Major + "." + Minor;
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;

View file

@ -1,4 +1,4 @@
%MINOR%=9
%REVISION%=3305
%REVISION%=3307
%COREVERSION%=0
%MAJOR%=3

View file

@ -1 +1 @@
3.9.0.3305
3.9.0.3307

View file

@ -1 +1 @@
!define VERSION '3.9.0.3305'
!define VERSION '3.9.0.3307'

View file

@ -0,0 +1,8 @@
procedure CheckOutputSeq(a: sequence of char); begin end;
procedure CheckOutputSeq(a: sequence of object); begin end;
begin
var a := ArrFill(10,'*');
CheckOutputSeq(a);
end.

View file

@ -573,8 +573,10 @@ namespace PascalABCCompiler.TreeRealization
var ImplementingInterfaces = tnode.ImplementingInterfaces.ToList();
// Из-за этой строки возникла ошибка https://github.com/pascalabcnet/pascalabcnet/issues/2872
// Но без этой строчки не работает преобразование sequence of Student к sequence of Person и sequence of object
//if (tnode.IsInterface)
// ImplementingInterfaces.Add(tnode);
// SSM 19/07/23 - снова раскомментировал - теперь не работало
// CheckOutputSeq(a); в Tasks где var a: array of char
if (tnode.IsInterface)
ImplementingInterfaces.Add(tnode);
foreach (var interf in ImplementingInterfaces)
{
var ctn = interf as compiled_type_node;

View file

@ -273,6 +273,17 @@ namespace VisualPascalABCPlugins
private void ChangeArgsBeforeRunHandler(ref string args)
{
args += " " + loginForm.Authorized.ToString();
var FileName = Workbench.ServiceContainer.DocumentService.CurrentCodeFileDocument.FileName;
// Ладно - это текст
var text = Workbench.VisualEnvironmentCompiler.StandartCompiler.GetSourceFileText(FileName);
//text = System.Text.RegularExpressions.Regex.Replace(text, "\"", "\\\"");
if (text.Length > 5000)
text = text.Substring(0, 5000);
text = text.Replace("\\\"", "\\ \"");
text = text.Replace("\"", "\\\"");
//text = System.Text.RegularExpressions.Regex.Unescape(text);
args += " " + "\""+ text + "\"";
//args += " HelloBye23";
}
}
}

View file

@ -477,7 +477,7 @@ type
client.Timeout := TimeSpan.FromSeconds(10);
end;
function SendPostRequest(FullFIO, Password, LessonName, TaskName, TaskPlatform, TaskResult, TaskResultInfo: string): Task<string>;
function SendPostRequest(FullFIO, Password, LessonName, TaskName, TaskPlatform, TaskResult, text, TaskResultInfo: string): Task<string>;
begin
var values := Dict(
( 'shortFIO', '' ),
@ -487,7 +487,7 @@ type
( 'taskPlatform', TaskPlatform ),
( 'taskResult', TaskResult ),
( 'taskResultInfo', TaskResultInfo ),
( 'content', '' ),
( 'content', text ),
( 'password', Password )
);
var content := new FormUrlEncodedContent(values);
@ -2136,7 +2136,7 @@ end;
{ Процедуры для записи в базы данных }
{=========================================================}
procedure WriteInfoToRemoteDatabase(auth: string; LessonName, TaskName, TaskPlatform, TaskResult, AdditionalInfo: string);
procedure WriteInfoToRemoteDatabase(auth: string; LessonName, TaskName, TaskPlatform, TaskResult, text, AdditionalInfo: string);
begin
// Считать логин пароль из auth
var data := System.IO.File.ReadAllBytes(auth);
@ -2148,7 +2148,7 @@ begin
pass := arr[1];
// Теперь как-то записать в БД информацию
var User := new ServerAccessProvider(ServerAddr);
var t2 := User.SendPostRequest(login, pass, LessonName, TaskName, TaskPlatform, TaskResult, AdditionalInfo);
var t2 := User.SendPostRequest(login, pass, LessonName, TaskName, TaskPlatform, TaskResult, text, AdditionalInfo);
var v := t2.Result;
v := v;
//Console.WriteLine(v);
@ -2161,9 +2161,14 @@ begin
System.IO.File.AppendAllText('db.txt', $'{LessonName} {TaskName} {dateTime.Now.ToString(''u'')} {TaskResult.ToString} {AdditionalInfo}' + #10);
var auth := FindAuthDat();
var args := System.Environment.GetCommandLineArgs;
if (auth <> '') and (args.Length = 3) and (args[2].ToLower = 'true') then
if (auth <> '') and (args.Length >= 3) and (args[2].ToLower = 'true') then
begin
var text := '';
if TaskResult <> InitialTask then
text := args[3];
// Есть проблема паузы при плохой сети
WriteInfoToRemoteDatabase(auth,LessonName,TaskName,TaskPlatform,TaskResult.ToString, AdditionalInfo);
WriteInfoToRemoteDatabase(auth,LessonName,TaskName,TaskPlatform,TaskResult.ToString, text, AdditionalInfo);
end
except
on e: System.AggregateException do
begin