const str optimization

This commit is contained in:
2018-06-01 21:07:34 +03:00
parent 6dad5b98a2
commit 258dfbff07
7 changed files with 187 additions and 171 deletions

View File

@@ -1,8 +1,10 @@
unit Unit2;
interface
uses
DUnitX.TestFramework,AG.Logs,System.Classes,System.IOUtils,System.SysUtils,Winapi.Windows;
DUnitX.TestFramework, AG.Logs, System.Classes, System.IOUtils,
System.SysUtils, Winapi.Windows;
type
@@ -20,32 +22,34 @@ implementation
procedure TMyTestObject.Test1;
var
MultiLog:TAGLog;
Stream:TStream;
s:TBytes;
MultiLog: TAGLog;
Stream: TStream;
s: TBytes;
begin
MultiLog:=TAGMultiLog.Create(nil);
(MultiLog as TAGMultiLog).Logs.Add(TAGNullLog.Create());
(MultiLog as TAGMultiLog).Logs.Add(TAGDiskLog.Create('test.log'));
(MultiLog as TAGMultiLog).Logs.Add(TAGRamLog.Create());
MultiLog := TAGMultiLog.Create(nil);
(MultiLog as TAGMultiLog).Logs.Add(TAGNullLog.Create());
(MultiLog as TAGMultiLog).Logs.Add(TAGDiskLog.Create('test.log'));
(MultiLog as TAGMultiLog).Logs.Add(TAGRamLog.Create());
{$IFNDEF MSWINDOWS}(MultiLog as TAGMultiLog).Logs.Add(TAGCommandLineLog.Create(GetStdHandle(STD_OUTPUT_HANDLE))){$ENDIF};
try
s:=TFile.ReadAllBytes('test2.log');
except
s:=TBytes.Create();
end;
Stream:=TFileStream.Create('test2.log',fmCreate+fmOpenReadWrite+fmShareDenyWrite);
Stream.WriteBuffer(s,length(s));
(MultiLog as TAGMultiLog).Logs.Add(TAGStreamLog.Create(Stream));
(MultiLog as TAGMultiLog).Logs.Add(TAGCallBackLog.Create(procedure(s:string)
begin
Self.WriteLn(s);
end));{}
MultiLog.Write('Str Test');
MultiLog.Write('Str+Object Test',self);
FreeAndNil(MultiLog);
try
s := TFile.ReadAllBytes('test2.log');
except
s := TBytes.Create();
end;
Stream := TFileStream.Create('test2.log', fmCreate + fmOpenReadWrite +
fmShareDenyWrite);
Stream.WriteBuffer(s, length(s));
(MultiLog as TAGMultiLog).Logs.Add(TAGStreamLog.Create(Stream));
(MultiLog as TAGMultiLog)
.Logs.Add(TAGCallBackLog.Create(procedure(s: string)
begin Self.WriteLn(s); end)); { }
MultiLog.Write('Str Test');
MultiLog.Write('Str+Object Test', Self);
FreeAndNil(MultiLog);
end;
initialization
TDUnitX.RegisterTestFixture(TMyTestObject);
TDUnitX.RegisterTestFixture(TMyTestObject);
end.