Merge branch 'master' of github.com:pascalabcnet/pascalabcnet

This commit is contained in:
Бондарев Иван 2016-12-20 20:35:28 +01:00
commit eccf3682ea
7 changed files with 130 additions and 70 deletions

View file

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

View file

@ -1,4 +1,4 @@
%COREVERSION%=0
%REVISION%=1363
%MINOR%=2
%REVISION%=1366
%COREVERSION%=0
%MAJOR%=3

Binary file not shown.

View file

@ -1 +1 @@
!define VERSION '3.2.0.1363'
!define VERSION '3.2.0.1366'

View file

@ -1272,6 +1272,7 @@ procedure Str(r: real; var s: string);
procedure Str(r: single; var s: string);
///--
procedure Str(s1: string; var s: string);
/// Возвращает позицию подстроки subs в строке s. Если не найдена, возвращает 0
function Pos(subs, s: string; from: integer := 1): integer;
/// Возвращает позицию подстроки subs в строке s начиная с позиции from. Если не найдена, возвращает 0
@ -1280,6 +1281,7 @@ function PosEx(subs, s: string; from: integer := 1): integer;
function LastPos(subs, s: string): integer;
/// Возвращает позицию последнего вхождения подстроки subs в строке s начиная с позиции from. Если не найдена, возвращает 0
function LastPos(subs, s: string; from: integer): integer;
/// Возвращает длину строки
function Length(s: string): integer;
/// Устанавливает длину строки s равной n
@ -6187,7 +6189,7 @@ end;
// -----------------------------------------------------
function PascalABCVersion: string;
begin
Result := '3.2';
Result := '3.2.0.1364';
end;
function ParamCount: integer;
@ -7192,30 +7194,49 @@ function Pos(subs, s: string; from: integer): integer;
begin
if (subs = nil) or (subs.Length = 0) then
Result := 0
else Result := s.IndexOf(subs, from - 1) + 1;
else Result := s.IndexOf(subs, from - 1,System.StringComparison.Ordinal) + 1;
end;
function PosEx(subs, s: string; from: integer): integer;
begin
if (subs = nil) or (subs.Length = 0) then
Result := 0
else Result := s.IndexOf(subs, from - 1) + 1;
else Result := s.IndexOf(subs, from - 1,System.StringComparison.Ordinal) + 1;
end;
function LastPos(subs, s: string): integer;
begin
if (subs = nil) or (subs.Length = 0) then
Result := 0
else Result := s.LastIndexOf(subs, s.Length - 1) + 1;
else Result := s.LastIndexOf(subs, s.Length - 1,System.StringComparison.Ordinal) + 1;
end;
function LastPos(subs, s: string; from: integer): integer;
begin
if (subs = nil) or (subs.Length = 0) then
Result := 0
else Result := s.LastIndexOf(subs, from - 1) + 1;
else Result := s.LastIndexOf(subs, from - 1,System.StringComparison.Ordinal) + 1;
end;
function Pos(c: char; s: string; from: integer): integer;
begin
Result := s.IndexOf(c, from - 1,System.StringComparison.Ordinal) + 1;
end;
function PosEx(c: char; s: string; from: integer): integer;
begin
Result := s.IndexOf(c, from - 1,System.StringComparison.Ordinal) + 1;
end;
function LastPos(c: char; s: string): integer;
begin
Result := s.LastIndexOf(c, s.Length - 1,System.StringComparison.Ordinal) + 1;
end;
function LastPos(c: char; s: string; from: integer): integer;
begin
Result := s.LastIndexOf(c, from - 1,System.StringComparison.Ordinal) + 1;
end;
function Length(s: string): integer;
begin
@ -9658,6 +9679,43 @@ begin
Result := (Self[0],Self[1],Self[2],Self[3],Self[4],Self[5],v);
end;
///--
function operator=<T1, T2> (Self: (T1,T2); v: (T1,T2)): boolean; extensionmethod;
begin
Result := Self.Equals( v ) ;
end;
///--
function operator<><T1, T2> (Self: (T1,T2); v: (T1,T2)): boolean; extensionmethod;
begin
Result := not Self.Equals( v ) ;
end;
///--
function operator<<T1, T2> (Self: (T1,T2); v: (T1,T2)): boolean; extensionmethod;
begin
Result := (Self as System.IComparable).CompareTo( v ) < 0 ;
end;
///--
function operator<=<T1, T2> (Self: (T1,T2); v: (T1,T2)): boolean; extensionmethod;
begin
Result := (Self as System.IComparable).CompareTo( v ) <= 0 ;
end;
///--
function operator><T1, T2> (Self: (T1,T2); v: (T1,T2)): boolean; extensionmethod;
begin
Result := (Self as System.IComparable).CompareTo( v ) > 0 ;
end;
///--
function operator>=<T1, T2> (Self: (T1,T2); v: (T1,T2)): boolean; extensionmethod;
begin
Result := (Self as System.IComparable).CompareTo( v ) >= 0 ;
end;
// --------------------------------------------
// Методы расширения типа Tuple # Extension methods for Tuple
// -------------------------------------------
@ -9898,34 +9956,6 @@ begin
// SSM 31.03.09
var FmtStr := '{0,' + NumOfChars.ToString + ':f' + abs(NumOfSignesAfterDot).ToString + '}';
Result := Format(FmtStr, value);
{var s := value.ToString(ENCultureInfo);
var i := s.IndexOf('.')+1;
if NumOfSignesAfterDot>=0 then
begin
if i=0 then
begin
s := s + '.';
for var j:=1 to NumOfSignesAfterDot do
s := s + '0'
end
else if NumOfSignesAfterDot=0 then begin
s := Round(value).ToString(ENCultureInfo);
//s := s.SubString(0,i-1);
end else
begin
var d := s.Length - i;
if NumOfSignesAfterDot>d then
for var j:=1 to NumOfSignesAfterDot-d do
s := s + '0'
else if NumOfSignesAfterDot<d then begin
var p := Round(Math.Pow(10,NumOfSignesAfterDot));
s := (Round(value*p) / p).ToString(ENCultureInfo);
//s := s.SubString(0,s.IndexOf('.')+1+NumOfSignesAfterDot)
end;
end;
end;
s := s.PadLeft(NumOfChars);
result := s;}
end;
procedure StringDefaultPropertySet(var s: string; index: integer; c: char);

Binary file not shown.

View file

@ -1272,6 +1272,7 @@ procedure Str(r: real; var s: string);
procedure Str(r: single; var s: string);
///--
procedure Str(s1: string; var s: string);
/// Возвращает позицию подстроки subs в строке s. Если не найдена, возвращает 0
function Pos(subs, s: string; from: integer := 1): integer;
/// Возвращает позицию подстроки subs в строке s начиная с позиции from. Если не найдена, возвращает 0
@ -1280,6 +1281,7 @@ function PosEx(subs, s: string; from: integer := 1): integer;
function LastPos(subs, s: string): integer;
/// Возвращает позицию последнего вхождения подстроки subs в строке s начиная с позиции from. Если не найдена, возвращает 0
function LastPos(subs, s: string; from: integer): integer;
/// Возвращает длину строки
function Length(s: string): integer;
/// Устанавливает длину строки s равной n
@ -6187,7 +6189,7 @@ end;
// -----------------------------------------------------
function PascalABCVersion: string;
begin
Result := '3.2';
Result := '3.2.0.1364';
end;
function ParamCount: integer;
@ -7192,30 +7194,49 @@ function Pos(subs, s: string; from: integer): integer;
begin
if (subs = nil) or (subs.Length = 0) then
Result := 0
else Result := s.IndexOf(subs, from - 1) + 1;
else Result := s.IndexOf(subs, from - 1,System.StringComparison.Ordinal) + 1;
end;
function PosEx(subs, s: string; from: integer): integer;
begin
if (subs = nil) or (subs.Length = 0) then
Result := 0
else Result := s.IndexOf(subs, from - 1) + 1;
else Result := s.IndexOf(subs, from - 1,System.StringComparison.Ordinal) + 1;
end;
function LastPos(subs, s: string): integer;
begin
if (subs = nil) or (subs.Length = 0) then
Result := 0
else Result := s.LastIndexOf(subs, s.Length - 1) + 1;
else Result := s.LastIndexOf(subs, s.Length - 1,System.StringComparison.Ordinal) + 1;
end;
function LastPos(subs, s: string; from: integer): integer;
begin
if (subs = nil) or (subs.Length = 0) then
Result := 0
else Result := s.LastIndexOf(subs, from - 1) + 1;
else Result := s.LastIndexOf(subs, from - 1,System.StringComparison.Ordinal) + 1;
end;
function Pos(c: char; s: string; from: integer): integer;
begin
Result := s.IndexOf(c, from - 1,System.StringComparison.Ordinal) + 1;
end;
function PosEx(c: char; s: string; from: integer): integer;
begin
Result := s.IndexOf(c, from - 1,System.StringComparison.Ordinal) + 1;
end;
function LastPos(c: char; s: string): integer;
begin
Result := s.LastIndexOf(c, s.Length - 1,System.StringComparison.Ordinal) + 1;
end;
function LastPos(c: char; s: string; from: integer): integer;
begin
Result := s.LastIndexOf(c, from - 1,System.StringComparison.Ordinal) + 1;
end;
function Length(s: string): integer;
begin
@ -9658,6 +9679,43 @@ begin
Result := (Self[0],Self[1],Self[2],Self[3],Self[4],Self[5],v);
end;
///--
function operator=<T1, T2> (Self: (T1,T2); v: (T1,T2)): boolean; extensionmethod;
begin
Result := Self.Equals( v ) ;
end;
///--
function operator<><T1, T2> (Self: (T1,T2); v: (T1,T2)): boolean; extensionmethod;
begin
Result := not Self.Equals( v ) ;
end;
///--
function operator<<T1, T2> (Self: (T1,T2); v: (T1,T2)): boolean; extensionmethod;
begin
Result := (Self as System.IComparable).CompareTo( v ) < 0 ;
end;
///--
function operator<=<T1, T2> (Self: (T1,T2); v: (T1,T2)): boolean; extensionmethod;
begin
Result := (Self as System.IComparable).CompareTo( v ) <= 0 ;
end;
///--
function operator><T1, T2> (Self: (T1,T2); v: (T1,T2)): boolean; extensionmethod;
begin
Result := (Self as System.IComparable).CompareTo( v ) > 0 ;
end;
///--
function operator>=<T1, T2> (Self: (T1,T2); v: (T1,T2)): boolean; extensionmethod;
begin
Result := (Self as System.IComparable).CompareTo( v ) >= 0 ;
end;
// --------------------------------------------
// Методы расширения типа Tuple # Extension methods for Tuple
// -------------------------------------------
@ -9898,34 +9956,6 @@ begin
// SSM 31.03.09
var FmtStr := '{0,' + NumOfChars.ToString + ':f' + abs(NumOfSignesAfterDot).ToString + '}';
Result := Format(FmtStr, value);
{var s := value.ToString(ENCultureInfo);
var i := s.IndexOf('.')+1;
if NumOfSignesAfterDot>=0 then
begin
if i=0 then
begin
s := s + '.';
for var j:=1 to NumOfSignesAfterDot do
s := s + '0'
end
else if NumOfSignesAfterDot=0 then begin
s := Round(value).ToString(ENCultureInfo);
//s := s.SubString(0,i-1);
end else
begin
var d := s.Length - i;
if NumOfSignesAfterDot>d then
for var j:=1 to NumOfSignesAfterDot-d do
s := s + '0'
else if NumOfSignesAfterDot<d then begin
var p := Round(Math.Pow(10,NumOfSignesAfterDot));
s := (Round(value*p) / p).ToString(ENCultureInfo);
//s := s.SubString(0,s.IndexOf('.')+1+NumOfSignesAfterDot)
end;
end;
end;
s := s.PadLeft(NumOfChars);
result := s;}
end;
procedure StringDefaultPropertySet(var s: string; index: integer; c: char);