Make(delphi) ver(4.04 build 185) Add(MainForm,2953706,91,84) { Width=767 Height=500 Caption="Функции KOL для работы со строками для IC. Автор MAV v1.0" Position=1 link(onCreate,10874252:In,[]) } Add(ListBox,9432958,21,28) { Top=5 Width=340 Height=280 Font=[Courier New,11,0,0,204] Strings=#25:--Стандартные процедуры--|15:Concat(s1, s2);|14:Copy(s, i, c);|16:Delete(s, i, c);|17:Insert(s1, s, i);|10:Length(s);|17:SetLength(s, nl);|11:Pos(s1, s);|10:Str(x, s);|13:Val(s, v, c);|31:----------KOL функции----------|30:-Удаление непечатных символов-|8:Trim(s);|12:TrimLeft(s);|13:TrimRight(s);|16:RemoveSpaces(s);|20:-Парсирование строк-|12:Parse(s, d);|24:StrIsStartingFrom(s, p);|17:StrSatisfy(s, p);|20:DelimiterLast(s, d);|22:__DelimiterLast(s, d);|26:IncludeTrailingChar(s, c);|26:ExcludeTrailingChar(s, c);|16:-Поиск в строке-|14:StrScan(s, c);|15:StrRScan(s, c);|18:IndexOfChar(s, c);|18:IndexOfStr(s, s1);|22:StrScanLen(s, c, Len);|22:-Поиск в масиве строк-|12:StrIn(s, a);|15:-Длинна строки-|10:StrLen(s);|32:-Копирование, удаление, вставка-|16:CopyEnd(s, Idx);|17:CopyTail(s, Len);|19:DeleteTail(s, Len);|28:StrReplace(s, From, ReplTo);|18:-Конвертация типа-|14:Str2Double(s);|11:Str2Int(s);| IndexManager="in_m1" BoxDrawManager="b_d_m2" IconsManager="ic_m3" Point(String) Point(onMouseWheel) Point(onMouseDown) link(onClick,99924:doEvent1,[]) } Add(HilightMemo,15371114,217,427) { Top=290 Width=755 Height=180 Color=12632256 Font=[Courier New,10,0,0,204] HilightStrings=#11:And=Black=B|13:array=Black=B|10:as=Black=B|12:asm =Black=B|17:automated=Black=B|16:begin=12334431=B|12:case=Black=B|13:class=Black=B|15:const=6632907=B|19:constructor=Black=B|18:destructor=Black=B|18:directives=Black=B|15:dispose=Black=B|11:div=Black=B|10:do=Black=B|14:downto=Black=B|12:else=Black=B|15:end;=12334431=B|14:end=12334431=B|15:end.=11038416=B|14:except=Black=B|15:exports=Black=B|12:file=Black=B|20:finalization=Black=B|15:finally=Black=B|11:for=Black=B|16:function=Black=B|12:goto=Black=B|10:if=Black=B|22:implementation=27824=B|17:inherited=Black=B|22:initialization=Black=B|17:interface=Black=B|10:is=Black=B|13:label=Black=B|15:library=Black=B|12:line=Black=B|11:mod=Black=B|11:nil=Black=B|11:not=Black=B|14:object=Black=B|12:{of}=Black=B|11:{on}Black=B|13:{or} =Black=B|11:out=Black=B|14:packed=Black=B|15:private=Black=B|17:procedure=Black=B|15:program=Black=B|16:property=Black=B|17:protected=Black=B|14:public=Black=B|17:published=Black=B|13:raise=Black=B|14:record=Black=B|14:repeat=Black=B|16:resource=Black=B|13:{set}=Black=B|11:shl=Black=B|11:shr=Black=B|14:string=Black=B|14:string=Black=B|12:then=Black=B|17:threadvar=Black=B|12:{to}=Black=B|11:try=Black=B|14:type=6348983=B|15:unit=11220377=B|13:until=Black=B|12:uses=Black=B|11:var=Black=B|15:virtual=Black=B|13:while=Black=B|12:with=Black=B|11:xor=Black=B|11://*=Green=C|11:/*/=Green=C|13:(*)=7995392=B| HilightFont=[Courier New,10,0,0,0] AutoComplete=1 MinWordLen=0 RightMargin=1 Point(doHilightFont) Point(onMouseDown) Point(doCopy) Point(Handle) link(onMouseDown,9656876:doCase,[]) } Add(Memo,13292415,343,112) { Left=345 Top=150 Width=410 Height=135 Font=[Times New Roman,11,0,0,204] } Add(StrList,12947392,273,42) { Strings=#0:|176:Concat(S1, S2, ... , Sn): string - возвращает строку, полученную в результате сцепления строк S1, S2, ..., Sn. По своей работе функция Concat аналогична операции сцепления (+).|128:Copy(S: string, Index, Count: Integer): string - выделяет из строки S подстроку длиной Count символов, начиная с позиции Index. |107:Delete(var S: string, Index, Count: Integer) - удаляет Count символов из строки S, начиная с позиции Index.|120:Insert(Source: string; var S: string, Index: Integer) - вставляет строку Source(s1) в строку S, начиная с позиции Index.|75:Length(S: string): Integer - возвращает реальную длину строки S в символах.|96:SetLength(var S: string; NewLength: Integer) - устанавливает для строки S новую длину NewLength.|226:Pos(Substr, S: string): Byte - обнаруживает первое появление подстроки Substr(s1) в строке S. Возвращает номер той позиции, где находится первый символ подстроки Substr. Если в S подстроки Substr не найдено, результат равен 0.|337:Str(X [: Width [: Decimals] ], var S: string) - преобразует числовое значение величины X в строку S. Необязательные параметры Width и Decimals являются целочисленными выражениями. Значение Width задает ширину поля результирующей строки. Значение Decimals используется с вещественными числами и задает количество символов в дробной части.|385:Val(S: string, var V; var Code: Integer) - преобразует строку S в величину целого или вещественного типа и помещает результат в переменную V. Если во время операции преобразования ошибки не обнаружено, значение переменной Code равно нулю; если ошибка обнаружена (строка содержит недопустимые символы), Code содержит номер позиции первого ошибочного символа, а значение V не определено.|0:|0:|101:Trim( const S : string): string; - удаляет в конце и в начале строки S пробелы и управляющие символы.|94:TrimLeft(const S: string): string; - удаляет из начала строки S пробелы и управляющие символы.|93:TrimRight(const S: string): string; - удаляет в конце строки S пробелы и управляющие символы.|75:RemoveSpaces( const S: String ): String; - удаляет все пробелы в строке S. |0:|254:Parse( var S : String; const Separators : String ) : String; - возвращает часть строки s до первого из встретившихся символов из строки d, оставляя в самой строке s только часть после встреченного символа-разделителя. Примечание разделитель ('')=('***').|107:StrIsStartingFrom( Str, Pattern: PChar ): Boolean; - проверяет, что начало строки s совпадает со строкой p.|230:StrSatisfy( const S, Mask : String ) : Boolean; - проверяет строку s на соответствие шаблону p (шаблон может содержать символы маски '*' и '?', интерпретируемые, соответственно, как "любые символы", и "один произвольный символ").|132:DelimiterLast( const Str, Delimiters: String ): Integer; - возвращает позицию последнего символа-разделителя из строки d в строке s.|151:__DelimiterLast( Str, Delimiters: PChar ): PChar; - возвращает символ последнего символа-разделителя из строки d в строке s и оставшуюся строку за ним.|135:ExcludeTrailingChar( const S: String; C: Char ): String; - возвращает s, добавляя символ c, если он еще не является последним в строке.|126:IncludeTrailingChar( const S: String; C: Char ): String; - возвращает s, удаляя символ c, если он является последним в строке.|0:|145:StrScan(Str: PChar; Chr: Char): PChar; - быстрый поиск символа, возращает указатель на этот символ и оставшуюся часть строки после этого символа.|167:StrRScan(const Str: PChar; Chr: Char): PChar; - быстрый поиск символа, возращает указатель на последний найденный символ и оставшуюся часть строки после этого символа.|192:IndexOfChar( const S: String; Chr: Char ): Integer; - возвращает положение символа Chr в строке S. Возвращаемое значение может быть то 1 до Length(S), если возвращается -1 то символ не найден.|201:IndexOfStr( const S, Sub: String ): Integer; - возвращает положение строки Sub(s1) в строке S. Возвращаемое значение может быть то 1 до Length(S)-Length(Sub), если возвращается -1 то строка не найдена.|271:StrScanLen( Str: PChar; Chr: Char; Len: Integer ): PChar; - быстрое сканирование строки Str длиной Len на нахождение в нем первого символа Chr . Если Chr не входит в Str, возвращается Str-Len, если символ Chr находится в диапазоне Len возвращается часть строки после Chr.|0:|166:StrIn( const S: String; A: array of String ): Boolean; - функция возвращает True если в одна из строк массива А равна строке S. Функция чуствительна к регистру букв.|0:|127:StrLen( const Str: PChar ): Cardinal; - функция возвращает число символов в строке Str, не учитывая конечного нулевого символа.|0:|108:CopyEnd( const S: String; Idx: Integer ): String; - копирует строку из строки S с Idx символа до последнего.|149:CopyTail( const S: String; Len: Integer ): String; - возвращает последние Len символа из строки S. Если Len > Length( S ), возвращается вся строка S.|85:DeleteTail( var S: String; Len: Integer ); - удаляет последние Len символа из строки.|200:StrReplace( var S: String; const From, ReplTo: String ): Boolean; - производит замену в строке S первой встреченной строки From(s1) на строку ReplTo(s2). Если замена произошла успешно возвращает True.|0:|73:Str2Double( const S: String ): Double; - преобразование строки в Double.|76:Str2Int(const Value : String) : Integer; - преобразование строки в Integer.|0:| Point(String) Point(doGetString) Point(StrToFind) } Add(DoData,13567612,273,112) { link(onEventData,16678184:doEvent1,[]) link(Data,12947392:String,[(279,68)(300,68)]) } Add(Hub,14905470,238,84) { link(onEvent1,12947392:doGetString,[]) link(onEvent2,13567612:doData,[(262,97)(262,118)]) } Add(Hub,16678184,315,112) { link(onEvent1,13292415:doClear,[(336,118)(336,125)]) link(onEvent2,13292415:doAdd,[(336,125)(336,118)]) } Add(StatusBar,14283158,133,126) { } Add(StrList,14714583,147,266) { @Hint=#23://(***), - начало блока|18://*, - конец блока| Strings=#8://Concat|59:procedure THiAsmClass.Concat_s(var Data:TData; index:word);|3:var|19:s, s1, s2 : string;|5:begin|39: s1 := ReadString(Data, Str_s1, '');|39: s2 := ReadString(Data, Str_s2, '');|24: s := Concat(s1, s2);|29: _hi_OnEvent(onEvent, s); |4:end;|3://*|0:|6://Copy|57:procedure THiAsmClass.Copy_s(var Data:TData; index:word);|3:var|23:index_, count: integer;|12:s : string;|5:begin|37: s := ReadString(Data, Str_s, '');|46: index_ := ReadInteger(Data, Num_index, 0);|45: count := ReadInteger(Data, Num_count, 0);|32: s := Copy(s, index_, count);|29: _hi_OnEvent(onEvent, s); |4:end;|3://*|0:|8://Delete|59:procedure THiAsmClass.Delete_s(var Data:TData; index:word);|3:var|23:index_, count: integer;|12:s : string;|5:begin|37: s := ReadString(Data, Str_s, '');|46: index_ := ReadInteger(Data, Num_index, 0);|45: count := ReadInteger(Data, Num_count, 0);|29: Delete(s, index_, count);|29: _hi_OnEvent(onEvent, s); |4:end;|3://*|0:|8://Insert|59:procedure THiAsmClass.Insert_s(var Data:TData; index:word);|3:var|17:index_ : integer;|15:s, s1 : string;|5:begin|37: s := ReadString(Data, Str_s, '');|39: s1 := ReadString(Data, Str_s1, '');|46: index_ := ReadInteger(Data, Num_index, 0);|26: Insert(s1, s, index_);|29: _hi_OnEvent(onEvent, s); |4:end;|3://*|0:|8://Length|59:procedure THiAsmClass.Length_s(var Data:TData; index:word);|3:var|14:Len : integer;|11:s : string;|5:begin|37: s := ReadString(Data, Str_s, '');|21: Len := Length(s);|31: _hi_OnEvent(onEvent, Len); |4:end;|3://*|0:|11://SetLength|62:procedure THiAsmClass.SetLength_s(var Data:TData; index:word);|3:var|22:NewLen, Len : integer;|11:s : string;|5:begin|46: NewLen := ReadInteger(Data, Num_count, 0);|37: s := ReadString(Data, Str_s, '');|25: SetLength(s, NewLen);|29: _hi_OnEvent(onEvent, s); |4:end;|3://*|0:|5://Pos|56:procedure THiAsmClass.Pos_s(var Data:TData; index:word);|3:var|9:p : Byte;|15:s, s1 : string;|5:begin|37: s := ReadString(Data, Str_s, '');|39: s1 := ReadString(Data, Str_s1, '');|20: P := Pos(s1, s);|29: _hi_OnEvent(onEvent, p); |4:end;|3://*|0:|5://Str|57:procedure THiAsmClass.Str_s_(var Data:TData; index:word);|3:var|11:s : string;|9:x : Real;|5:begin|35: x := ReadReal(Data, Num_fl, 0);|18: Str(x:0:6, s);|29: _hi_OnEvent(onEvent, s); |4:end;|3://*|0:|5://Val|56:procedure THiAsmClass.Val_s(var Data:TData; index:word);|3:var|11:s : string;|9:v : Real;|12:c : Integer;|5:begin|37: s := ReadString(Data, Str_s, '');|17: Val(s, v, c);|29: _hi_OnEvent(onEvent, v); |4:end;|3://*|0:|6://Trim|57:procedure THiAsmClass.Trim_s(var Data:TData; index:word);|3:var|11:s : string;|5:begin|37: s := ReadString(Data, Str_s, '');|17: s := Trim(s);|29: _hi_OnEvent(onEvent, s); |4:end;|3://*|0:|10://TrimLeft|61:procedure THiAsmClass.TrimLeft_s(var Data:TData; index:word);|3:var|11:s : string;|5:begin|37: s := ReadString(Data, Str_s, '');|21: s := TrimLeft(s);|29: _hi_OnEvent(onEvent, s); |4:end;|3://*|0:|11://TrimRight|62:procedure THiAsmClass.TrimRight_s(var Data:TData; index:word);|3:var|11:s : string;|5:begin|37: s := ReadString(Data, Str_s, '');|22: s := TrimRight(s);|29: _hi_OnEvent(onEvent, s); |4:end;|3://*|0:|14://RemoveSpaces|65:procedure THiAsmClass.RemoveSpaces_s(var Data:TData; index:word);|3:var|11:s : string;|5:begin|37: s := ReadString(Data, Str_s, '');|25: s := RemoveSpaces(s);|29: _hi_OnEvent(onEvent, s); |4:end;|3://*|0:|7://Parse|58:procedure THiAsmClass.Parse_s(var Data:TData; index:word);|3:var|11:s : string;|11:d : string;|17:parse_a : string;|5:begin|37: s := ReadString(Data, Str_s, '');|37: d := ReadString(Data, Str_d, '');|27: parse_a := Parse(s, d);|35: _hi_OnEvent(onEvent, parse_a); |4:end;|3://*|0:|19://StrIsStartingFrom|70:procedure THiAsmClass.StrIsStartingFrom_s(var Data:TData; index:word);|3:var|11:s : string;|11:p : string;|18:Result_s : string;|5:begin|37: s := ReadString(Data, Str_s, '');|37: p := ReadString(Data, Str_p, '');|88: if StrIsStartingFrom(PChar(s), PChar(p)) then Result_s :='Да' else Result_s :='Нет';|36: _hi_OnEvent(onEvent, Result_s); |4:end;|3://*|0:|12://StrSatisfy|63:procedure THiAsmClass.StrSatisfy_s(var Data:TData; index:word);|3:var|11:s : string;|11:p : string;|18:Result_s : string;|5:begin|37: s := ReadString(Data, Str_s, '');|37: p := ReadString(Data, Str_p, '');|81: if StrSatisfy(PChar(s), PChar(p)) then Result_s :='Да' else Result_s :='Нет';|36: _hi_OnEvent(onEvent, Result_s); |4:end;|3://*|0:|15://DelimiterLast|66:procedure THiAsmClass.DelimiterLast_s(var Data:TData; index:word);|3:var|11:s : string;|11:d : string;|18:parse_a : Integer;|5:begin|37: s := ReadString(Data, Str_s, '');|37: d := ReadString(Data, Str_d, '');|35: parse_a := DelimiterLast(s, d);|35: _hi_OnEvent(onEvent, parse_a); |4:end;|3://*|0:|17://__DelimiterLast|68:procedure THiAsmClass.__DelimiterLast_s(var Data:TData; index:word);|3:var|11:s : string;|11:d : string;|16:parse_a : PChar;|5:begin|37: s := ReadString(Data, Str_s, '');|37: d := ReadString(Data, Str_d, '');|51: parse_a := __DelimiterLast(PChar(s), PChar(d));|35: _hi_OnEvent(onEvent, parse_a); |4:end;|3://*|0:|21://IncludeTrailingChar|72:procedure THiAsmClass.IncludeTrailingChar_s(var Data:TData; index:word);|3:var|11:s : string;|11:c : string;|17:parse_a : string;|5:begin|37: s := ReadString(Data, Str_s, '');|37: c := ReadString(Data, Str_c, '');|56: parse_a := IncludeTrailingChar(s, c[1]); //c : Char;|35: _hi_OnEvent(onEvent, parse_a); |4:end;|3://*|0:|21://ExcludeTrailingChar|72:procedure THiAsmClass.ExcludeTrailingChar_s(var Data:TData; index:word);|3:var|11:s : string;|11:c : string;|17:parse_a : string;|5:begin|37: s := ReadString(Data, Str_s, '');|37: c := ReadString(Data, Str_c, '');|56: parse_a := ExcludeTrailingChar(s, c[1]); //c : Char;|35: _hi_OnEvent(onEvent, parse_a); |4:end;|3://*|0:|9://StrScan|60:procedure THiAsmClass.StrScan_s(var Data:TData; index:word);|3:var|11:s : string;|11:c : string;|17:Result_s : PChar;|5:begin|37: s := ReadString(Data, Str_s, '');|37: c := ReadString(Data, Str_c, '');|51: Result_s := StrScan(PChar(s), c[1]);//c : Char;|36: _hi_OnEvent(onEvent, Result_s ); |4:end;|3://*|0:|10://StrRScan|61:procedure THiAsmClass.StrRScan_s(var Data:TData; index:word);|3:var|11:s : string;|11:c : string;|17:Result_s : PChar;|5:begin|37: s := ReadString(Data, Str_s, '');|37: c := ReadString(Data, Str_c, '');|52: Result_s := StrRScan(PChar(s), c[1]);//c : Char;|35: _hi_OnEvent(onEvent, Result_s); |4:end;|3://*|0:|13://IndexOfChar|64:procedure THiAsmClass.IndexOfChar_s(var Data:TData; index:word);|3:var|12:p : Integer;|14:s, c : string;|5:begin|37: s := ReadString(Data, Str_s, '');|37: c := ReadString(Data, Str_c, '');|30: P := IndexOfChar(s, c[1]);|29: _hi_OnEvent(onEvent, p); |4:end;|3://*|0:|12://IndexOfStr|63:procedure THiAsmClass.IndexOfStr_s(var Data:TData; index:word);|3:var|12:p : Integer;|15:s, s1 : string;|5:begin|37: s := ReadString(Data, Str_s, '');|39: s1 := ReadString(Data, Str_s1, '');|27: P := IndexOfStr(s, s1);|29: _hi_OnEvent(onEvent, p); |4:end;|3://*|0:|12://StrScanLen|63:procedure THiAsmClass.StrScanLen_s(var Data:TData; index:word);|3:var|14:Len : integer;|14:s, c : string;|17:Result_s : PChar;|5:begin|37: s := ReadString(Data, Str_s, '');|37: c := ReadString(Data, Str_c, '');|43: Len := ReadInteger(Data, Num_Count, 0);|48: Result_s := StrScanLen(PChar(s), c[1], Len);|36: _hi_OnEvent(onEvent, Result_s); |4:end;|3://*|0:|7://StrIn|58:procedure THiAsmClass.StrIn_s(var Data:TData; index:word);|3:var|11:s : string;|26:a : array[0..2] of String;|18:Result_s : String;|5:begin|16: a[0]:='раз';|16: a[1]:='два';|16: a[2]:='три';|37: s := ReadString(Data, Str_s, '');|62: if StrIn(s, a) then Result_s :='Да' else Result_s :='Нет';|35: _hi_OnEvent(onEvent, Result_s); |4:end;|3://*|0:|8://StrLen|59:procedure THiAsmClass.StrLen_s(var Data:TData; index:word);|3:var|14:Len : integer;|11:s : string;|5:begin|37: s := ReadString(Data, Str_s, '');|28: Len := StrLen(PChar(s));|31: _hi_OnEvent(onEvent, Len); |4:end;|3://*|0:|9://CopyEnd|60:procedure THiAsmClass.CopyEnd_s(var Data:TData; index:word);|3:var|14:Idx : integer;|10:s: string;|17:Result_s: string;|5:begin|37: s := ReadString(Data, Str_s, '');|43: Idx := ReadInteger(Data, Num_index, 0);|32: Result_s := CopyEnd(s, Idx);|36: _hi_OnEvent(onEvent, Result_s); |4:end;|3://*|0:|10://CopyTail|61:procedure THiAsmClass.CopyTail_s(var Data:TData; index:word);|3:var|14:Len : integer;|12:s : string;|5:begin|37: s := ReadString(Data, Str_s, '');|43: Len := ReadInteger(Data, Num_count, 0);|26: s := CopyTail(s, Len);|29: _hi_OnEvent(onEvent, s); |4:end;|3://*|0:|12://DeleteTail|63:procedure THiAsmClass.DeleteTail_s(var Data:TData; index:word);|3:var|14:Len : integer;|12:s : string;|5:begin|37: s := ReadString(Data, Str_s, '');|43: Len := ReadInteger(Data, Num_count, 0);|23: DeleteTail(s, Len);|29: _hi_OnEvent(onEvent, s); |4:end;|3://*|0:|12://StrReplace|63:procedure THiAsmClass.StrReplace_s(var Data:TData; index:word);|3:var|20:s, s1, s2 : string;|5:begin|37: s := ReadString(Data, Str_s, '');|39: s1 := ReadString(Data, Str_s1, '');|39: s2 := ReadString(Data, Str_s2, '');|26: StrReplace(s, s1, s2);|29: _hi_OnEvent(onEvent, s); |4:end;|3://*|0:|12://Str2Double|63:procedure THiAsmClass.Str2Double_s(var Data:TData; index:word);|3:var|11:s : string;|18:Result_s : Double;|5:begin|37: s := ReadString(Data, Str_s, '');|30: Result_s := Str2Double(s);|36: _hi_OnEvent(onEvent, Result_s); |4:end;|3://*|0:|9://Str2Int|60:procedure THiAsmClass.Str2Int_s(var Data:TData; index:word);|3:var|11:s : string;|19:Result_s : Integer;|5:begin|37: s := ReadString(Data, Str_s, '');|27: Result_s := Str2Int(s);|36: _hi_OnEvent(onEvent, Result_s); |4:end;|3://*|0:|0:| Point(String) Point(doGetString) AddHint(-142,15,123,26,@Hint) } Add(StrCat,1684401,91,126) { Str1="Индекс записи " link(onStrCat,14283158:doText,[]) } Add(ArrayEnum,2892857,147,336) { link(onItem,9514422:doCompare,[]) link(onEndEnum,4988763:doEvent1,[(195,349)(195,300)]) link(Array,14714583:Array,[(153,327)(167,327)]) } Add(StrCat,9097576,231,224) { Str1="//" Point(doClear) link(onStrCat,16606458:doValue,[]) } Add(Hub,3055721,63,252) { OutCount=3 link(onEvent1,2962537:In,[]) link(onEvent2,12110387:doData,[(127,265)(127,230)]) link(onEvent3,2892857:doEnum,[(126,272)(126,342)]) } Add(Memory,510871,308,294) { Default=Integer(0) } Add(IndexToChanel,16297413,308,371) { Point(Index) link(onEvent2,6916892:doCompare,[(354,384)(354,410)(72,410)(72,426)]) link(Index,510871:Value,[]) } Add(LineBreak,16071591,175,434) { Caption="r2" link(Out,15371114:doClear,[]) Primary=[2962537,-84,-182] } Add(InlineCode,3499784,819,441) { WorkPoints=#8:Concat_s|6:Copy_s|8:Delete_s|8:Insert_s|8:Length_s|11:SetLength_s|5:Pos_s|6:Str_s_|5:Val_s|6:Trim_s|10:TrimLeft_s|11:TrimRight_s|14:RemoveSpaces_s|7:Parse_s|19:StrIsStartingFrom_s|12:StrSatisfy_s|15:DelimiterLast_s|17:__DelimiterLast_s|21:IncludeTrailingChar_s|21:ExcludeTrailingChar_s|9:StrScan_s|10:StrRScan_s|13:IndexOfChar_s|12:IndexOfStr_s|12:StrScanLen_s|7:StrIn_s|8:StrLen_s|9:CopyEnd_s|10:CopyTail_s|12:DeleteTail_s|12:StrReplace_s|12:Str2Double_s|9:Str2Int_s| EventPoints=#7:onEvent| DataPoints=#5:Str_s|5:Str_d|5:Str_p|5:Str_c|6:Str_s1|6:Str_s2|9:Num_Index|9:Num_Count|7:Num_int|6:Num_fl| Code=#15:unit HiAsmUnit;|0:|9:interface|0:|29:uses Windows,Share,Debug,KOL;|2: |4:type|30: THiAsmClass = class(TDebug)|10: private|0:|9: public|21: onEvent:THI_Event;|19: Str_s:THI_Event;|19: Str_d:THI_Event;|19: Str_p:THI_Event;|19: Str_c:THI_Event;|20: Str_s1:THI_Event;|20: Str_s2:THI_Event;|23: Num_index:THI_Event;|23: Num_count:THI_Event;|21: Num_int:THI_Event;|20: Num_fl:THI_Event;|3: |47:procedure Concat_s(var Data:TData; index:word);|45:procedure Copy_s(var Data:TData; index:word);|47:procedure Delete_s(var Data:TData; index:word);|47:procedure Insert_s(var Data:TData; index:word);|47:procedure Length_s(var Data:TData; index:word);|50:procedure SetLength_s(var Data:TData; index:word);|44:procedure Pos_s(var Data:TData; index:word);|45:procedure Str_s_(var Data:TData; index:word);|44:procedure Val_s(var Data:TData; index:word);|0:|45:procedure Trim_s(var Data:TData; index:word);|49:procedure TrimLeft_s(var Data:TData; index:word);|50:procedure TrimRight_s(var Data:TData; index:word);|53:procedure RemoveSpaces_s(var Data:TData; index:word);|46:procedure Parse_s(var Data:TData; index:word);|58:procedure StrIsStartingFrom_s(var Data:TData; index:word);|51:procedure StrSatisfy_s(var Data:TData; index:word);|54:procedure DelimiterLast_s(var Data:TData; index:word);|56:procedure __DelimiterLast_s(var Data:TData; index:word);|60:procedure IncludeTrailingChar_s(var Data:TData; index:word);|60:procedure ExcludeTrailingChar_s(var Data:TData; index:word);|48:procedure StrScan_s(var Data:TData; index:word);|49:procedure StrRScan_s(var Data:TData; index:word);|52:procedure IndexOfChar_s(var Data:TData; index:word);|51:procedure IndexOfStr_s(var Data:TData; index:word);|51:procedure StrScanLen_s(var Data:TData; index:word);|46:procedure StrIn_s(var Data:TData; index:word);|47:procedure StrLen_s(var Data:TData; index:word);|48:procedure CopyEnd_s(var Data:TData; index:word);|49:procedure CopyTail_s(var Data:TData; index:word);|51:procedure DeleteTail_s(var Data:TData; index:word);|51:procedure StrReplace_s(var Data:TData; index:word);|51:procedure Str2Double_s(var Data:TData; index:word);|48:procedure Str2Int_s(var Data:TData; index:word);|4:end;|0:|14:implementation|0:|8://Concat|59:procedure THiAsmClass.Concat_s(var Data:TData; index:word);|3:var|19:s, s1, s2 : string;|5:begin|39: s1 := ReadString(Data, Str_s1, '');|39: s2 := ReadString(Data, Str_s2, '');|24: s := Concat(s1, s2);|29: _hi_OnEvent(onEvent, s); |4:end;|3://*|0:|6://Copy|57:procedure THiAsmClass.Copy_s(var Data:TData; index:word);|3:var|23:index_, count: integer;|12:s : string;|5:begin|37: s := ReadString(Data, Str_s, '');|46: index_ := ReadInteger(Data, Num_index, 0);|45: count := ReadInteger(Data, Num_count, 0);|32: s := Copy(s, index_, count);|29: _hi_OnEvent(onEvent, s); |4:end;|3://*|0:|8://Delete|59:procedure THiAsmClass.Delete_s(var Data:TData; index:word);|3:var|23:index_, count: integer;|12:s : string;|5:begin|37: s := ReadString(Data, Str_s, '');|46: index_ := ReadInteger(Data, Num_index, 0);|45: count := ReadInteger(Data, Num_count, 0);|29: Delete(s, index_, count);|29: _hi_OnEvent(onEvent, s); |4:end;|3://*|0:|8://Insert|59:procedure THiAsmClass.Insert_s(var Data:TData; index:word);|3:var|17:index_ : integer;|15:s, s1 : string;|5:begin|37: s := ReadString(Data, Str_s, '');|39: s1 := ReadString(Data, Str_s1, '');|46: index_ := ReadInteger(Data, Num_index, 0);|26: Insert(s1, s, index_);|29: _hi_OnEvent(onEvent, s); |4:end;|3://*|0:|8://Length|59:procedure THiAsmClass.Length_s(var Data:TData; index:word);|3:var|14:Len : integer;|11:s : string;|5:begin|37: s := ReadString(Data, Str_s, '');|21: Len := Length(s);|31: _hi_OnEvent(onEvent, Len); |4:end;|3://*|0:|11://SetLength|62:procedure THiAsmClass.SetLength_s(var Data:TData; index:word);|3:var|22:NewLen, Len : integer;|11:s : string;|5:begin|46: NewLen := ReadInteger(Data, Num_count, 0);|37: s := ReadString(Data, Str_s, '');|25: SetLength(s, NewLen);|29: _hi_OnEvent(onEvent, s); |4:end;|3://*|0:|5://Pos|56:procedure THiAsmClass.Pos_s(var Data:TData; index:word);|3:var|9:p : Byte;|15:s, s1 : string;|5:begin|37: s := ReadString(Data, Str_s, '');|39: s1 := ReadString(Data, Str_s1, '');|20: P := Pos(s1, s);|29: _hi_OnEvent(onEvent, p); |4:end;|3://*|0:|5://Str|57:procedure THiAsmClass.Str_s_(var Data:TData; index:word);|3:var|11:s : string;|9:x : Real;|5:begin|35: x := ReadReal(Data, Num_fl, 0);|18: Str(x:0:6, s);|29: _hi_OnEvent(onEvent, s); |4:end;|3://*|0:|5://Val|56:procedure THiAsmClass.Val_s(var Data:TData; index:word);|3:var|11:s : string;|9:v : Real;|12:c : Integer;|5:begin|37: s := ReadString(Data, Str_s, '');|17: Val(s, v, c);|29: _hi_OnEvent(onEvent, v); |4:end;|3://*|0:|6://Trim|57:procedure THiAsmClass.Trim_s(var Data:TData; index:word);|3:var|11:s : string;|5:begin|37: s := ReadString(Data, Str_s, '');|17: s := Trim(s);|29: _hi_OnEvent(onEvent, s); |4:end;|3://*|0:|10://TrimLeft|61:procedure THiAsmClass.TrimLeft_s(var Data:TData; index:word);|3:var|11:s : string;|5:begin|37: s := ReadString(Data, Str_s, '');|21: s := TrimLeft(s);|29: _hi_OnEvent(onEvent, s); |4:end;|3://*|0:|11://TrimRight|62:procedure THiAsmClass.TrimRight_s(var Data:TData; index:word);|3:var|11:s : string;|5:begin|37: s := ReadString(Data, Str_s, '');|22: s := TrimRight(s);|29: _hi_OnEvent(onEvent, s); |4:end;|3://*|0:|14://RemoveSpaces|65:procedure THiAsmClass.RemoveSpaces_s(var Data:TData; index:word);|3:var|11:s : string;|5:begin|37: s := ReadString(Data, Str_s, '');|25: s := RemoveSpaces(s);|29: _hi_OnEvent(onEvent, s); |4:end;|3://*|0:|7://Parse|58:procedure THiAsmClass.Parse_s(var Data:TData; index:word);|3:var|11:s : string;|11:d : string;|17:parse_a : string;|5:begin|37: s := ReadString(Data, Str_s, '');|37: d := ReadString(Data, Str_d, '');|27: parse_a := Parse(s, d);|35: _hi_OnEvent(onEvent, parse_a); |4:end;|3://*|0:|19://StrIsStartingFrom|70:procedure THiAsmClass.StrIsStartingFrom_s(var Data:TData; index:word);|3:var|11:s : string;|11:p : string;|18:Result_s : string;|5:begin|37: s := ReadString(Data, Str_s, '');|37: p := ReadString(Data, Str_p, '');|88: if StrIsStartingFrom(PChar(s), PChar(p)) then Result_s :='Да' else Result_s :='Нет';|36: _hi_OnEvent(onEvent, Result_s); |4:end;|3://*|0:|12://StrSatisfy|63:procedure THiAsmClass.StrSatisfy_s(var Data:TData; index:word);|3:var|11:s : string;|11:p : string;|18:Result_s : string;|5:begin|37: s := ReadString(Data, Str_s, '');|37: p := ReadString(Data, Str_p, '');|81: if StrSatisfy(PChar(s), PChar(p)) then Result_s :='Да' else Result_s :='Нет';|36: _hi_OnEvent(onEvent, Result_s); |4:end;|3://*|0:|15://DelimiterLast|66:procedure THiAsmClass.DelimiterLast_s(var Data:TData; index:word);|3:var|11:s : string;|11:d : string;|18:parse_a : Integer;|5:begin|37: s := ReadString(Data, Str_s, '');|37: d := ReadString(Data, Str_d, '');|35: parse_a := DelimiterLast(s, d);|35: _hi_OnEvent(onEvent, parse_a); |4:end;|3://*|0:|17://__DelimiterLast|68:procedure THiAsmClass.__DelimiterLast_s(var Data:TData; index:word);|3:var|11:s : string;|11:d : string;|16:parse_a : PChar;|5:begin|37: s := ReadString(Data, Str_s, '');|37: d := ReadString(Data, Str_d, '');|51: parse_a := __DelimiterLast(PChar(s), PChar(d));|35: _hi_OnEvent(onEvent, parse_a); |4:end;|3://*|0:|21://IncludeTrailingChar|72:procedure THiAsmClass.IncludeTrailingChar_s(var Data:TData; index:word);|3:var|11:s : string;|11:c : string;|17:parse_a : string;|5:begin|37: s := ReadString(Data, Str_s, '');|37: c := ReadString(Data, Str_c, '');|56: parse_a := IncludeTrailingChar(s, c[1]); //c : Char;|35: _hi_OnEvent(onEvent, parse_a); |4:end;|3://*|0:|21://ExcludeTrailingChar|72:procedure THiAsmClass.ExcludeTrailingChar_s(var Data:TData; index:word);|3:var|11:s : string;|11:c : string;|17:parse_a : string;|5:begin|37: s := ReadString(Data, Str_s, '');|37: c := ReadString(Data, Str_c, '');|56: parse_a := ExcludeTrailingChar(s, c[1]); //c : Char;|35: _hi_OnEvent(onEvent, parse_a); |4:end;|3://*|0:|9://StrScan|60:procedure THiAsmClass.StrScan_s(var Data:TData; index:word);|3:var|11:s : string;|11:c : string;|17:Result_s : PChar;|5:begin|37: s := ReadString(Data, Str_s, '');|37: c := ReadString(Data, Str_c, '');|51: Result_s := StrScan(PChar(s), c[1]);//c : Char;|36: _hi_OnEvent(onEvent, Result_s ); |4:end;|3://*|0:|10://StrRScan|61:procedure THiAsmClass.StrRScan_s(var Data:TData; index:word);|3:var|11:s : string;|11:c : string;|17:Result_s : PChar;|5:begin|37: s := ReadString(Data, Str_s, '');|37: c := ReadString(Data, Str_c, '');|52: Result_s := StrRScan(PChar(s), c[1]);//c : Char;|35: _hi_OnEvent(onEvent, Result_s); |4:end;|3://*|0:|13://IndexOfChar|64:procedure THiAsmClass.IndexOfChar_s(var Data:TData; index:word);|3:var|12:p : Integer;|14:s, c : string;|5:begin|37: s := ReadString(Data, Str_s, '');|37: c := ReadString(Data, Str_c, '');|30: P := IndexOfChar(s, c[1]);|29: _hi_OnEvent(onEvent, p); |4:end;|3://*|0:|12://IndexOfStr|63:procedure THiAsmClass.IndexOfStr_s(var Data:TData; index:word);|3:var|12:p : Integer;|15:s, s1 : string;|5:begin|37: s := ReadString(Data, Str_s, '');|39: s1 := ReadString(Data, Str_s1, '');|27: P := IndexOfStr(s, s1);|29: _hi_OnEvent(onEvent, p); |4:end;|3://*|0:|12://StrScanLen|63:procedure THiAsmClass.StrScanLen_s(var Data:TData; index:word);|3:var|14:Len : integer;|14:s, c : string;|17:Result_s : PChar;|5:begin|37: s := ReadString(Data, Str_s, '');|37: c := ReadString(Data, Str_c, '');|43: Len := ReadInteger(Data, Num_Count, 0);|48: Result_s := StrScanLen(PChar(s), c[1], Len);|36: _hi_OnEvent(onEvent, Result_s); |4:end;|3://*|0:|7://StrIn|58:procedure THiAsmClass.StrIn_s(var Data:TData; index:word);|3:var|11:s : string;|26:a : array[0..2] of String;|18:Result_s : String;|5:begin|16: a[0]:='раз';|16: a[1]:='два';|16: a[2]:='три';|37: s := ReadString(Data, Str_s, '');|62: if StrIn(s, a) then Result_s :='Да' else Result_s :='Нет';|35: _hi_OnEvent(onEvent, Result_s); |4:end;|3://*|0:|8://StrLen|59:procedure THiAsmClass.StrLen_s(var Data:TData; index:word);|3:var|14:Len : integer;|11:s : string;|5:begin|37: s := ReadString(Data, Str_s, '');|28: Len := StrLen(PChar(s));|31: _hi_OnEvent(onEvent, Len); |4:end;|3://*|0:|9://CopyEnd|60:procedure THiAsmClass.CopyEnd_s(var Data:TData; index:word);|3:var|14:Idx : integer;|10:s: string;|17:Result_s: string;|5:begin|37: s := ReadString(Data, Str_s, '');|43: Idx := ReadInteger(Data, Num_index, 0);|32: Result_s := CopyEnd(s, Idx);|36: _hi_OnEvent(onEvent, Result_s); |4:end;|3://*|0:|10://CopyTail|61:procedure THiAsmClass.CopyTail_s(var Data:TData; index:word);|3:var|14:Len : integer;|12:s : string;|5:begin|37: s := ReadString(Data, Str_s, '');|43: Len := ReadInteger(Data, Num_count, 0);|26: s := CopyTail(s, Len);|29: _hi_OnEvent(onEvent, s); |4:end;|3://*|0:|12://DeleteTail|63:procedure THiAsmClass.DeleteTail_s(var Data:TData; index:word);|3:var|14:Len : integer;|12:s : string;|5:begin|37: s := ReadString(Data, Str_s, '');|43: Len := ReadInteger(Data, Num_count, 0);|23: DeleteTail(s, Len);|29: _hi_OnEvent(onEvent, s); |4:end;|3://*|0:|12://StrReplace|63:procedure THiAsmClass.StrReplace_s(var Data:TData; index:word);|3:var|20:s, s1, s2 : string;|5:begin|37: s := ReadString(Data, Str_s, '');|39: s1 := ReadString(Data, Str_s1, '');|39: s2 := ReadString(Data, Str_s2, '');|26: StrReplace(s, s1, s2);|29: _hi_OnEvent(onEvent, s); |4:end;|3://*|0:|12://Str2Double|63:procedure THiAsmClass.Str2Double_s(var Data:TData; index:word);|3:var|11:s : string;|18:Result_s : Double;|5:begin|37: s := ReadString(Data, Str_s, '');|30: Result_s := Str2Double(s);|36: _hi_OnEvent(onEvent, Result_s); |4:end;|3://*|0:|9://Str2Int|60:procedure THiAsmClass.Str2Int_s(var Data:TData; index:word);|3:var|11:s : string;|19:Result_s : Integer;|5:begin|37: s := ReadString(Data, Str_s, '');|27: Result_s := Str2Int(s);|36: _hi_OnEvent(onEvent, Result_s); |4:end;|3://*|0:|4:end.| link(onEvent,8696627:doEvent,[]) link(Str_s,5194219:Var,[]) link(Str_d,5118199:Var,[]) link(Str_p,5224065:Var,[]) link(Str_c,5867551:Var,[]) link(Str_s1,13364621:Var,[]) link(Str_s2,16254277:Var,[]) link(Num_Index,3392764:Var,[]) link(Num_Count,16751563:Var,[]) link(Num_int,11015478:Var,[]) link(Num_fl,13287755:Var,[]) } Add(Edit,8716022,861,42) { Left=370 Top=25 Width=80 Text="none" Point(doEnabled) } Add(DoData,12110387,140,224) { link(onEventData,6890111:doSplit,[]) link(Data,7944237:getVar,[]) } Add(StrList,3832098,490,21) { @Hint=#20:переменная@значение$| Strings=#0:|12:s1@жа$s2@ба$|18:s@абвгд$in@1$co@2$|18:s@абвгд$in@1$co@2$|16:s@сон$s1@л$in@2$|8:s@абвгд$|13:s@абвгд$co@4$|13:s@абвгд$s1@в$|9:fl@1.158$|9:s@-1.158$|0:|0:|16:s@ а б в г д $|16:s@ а б в г д $|16:s@ а б в г д $|16:s@ а б в г д $|0:|12:s@абвгд$d@в$|14:s@абвгд$p@абв$|15:s@абвгд$p@абв*$|15:s@а;б;в123$d@;$|15:s@а;б;в123$d@;$|11:s@абвг$c@д$|12:s@абвгд$c@д$|0:|18:s@абвгд абвгд$c@в$|18:s@абвгд абвгд$c@в$|18:s@абвгд абвгд$c@д$|22:s@строка Sub в$s1@Sub$|18:s@строка$c@р$co@4$|0:|6:s@два$|0:|8:s@абвгд$|0:|13:s@абвгд$in@2$|20:s@возвращается$co@3$|20:s@возвращается$co@3$|30:s@кот серый$s1@серый$s2@белый$|0:|9:s@-1.158$|6:s@750$|0:| Point(String) Point(doGetString) AddHint(50,-4,141,13,@Hint) } Add(DoData,2901165,511,91) { link(onEventData,5173411:doSplit,[]) link(Data,3832098:String,[]) } Add(Hub,3732200,455,77) { OutCount=3 link(onEvent1,7255464:doEvent2,[(560,83)(560,62)]) link(onEvent2,3832098:doGetString,[(479,90)(479,69)]) link(onEvent3,2901165:doData,[]) } Add(MultiStrData,5173411,553,91) { Char="$" Count=3 link(onPart1,5303810:doWork2,[]) link(onPart2,16719517:doWork2,[]) link(onPart3,16719517:doWork3,[(599,111)]) } Add(DoData,12910401,595,49) { Data=Integer(0) link(onEventData,12258344:doEvent1,[]) } Add(MultiElement,4255092,812,42) { @Hint=#1:s| link(onEvent1,8716022:doText,[]) link(onEvent2,8716022:doEnabled,[(852,55)(852,62)]) AddHint(2,-18,20,13,@Hint) } BEGIN_SDK Add(EditMulti,11444922,21,21) { EventCount=2 WorkCount=2 Width=363 Height=179 link(doWork1,5538982:doWork1,[(180,27)]) link(doWork2,8781129:doSplit,[(35,34)(35,62)]) } Add(Case,16431833,98,56) { Value=String(s) DataOnTrue=Integer(1) link(onNextCase,3547857:doClear,[]) link(onTrue,14518506:doEvent1,[]) AddHint(-4,-24,30,13,Value) } Add(HubEx,5538982,176,77) { Angle=1 link(onEvent,14067661:doEvent1,[(180,118)]) } Add(Hub,14067661,238,112) { link(onEvent1,11444922:onEvent2,[(343,118)(343,34)]) link(onEvent2,8490013:doData,[]) } Add(HubEx,2220613,308,98) { link(onEvent,11444922:onEvent1,[(337,104)(337,27)]) } Add(DoData,8490013,266,119) { Data=String(none) link(onEventData,2220613:doWork3,[(312,125)]) } Add(Hub,14518506,147,63) { link(onEvent1,3547857:doValue,[(169,69)(169,55)]) link(onEvent2,5538982:doWork2,[(169,76)(169,83)]) } Add(Memory,3547857,196,49) { Default=Integer(0) } Add(IndexToChanel,6948295,196,91) { Point(Index) link(onEvent2,2220613:doWork2,[]) link(Index,3547857:Value,[]) } Add(MultiStrData,8781129,42,56) { Char="@" link(onPart1,16431833:doCase,[]) link(onPart2,6948295:doEvent,[(85,69)(85,97)]) } END_SDK Add(InfoTip,12204510,7,182) { Info=#26:Пример использования в IC| Width=372 Height=396 } Add(InfoTip,7004832,217,7) { Info=#7:Справка| Width=162 Height=172 } Add(Hub,99924,105,35) { OutCount=6 link(onEvent1,13255290:In,[]) link(onEvent2,15727004:In,[]) link(onEvent3,1304027:In,[]) link(onEvent4,4288638:In,[]) link(onEvent5,9618357:In,[]) link(onEvent6,3415308:In,[]) } Add(InfoTip,6110623,385,7) { Info=#10:Переменные| Width=841 Height=690 } Add(LineBreak,4754757,224,49) { Caption="1" Color=-16777206 link(Out,14905470:doEvent1,[(260,55)(260,76)(226,76)(226,90)]) Primary=[13255290,-91,-14] } Add(LineBreak,4704521,413,77) { Caption="2" Color=-16777206 link(Out,3732200:doEvent1,[]) Primary=[15727004,-280,-35] } Add(LineBreak,12773157,21,252) { Caption="3" link(Out,3055721:doEvent1,[]) Primary=[1304027,112,-203] } Add(LineBreak,3427842,42,126) { Caption="4" link(Out,1684401:doStrCat,[]) Primary=[4288638,91,-70] } Add(InfoTip,7617869,7,7) { Info=#14:Список функций| Width=204 Height=172 } Add(LineBreak,10990073,525,49) { Caption="r1" link(Out,7255464:doEvent1,[]) Primary=[10874252,-392,49] } Add(Hub,7255464,567,49) { InCount=2 OutCount=1 link(onEvent1,12910401:doData,[]) } Add(Label,13938282,910,42) { Left=355 Top=25 Width=12 Height=20 Font=[Courier New,10,1,0,204] Caption="s" } Add(Label,8151884,413,28) { Left=435 Width=90 Height=23 Font=[Times New Roman,12,4,128,204] Caption="Переменные" } Add(LineBreak,9379325,924,399) { Caption="5" link(Out,11894923:doData,[]) Primary=[9618357,-791,-336] } Add(DoData,11840095,483,441) { link(onEventData,16346933:doWork1,[]) link(Data,3994055:getVar,[]) } Add(LineBreakEx,7944237,140,203) { Caption="F" Type=2 } Add(LineBreakEx,6874873,42,84) { Caption="F" Type=3 link(_Data,9432958:String,[]) } Add(LineBreakEx,3994055,483,420) { Caption="F" Type=2 } Add(Label,11181040,1015,399) { Left=615 Top=50 Width=70 Height=23 Font=[Times New Roman,12,4,8388608,204] Caption="Результат" } Add(Edit,4244340,1015,441) { Left=590 Top=75 Width=110 Text="none" } Add(DoData,11894923,966,399) { Data=String(none) link(onEventData,13174451:doWork1,[(1005,405)]) } Add(LineBreak,15688469,427,441) { Caption="6" link(Out,8781946:doWork2,[]) Primary=[3415308,-294,-371] } Add(HubEx,13174451,1001,441) { link(onEvent,4244340:doText,[]) } Add(Button,9114614,427,399) { Left=600 Top=25 Width=85 Caption="Выполнить" link(onClick,8781946:doWork1,[(473,405)]) } Add(HubEx,8781946,469,441) { link(onEvent,11840095:doData,[]) } Add(Edit,16163747,861,105) { Left=370 Top=50 Width=80 Text="none" Point(doEnabled) } Add(Label,4403546,910,105) { Left=355 Top=50 Width=12 Height=20 Font=[Courier New,10,1,0,204] Caption="d" } Add(Hub,12258344,637,49) { OutCount=10 link(onEvent1,14565203:In,[]) link(onEvent2,11079432:In,[]) link(onEvent3,9173362:In,[]) link(onEvent4,12956657:In,[]) link(onEvent5,5879406:In,[]) link(onEvent6,11047643:In,[]) link(onEvent7,13844509:In,[]) link(onEvent8,15138600:In,[]) link(onEvent9,6291921:In,[]) link(onEvent10,4858617:In,[]) } Add(Hub,15742257,728,49) { OutCount=6 link(onEvent1,4255092:doWork2,[]) link(onEvent2,9395511:doWork2,[(753,62)(753,118)]) link(onEvent3,15480677:doWork2,[(753,69)(753,181)]) link(onEvent4,2194696:doWork2,[(753,76)(753,244)]) link(onEvent5,15976925:In,[]) link(onEvent6,13387658:doWork2,[(753,90)(753,307)]) } Add(LineBreak,6199717,770,42) { Caption="r1" link(Out,4255092:doWork1,[]) Primary=[14565203,-105,7] } Add(LineBreak,15616981,770,105) { Caption="r2" link(Out,9395511:doWork1,[]) Primary=[11079432,-105,-49] } Add(LineBreak,425401,861,84) { Caption="s" Type=1 link(Data,8716022:Text,[]) Primary=[5194219,-42,287] } Add(LineBreak,15063540,861,147) { Caption="d" Type=1 link(Data,16163747:Text,[]) Primary=[5118199,-35,238] } Add(MultiElement,9395511,812,105) { @Hint=#1:d| link(onEvent1,16163747:doText,[]) link(onEvent2,16163747:doEnabled,[(852,118)(852,125)]) AddHint(2,-18,21,13,@Hint) } BEGIN_SDK Add(EditMulti,1504032,21,21) { EventCount=2 WorkCount=2 Width=363 Height=179 link(doWork1,8264479:doWork1,[(180,27)]) link(doWork2,12223787:doSplit,[(35,34)(35,62)]) } Add(Case,10087239,98,56) { Value=String(d) DataOnTrue=Integer(1) link(onNextCase,1084248:doClear,[]) link(onTrue,2687823:doEvent1,[]) AddHint(-4,-24,31,13,Value) } Add(HubEx,8264479,176,77) { Angle=1 link(onEvent,2362810:doEvent1,[(180,118)]) } Add(Hub,2362810,238,112) { link(onEvent1,1504032:onEvent2,[(343,118)(343,34)]) link(onEvent2,5715540:doData,[]) } Add(HubEx,3566515,308,98) { link(onEvent,1504032:onEvent1,[(337,104)(337,27)]) } Add(DoData,5715540,266,119) { Data=String(none) link(onEventData,3566515:doWork3,[(312,125)]) } Add(Hub,2687823,147,63) { link(onEvent1,1084248:doValue,[(169,69)(169,55)]) link(onEvent2,8264479:doWork2,[(169,76)(169,83)]) } Add(Memory,1084248,196,49) { Default=Integer(0) } Add(IndexToChanel,7169851,196,91) { Point(Index) link(onEvent2,3566515:doWork2,[]) link(Index,1084248:Value,[]) } Add(MultiStrData,12223787,42,56) { Char="@" link(onPart1,10087239:doCase,[]) link(onPart2,7169851:doEvent,[(85,69)(85,97)]) } END_SDK Add(Edit,9847223,861,168) { Left=370 Top=75 Width=80 Text="none" Point(doEnabled) } Add(Label,15179652,910,168) { Left=355 Top=75 Width=12 Height=20 Font=[Courier New,10,1,0,204] Caption="p" } Add(LineBreak,2285813,770,168) { Caption="r3" link(Out,15480677:doWork1,[]) Primary=[9173362,-105,-105] } Add(LineBreak,13956811,861,210) { Caption="p" Type=1 link(Data,9847223:Text,[]) Primary=[5224065,-28,189] } Add(MultiElement,15480677,812,168) { @Hint=#1:p| link(onEvent1,9847223:doText,[]) link(onEvent2,9847223:doEnabled,[(852,181)(852,188)]) AddHint(2,-18,21,13,@Hint) } BEGIN_SDK Add(EditMulti,9874822,21,21) { EventCount=2 WorkCount=2 Width=363 Height=179 link(doWork1,2365612:doWork1,[(180,27)]) link(doWork2,2960741:doSplit,[(35,34)(35,62)]) } Add(Case,15160582,98,56) { Value=String(p) DataOnTrue=Integer(1) link(onNextCase,13511652:doClear,[]) link(onTrue,5926564:doEvent1,[]) AddHint(-4,-24,31,13,Value) } Add(HubEx,2365612,176,77) { Angle=1 link(onEvent,13496734:doEvent1,[(180,118)]) } Add(Hub,13496734,238,112) { link(onEvent1,9874822:onEvent2,[(343,118)(343,34)]) link(onEvent2,7982766:doData,[]) } Add(HubEx,9838558,308,98) { link(onEvent,9874822:onEvent1,[(337,104)(337,27)]) } Add(DoData,7982766,266,119) { Data=String(none) link(onEventData,9838558:doWork3,[(312,125)]) } Add(Hub,5926564,147,63) { link(onEvent1,13511652:doValue,[(169,69)(169,55)]) link(onEvent2,2365612:doWork2,[(169,76)(169,83)]) } Add(Memory,13511652,196,49) { Default=Integer(0) } Add(IndexToChanel,3391852,196,91) { Point(Index) link(onEvent2,9838558:doWork2,[]) link(Index,13511652:Value,[]) } Add(MultiStrData,2960741,42,56) { Char="@" link(onPart1,15160582:doCase,[]) link(onPart2,3391852:doEvent,[(85,69)(85,97)]) } END_SDK Add(MultiElement,2194696,812,231) { @Hint=#1:c| link(onEvent1,682383:doText,[]) link(onEvent2,682383:doEnabled,[(852,244)(852,251)]) AddHint(2,-18,21,13,@Hint) } BEGIN_SDK Add(EditMulti,12569744,21,21) { EventCount=2 WorkCount=2 Width=363 Height=179 link(doWork1,4170807:doWork1,[(180,27)]) link(doWork2,15311301:doSplit,[(35,34)(35,62)]) } Add(Case,5664096,98,56) { Value=String(c) DataOnTrue=Integer(1) link(onNextCase,12761962:doClear,[]) link(onTrue,1704464:doEvent1,[]) AddHint(-4,-24,31,13,Value) } Add(HubEx,4170807,176,77) { Angle=1 link(onEvent,7545917:doEvent1,[(180,118)]) } Add(Hub,7545917,238,112) { link(onEvent1,12569744:onEvent2,[(343,118)(343,34)]) link(onEvent2,6012290:doData,[]) } Add(HubEx,15800704,308,98) { link(onEvent,12569744:onEvent1,[(337,104)(337,27)]) } Add(DoData,6012290,266,119) { Data=String(none) link(onEventData,15800704:doWork3,[(312,125)]) } Add(Hub,1704464,147,63) { link(onEvent1,12761962:doValue,[(169,69)(169,55)]) link(onEvent2,4170807:doWork2,[(169,76)(169,83)]) } Add(Memory,12761962,196,49) { Default=Integer(0) } Add(IndexToChanel,3774225,196,91) { Point(Index) link(onEvent2,15800704:doWork2,[]) link(Index,12761962:Value,[]) } Add(MultiStrData,15311301,42,56) { Char="@" link(onPart1,5664096:doCase,[]) link(onPart2,3774225:doEvent,[(85,69)(85,97)]) } END_SDK Add(Edit,682383,861,231) { Left=370 Top=100 Width=80 Text="none" Point(doEnabled) } Add(Label,11287510,910,231) { Left=355 Top=100 Width=12 Height=20 Font=[Courier New,10,1,0,204] Caption="c" } Add(LineBreak,4561846,770,231) { Caption="r4" link(Out,2194696:doWork1,[]) Primary=[12956657,-105,-161] } Add(LineBreak,11717886,861,273) { Caption="c" Type=1 link(Data,682383:Text,[]) Primary=[5867551,-21,140] } Add(Case,9656876,259,434) { Value=Integer(1) link(onTrue,5069136:doPopupHere,[]) } Add(Case,12135655,175,504) { Value=Integer(1) link(onTrue,8876167:doData,[]) } Add(Case,12675273,175,469) { Value=Integer(0) link(onTrue,15371114:doCopy,[]) } Add(Hub,941355,140,469) { link(onEvent1,12675273:doCase,[]) link(onEvent2,12135655:doCase,[(164,482)(164,510)]) } Add(DoData,8876167,217,511) { link(onEventData,5121179:doSetText,[]) link(Data,15371114:Text,[]) } Add(ClipboardHook,5121179,259,511) { } Add(PopupMenu,5069136,308,441) { Menu=#10:Копировать|14:Копировать всё| link(onClick,941355:doEvent1,[(353,447)(353,558)(127,558)(127,475)]) } Add(StrPart,6890111,182,224) { Char="(" link(onPart,9097576:doStrCat,[(222,237)(222,230)]) } Add(Edit,4608043,1113,42) { Left=500 Top=25 Width=80 Text="none" Point(doEnabled) } Add(MultiElement,37651,1064,42) { @Hint=#2:s1| link(onEvent1,4608043:doText,[]) link(onEvent2,4608043:doEnabled,[(1104,55)(1104,62)]) AddHint(-2,-19,26,13,@Hint) } BEGIN_SDK Add(EditMulti,3606903,21,21) { EventCount=2 WorkCount=2 Width=363 Height=179 link(doWork1,14219900:doWork1,[(180,27)]) link(doWork2,2401698:doSplit,[(35,34)(35,62)]) } Add(Case,14060714,98,56) { Value=String(s1) DataOnTrue=Integer(1) link(onNextCase,5476892:doClear,[]) link(onTrue,11860793:doEvent1,[]) AddHint(-4,-24,36,13,Value) } Add(HubEx,14219900,176,77) { Angle=1 link(onEvent,6210747:doEvent1,[(180,118)]) } Add(Hub,6210747,238,112) { link(onEvent1,3606903:onEvent2,[(343,118)(343,34)]) link(onEvent2,14152403:doData,[]) } Add(HubEx,10650025,308,98) { link(onEvent,3606903:onEvent1,[(337,104)(337,27)]) } Add(DoData,14152403,266,119) { Data=String(none) link(onEventData,10650025:doWork3,[(312,125)]) } Add(Hub,11860793,147,63) { link(onEvent1,5476892:doValue,[(169,69)(169,55)]) link(onEvent2,14219900:doWork2,[(169,76)(169,83)]) } Add(Memory,5476892,196,49) { Default=Integer(0) } Add(IndexToChanel,3486972,196,91) { Point(Index) link(onEvent2,10650025:doWork2,[]) link(Index,5476892:Value,[]) } Add(MultiStrData,2401698,42,56) { Char="@" link(onPart1,14060714:doCase,[]) link(onPart2,3486972:doEvent,[(85,69)(85,97)]) } END_SDK Add(Label,12661813,1162,42) { Left=470 Top=25 Width=20 Height=20 Font=[Courier New,10,1,0,204] Caption="s1" } Add(Edit,3413432,1113,105) { Left=500 Top=50 Width=80 Text="none" Point(doEnabled) } Add(Label,3901564,1162,105) { Left=470 Top=50 Width=20 Height=20 Font=[Courier New,10,1,0,204] Caption="s2" } Add(LineBreak,9395303,1022,42) { Caption="r5" link(Out,37651:doWork1,[]) Primary=[5879406,-357,35] } Add(LineBreak,8693426,1022,105) { Caption="r6" link(Out,1946062:doWork1,[]) Primary=[11047643,-357,-21] } Add(LineBreak,6243678,1113,84) { Caption="s1" Type=1 link(Data,4608043:Text,[]) Primary=[13364621,-266,287] } Add(LineBreak,14419646,1113,147) { Caption="s2" Type=1 link(Data,3413432:Text,[]) Primary=[16254277,-259,238] } Add(MultiElement,1946062,1064,105) { @Hint=#2:s2| link(onEvent1,3413432:doText,[]) link(onEvent2,3413432:doEnabled,[(1104,118)(1104,125)]) AddHint(-2,-19,26,13,@Hint) } BEGIN_SDK Add(EditMulti,5259126,21,21) { EventCount=2 WorkCount=2 Width=363 Height=179 link(doWork1,11157344:doWork1,[(180,27)]) link(doWork2,16296276:doSplit,[(35,34)(35,62)]) } Add(Case,12437746,98,56) { Value=String(s2) DataOnTrue=Integer(1) link(onNextCase,6943855:doClear,[]) link(onTrue,2187969:doEvent1,[]) AddHint(-4,-24,36,13,Value) } Add(HubEx,11157344,176,77) { Angle=1 link(onEvent,15893147:doEvent1,[(180,118)]) } Add(Hub,15893147,238,112) { link(onEvent1,5259126:onEvent2,[(343,118)(343,34)]) link(onEvent2,9608393:doData,[]) } Add(HubEx,10740261,308,98) { link(onEvent,5259126:onEvent1,[(337,104)(337,27)]) } Add(DoData,9608393,266,119) { Data=String(none) link(onEventData,10740261:doWork3,[(312,125)]) } Add(Hub,2187969,147,63) { link(onEvent1,6943855:doValue,[(169,69)(169,55)]) link(onEvent2,11157344:doWork2,[(169,76)(169,83)]) } Add(Memory,6943855,196,49) { Default=Integer(0) } Add(IndexToChanel,10985463,196,91) { Point(Index) link(onEvent2,10740261:doWork2,[]) link(Index,6943855:Value,[]) } Add(MultiStrData,16296276,42,56) { Char="@" link(onPart1,12437746:doCase,[]) link(onPart2,10985463:doEvent,[(85,69)(85,97)]) } END_SDK Add(Edit,5641900,1113,168) { Left=500 Top=75 Width=80 Text="none" Point(doEnabled) } Add(Label,7242229,1162,168) { Left=455 Top=75 Width=44 Height=20 Font=[Courier New,10,1,0,204] Caption="index" } Add(LineBreak,13682888,1022,168) { Caption="r7" link(Out,12233297:doWork1,[]) Primary=[13844509,-357,-77] } Add(LineBreak,16233016,1113,210) { Caption="in" Type=1 link(Data,5641900:Text,[]) Primary=[3392764,-252,189] } Add(MultiElement,12233297,1064,168) { @Hint=#2:in| link(onEvent1,5641900:doText,[]) link(onEvent2,5641900:doEnabled,[(1104,181)(1104,188)]) AddHint(2,-21,23,13,@Hint) } BEGIN_SDK Add(EditMulti,9442591,21,21) { EventCount=2 WorkCount=2 Width=363 Height=179 link(doWork1,15352514:doWork1,[(180,27)]) link(doWork2,2438482:doSplit,[(35,34)(35,62)]) } Add(Case,13664111,98,56) { Value=String(in) DataOnTrue=Integer(1) link(onNextCase,12631106:doClear,[]) link(onTrue,10720558:doEvent1,[]) AddHint(-4,-24,33,13,Value) } Add(HubEx,15352514,176,77) { Angle=1 link(onEvent,6459958:doEvent1,[(180,118)]) } Add(Hub,6459958,238,112) { link(onEvent1,9442591:onEvent2,[(343,118)(343,34)]) link(onEvent2,4006216:doData,[]) } Add(HubEx,9890203,308,98) { link(onEvent,9442591:onEvent1,[(337,104)(337,27)]) } Add(DoData,4006216,266,119) { Data=String(none) link(onEventData,9890203:doWork3,[(312,125)]) } Add(Hub,10720558,147,63) { link(onEvent1,12631106:doValue,[(169,69)(169,55)]) link(onEvent2,15352514:doWork2,[(169,76)(169,83)]) } Add(Memory,12631106,196,49) { Default=Integer(0) } Add(IndexToChanel,14369158,196,91) { Point(Index) link(onEvent2,9890203:doWork2,[]) link(Index,12631106:Value,[]) } Add(MultiStrData,2438482,42,56) { Char="@" link(onPart1,13664111:doCase,[]) link(onPart2,14369158:doEvent,[(85,69)(85,97)]) } END_SDK Add(MultiElement,3245969,1064,231) { @Hint=#2:co| link(onEvent1,6803477:doText,[]) link(onEvent2,6803477:doEnabled,[(1104,244)(1104,251)]) AddHint(-1,-21,27,13,@Hint) } BEGIN_SDK Add(EditMulti,586366,21,21) { EventCount=2 WorkCount=2 Width=363 Height=179 link(doWork1,4740645:doWork1,[(180,27)]) link(doWork2,1316176:doSplit,[(35,34)(35,62)]) } Add(Case,15226777,98,56) { Value=String(co) DataOnTrue=Integer(1) link(onNextCase,9117489:doClear,[]) link(onTrue,1822568:doEvent1,[]) AddHint(-4,-24,37,13,Value) } Add(HubEx,4740645,176,77) { Angle=1 link(onEvent,15562739:doEvent1,[(180,118)]) } Add(Hub,15562739,238,112) { link(onEvent1,586366:onEvent2,[(343,118)(343,34)]) link(onEvent2,13123946:doData,[]) } Add(HubEx,13581918,308,98) { link(onEvent,586366:onEvent1,[(337,104)(337,27)]) } Add(DoData,13123946,266,119) { Data=String(none) link(onEventData,13581918:doWork3,[(312,125)]) } Add(Hub,1822568,147,63) { link(onEvent1,9117489:doValue,[(169,69)(169,55)]) link(onEvent2,4740645:doWork2,[(169,76)(169,83)]) } Add(Memory,9117489,196,49) { Default=Integer(0) } Add(IndexToChanel,7122755,196,91) { Point(Index) link(onEvent2,13581918:doWork2,[]) link(Index,9117489:Value,[]) } Add(MultiStrData,1316176,42,56) { Char="@" link(onPart1,15226777:doCase,[]) link(onPart2,7122755:doEvent,[(85,69)(85,97)]) } END_SDK Add(Edit,6803477,1113,231) { Left=500 Top=100 Width=80 Text="none" Point(doEnabled) } Add(Label,11023490,1162,231) { Left=455 Top=100 Width=44 Height=20 Font=[Courier New,10,1,0,204] Caption="count" } Add(LineBreak,7225617,1022,231) { Caption="r8" link(Out,3245969:doWork1,[]) Primary=[15138600,-357,-133] } Add(LineBreak,3915543,1113,273) { Caption="co" Type=1 link(Data,6803477:Text,[]) Primary=[16751563,-245,140] } Add(LineBreak,7353527,959,49) { link(Out,2526433:doEvent1,[]) Primary=[15976925,-189,28] } Add(Hub,2526433,1001,49) { OutCount=5 link(onEvent1,37651:doWork2,[]) link(onEvent2,1946062:doWork2,[(1039,62)(1039,118)]) link(onEvent3,12233297:doWork2,[(1039,69)(1039,181)]) link(onEvent4,3245969:doWork2,[(1039,76)(1039,244)]) link(onEvent5,15411538:doWork2,[(1039,83)(1039,307)]) } Add(If_else,9514422,203,336) { link(onTrue,1079884:doData,[]) link(onFalse,16297413:doEvent,[(243,349)(243,377)]) link(Op2,16606458:Value,[(216,325)(286,325)]) } Add(DoData,1079884,252,336) { Data=Integer(1) link(onEventData,510871:doValue,[(296,342)(296,300)]) } Add(If_else,6916892,84,420) { Op2=String(//*) link(onTrue,2892857:doStop,[(128,426)(128,349)]) link(onFalse,15371114:doAdd,[]) } Add(Memory,16606458,280,224) { Default=Integer(0) } Add(Hub,4988763,252,294) { link(onEvent1,16606458:doClear,[(273,300)(273,237)]) link(onEvent2,510871:doClear,[]) } Add(HubEx,5303810,595,91) { link(onEvent,15742257:doEvent1,[(718,97)(718,55)]) } Add(HubEx,16719517,595,98) { Angle=3 link(onEvent,5303810:doWork3,[]) } Add(For,13171875,616,483) { End=100000 link(onEvent,12356651:doData,[]) link(onStop,15379325:In,[]) } Add(Button,16067143,532,371) { Left=705 Top=25 Width=50 Caption="100000" Data=Integer(1) link(onClick,6355830:doEvent1,[]) } Add(Memory,4420447,707,441) { link(onData,1514264:doWork2,[]) } Add(IndexToChanel,2582862,665,441) { Point(Index) link(onEvent1,4420447:doValue,[]) link(Index,3135895:Var2,[]) } Add(Memory,6664506,665,371) { Default=Integer(0) } Add(DoData,12356651,707,483) { link(onEventData,1514264:doWork3,[(753,489)]) link(Data,4420447:Value,[]) } Add(Hub,6355830,581,371) { OutCount=3 link(onEvent1,6664506:doValue,[]) link(onEvent2,1918241:doStart,[(604,384)(604,335)]) link(onEvent3,13171875:doFor,[(605,391)(605,489)]) } Add(IndexToChanel,8696627,924,441) { Point(Index) link(onEvent1,13174451:doWork2,[]) link(Index,530938:Var,[]) } Add(LineBreak,4951663,707,420) { Caption="sel" Type=1 link(Data,3135895:Var3,[(713,411)]) Primary=[530938,217,0] } Add(GetDataEx,3135895,665,406) { link(Data,6664506:Value,[]) } Add(TimeCounter,1918241,665,329) { link(onStop,11597630:doText,[(705,342)(705,335)]) } Add(Hub,14066866,581,336) { link(onEvent1,1918241:doStop,[]) link(onEvent2,6664506:doClear,[(657,349)(657,384)]) } Add(Edit,11597630,714,329) { Left=705 Top=75 Text="----" } Add(LineBreak,6152939,532,336) { link(Out,14066866:doEvent1,[]) Primary=[15379325,133,154] } Add(IndexToChanel,44342,770,441) { Count=33 link(onEvent1,3499784:Concat_s,[]) link(onEvent2,3499784:Copy_s,[]) link(onEvent3,3499784:Delete_s,[]) link(onEvent4,3499784:Insert_s,[]) link(onEvent5,3499784:Length_s,[]) link(onEvent6,3499784:SetLength_s,[]) link(onEvent7,3499784:Pos_s,[]) link(onEvent8,3499784:Str_s_,[]) link(onEvent9,3499784:Val_s,[]) link(onEvent10,3499784:Trim_s,[]) link(onEvent11,3499784:TrimLeft_s,[]) link(onEvent12,3499784:TrimRight_s,[]) link(onEvent13,3499784:RemoveSpaces_s,[]) link(onEvent14,3499784:Parse_s,[]) link(onEvent15,3499784:StrIsStartingFrom_s,[]) link(onEvent16,3499784:StrSatisfy_s,[]) link(onEvent17,3499784:DelimiterLast_s,[]) link(onEvent18,3499784:__DelimiterLast_s,[]) link(onEvent19,3499784:IncludeTrailingChar_s,[]) link(onEvent20,3499784:ExcludeTrailingChar_s,[]) link(onEvent21,3499784:StrScan_s,[]) link(onEvent22,3499784:StrRScan_s,[]) link(onEvent23,3499784:IndexOfChar_s,[]) link(onEvent24,3499784:IndexOfStr_s,[]) link(onEvent25,3499784:StrScanLen_s,[]) link(onEvent26,3499784:StrIn_s,[]) link(onEvent27,3499784:StrLen_s,[]) link(onEvent28,3499784:CopyEnd_s,[]) link(onEvent29,3499784:CopyTail_s,[]) link(onEvent30,3499784:DeleteTail_s,[]) link(onEvent31,3499784:StrReplace_s,[]) link(onEvent32,3499784:Str2Double_s,[]) link(onEvent33,3499784:Str2Int_s,[]) } Add(HubEx,1514264,749,441) { link(onEvent,44342:doEvent,[]) } Add(MultiElement,13387658,812,294) { @Hint=#3:int| link(onEvent1,4809525:doText,[]) link(onEvent2,4809525:doEnabled,[(852,307)(852,314)]) AddHint(-2,-19,26,13,@Hint) } BEGIN_SDK Add(EditMulti,1138004,21,21) { EventCount=2 WorkCount=2 Width=363 Height=179 link(doWork1,4277182:doWork1,[(180,27)]) link(doWork2,12758724:doSplit,[(35,34)(35,62)]) } Add(Case,3080818,98,56) { Value=String(int) DataOnTrue=Integer(1) link(onNextCase,9914357:doClear,[]) link(onTrue,5431283:doEvent1,[]) AddHint(-4,-24,36,13,Value) } Add(HubEx,4277182,176,77) { Angle=1 link(onEvent,11239611:doEvent1,[(180,118)]) } Add(Hub,11239611,238,112) { link(onEvent1,1138004:onEvent2,[(343,118)(343,34)]) link(onEvent2,5676237:doData,[]) } Add(HubEx,4559427,308,98) { link(onEvent,1138004:onEvent1,[(337,104)(337,27)]) } Add(DoData,5676237,266,119) { Data=String(none) link(onEventData,4559427:doWork3,[(312,125)]) } Add(Hub,5431283,147,63) { link(onEvent1,9914357:doValue,[(169,69)(169,55)]) link(onEvent2,4277182:doWork2,[(169,76)(169,83)]) } Add(Memory,9914357,196,49) { Default=Integer(0) } Add(IndexToChanel,4446545,196,91) { Point(Index) link(onEvent2,4559427:doWork2,[]) link(Index,9914357:Value,[]) } Add(MultiStrData,12758724,42,56) { Char="@" link(onPart1,3080818:doCase,[]) link(onPart2,4446545:doEvent,[(85,69)(85,97)]) } END_SDK Add(Edit,4809525,861,294) { Left=370 Top=125 Width=80 Text="none" Point(doEnabled) } Add(Label,8939376,910,294) { Left=345 Top=125 Width=22 Height=20 Font=[Courier New,10,1,0,204] Caption="int" } Add(LineBreak,2854744,770,294) { Caption="r9" link(Out,13387658:doWork1,[]) Primary=[6291921,-105,-189] } Add(LineBreak,9491072,861,336) { Caption="int" Type=1 link(Data,4809525:Text,[]) Primary=[11015478,14,35] } Add(MultiElement,15411538,1064,294) { @Hint=#2:fl| link(onEvent1,9810795:doText,[]) link(onEvent2,9810795:doEnabled,[(1104,307)(1104,314)]) AddHint(-9,-20,20,13,@Hint) } BEGIN_SDK Add(EditMulti,12615983,21,21) { EventCount=2 WorkCount=2 Width=363 Height=179 link(doWork1,9964676:doWork1,[(180,27)]) link(doWork2,1770898:doSplit,[(35,34)(35,62)]) } Add(Case,13668394,98,56) { Value=String(fl) DataOnTrue=Integer(1) link(onNextCase,7205733:doClear,[]) link(onTrue,5336947:doEvent1,[]) AddHint(-4,-24,30,13,Value) } Add(HubEx,9964676,176,77) { Angle=1 link(onEvent,15810952:doEvent1,[(180,118)]) } Add(Hub,15810952,238,112) { link(onEvent1,12615983:onEvent2,[(343,118)(343,34)]) link(onEvent2,7751594:doData,[]) } Add(HubEx,13713138,308,98) { link(onEvent,12615983:onEvent1,[(337,104)(337,27)]) } Add(DoData,7751594,266,119) { Data=String(none) link(onEventData,13713138:doWork3,[(312,125)]) } Add(Hub,5336947,147,63) { link(onEvent1,7205733:doValue,[(169,69)(169,55)]) link(onEvent2,9964676:doWork2,[(169,76)(169,83)]) } Add(Memory,7205733,196,49) { Default=Integer(0) } Add(IndexToChanel,12208177,196,91) { Point(Index) link(onEvent2,13713138:doWork2,[]) link(Index,7205733:Value,[]) } Add(MultiStrData,1770898,42,56) { Char="@" link(onPart1,13668394:doCase,[]) link(onPart2,12208177:doEvent,[(85,69)(85,97)]) } END_SDK Add(Edit,9810795,1113,294) { Left=500 Top=125 Width=80 Text="none" Point(doEnabled) } Add(Label,15978351,1162,294) { Left=475 Top=125 Width=19 Height=20 Font=[Courier New,10,1,0,204] Caption="fl" } Add(LineBreak,10988884,1022,294) { Caption="r10" link(Out,15411538:doWork1,[]) Primary=[4858617,-357,-182] } Add(LineBreak,933194,1113,336) { Caption="fl" Type=1 link(Data,9810795:Text,[]) Primary=[13287755,-231,49] } Add(MultiElement,16346933,532,441) { @Hint=#15:флаги включения|17:выбранной функции| link(onEvent1,2582862:doEvent,[]) AddHint(-14,-35,104,26,@Hint) } BEGIN_SDK Add(EditMulti,14671147,21,21) { EventCount=1 WorkCount=1 Width=405 Height=725 link(doWork1,3556825:doEvent1,[]) } Add(Case,16598874,224,21) { Value=String(Concat(s1, s2);) link(onTrue,2698022:doWork1,[]) AddHint(-165,8,96,13,Value) } Add(Hub,3556825,182,21) { OutCount=33 link(onEvent1,16598874:doCase,[]) link(onEvent2,13800906:doCase,[(210,34)(210,48)]) link(onEvent3,11201461:doCase,[(210,41)(210,69)]) link(onEvent4,9415887:doCase,[(210,48)(210,90)]) link(onEvent5,9364452:doCase,[(210,55)(210,111)]) link(onEvent6,6324016:doCase,[(210,62)(210,132)]) link(onEvent7,14008097:doCase,[(210,69)(210,153)]) link(onEvent8,2745371:doCase,[(210,76)(210,174)]) link(onEvent9,5711697:doCase,[(210,83)(210,195)]) link(onEvent10,14121730:doCase,[(210,90)(210,216)]) link(onEvent11,7323562:doCase,[(210,97)(210,237)]) link(onEvent12,1905145:doCase,[(210,104)(210,258)]) link(onEvent13,9544857:doCase,[(210,111)(210,279)]) link(onEvent14,3712284:doCase,[(210,118)(210,300)]) link(onEvent15,12314781:doCase,[(210,125)(210,321)]) link(onEvent16,11226854:doCase,[(210,132)(210,342)]) link(onEvent17,575017:doCase,[(210,139)(210,363)]) link(onEvent18,12042650:doCase,[(210,146)(210,384)]) link(onEvent19,12287621:doCase,[(210,153)(210,405)]) link(onEvent20,9642397:doCase,[(210,160)(210,426)]) link(onEvent21,13508012:doCase,[(210,167)(210,447)]) link(onEvent22,2709721:doCase,[(210,174)(210,468)]) link(onEvent23,14779300:doCase,[(210,181)(210,489)]) link(onEvent24,6160276:doCase,[(210,188)(210,510)]) link(onEvent25,2693945:doCase,[(210,195)(210,531)]) link(onEvent26,1340792:doCase,[(210,202)(210,552)]) link(onEvent27,10132263:doCase,[(210,209)(210,573)]) link(onEvent28,9677855:doCase,[(210,216)(210,594)]) link(onEvent29,13851257:doCase,[(210,223)(210,615)]) link(onEvent30,11747889:doCase,[(210,230)(210,636)]) link(onEvent31,13899916:doCase,[(210,237)(210,657)]) link(onEvent32,8382248:doCase,[(210,244)(210,678)]) link(onEvent33,8804949:doCase,[(210,251)(210,699)]) } Add(ChanelToIndex,2698022,287,28) { Count=33 link(onIndex,14671147:onEvent1,[(373,34)(373,27)]) } Add(Case,13800906,224,42) { Value=String(Copy(s, i, c);) link(onTrue,2698022:doWork2,[(272,55)(272,41)]) AddHint(-151,8,83,13,Value) } Add(Case,11201461,224,63) { Value=String(Delete(s, i, c);) link(onTrue,2698022:doWork3,[(272,76)(272,48)]) AddHint(-158,9,90,13,Value) } Add(Case,9415887,224,84) { Value=String(Insert(s1, s, i);) link(onTrue,2698022:doWork4,[(272,97)(272,55)]) AddHint(-160,7,90,13,Value) } Add(Case,9364452,224,105) { Value=String(Length(s);) link(onTrue,2698022:doWork5,[(272,118)(272,62)]) AddHint(-140,7,72,13,Value) } Add(Case,6324016,224,126) { Value=String(SetLength(s, nl);) link(onTrue,2698022:doWork6,[(272,139)(272,69)]) AddHint(-170,8,102,13,Value) } Add(Case,14008097,224,147) { Value=String(Pos(s1, s);) link(onTrue,2698022:doWork7,[(272,160)(272,76)]) AddHint(-143,8,74,13,Value) } Add(Case,2745371,224,168) { Value=String(Str(x, s);) link(onTrue,2698022:doWork8,[(272,181)(272,83)]) AddHint(-132,8,63,13,Value) } Add(Case,5711697,224,189) { Value=String(Val(s, v, c);) link(onTrue,2698022:doWork9,[(272,202)(272,90)]) AddHint(-146,7,78,13,Value) } Add(Case,14121730,224,210) { Value=String(Trim(s);) link(onTrue,2698022:doWork10,[(272,223)(272,97)]) AddHint(-128,9,59,13,Value) } Add(Case,7323562,224,231) { Value=String(TrimLeft(s);) link(onTrue,2698022:doWork11,[(272,244)(272,104)]) AddHint(-145,7,77,13,Value) } Add(Case,1905145,224,252) { Value=String(TrimRight(s);) link(onTrue,2698022:doWork12,[(272,265)(272,111)]) AddHint(-153,6,84,13,Value) } Add(Case,9544857,224,273) { Value=String(RemoveSpaces(s);) link(onTrue,2698022:doWork13,[(272,286)(272,118)]) AddHint(-186,6,115,13,Value) } Add(Case,3712284,224,294) { Value=String(Parse(s, d);) link(onTrue,2698022:doWork14,[(272,307)(272,125)]) AddHint(-147,8,78,13,Value) } Add(Case,12314781,224,315) { Value=String(StrIsStartingFrom(s, p);) link(onTrue,2698022:doWork15,[(272,328)(272,132)]) AddHint(-200,9,131,13,Value) } Add(Case,11226854,224,336) { Value=String(StrSatisfy(s, p);) link(onTrue,2698022:doWork16,[(272,349)(272,139)]) AddHint(-165,9,95,13,Value) } Add(Case,575017,224,357) { Value=String(DelimiterLast(s, d);) link(onTrue,2698022:doWork17,[(272,370)(272,146)]) AddHint(-180,6,111,13,Value) } Add(Case,12042650,224,378) { Value=String(__DelimiterLast(s, d);) link(onTrue,2698022:doWork18,[(272,391)(272,153)]) AddHint(-192,7,123,13,Value) } Add(Case,12287621,224,399) { Value=String(IncludeTrailingChar(s, c);) link(onTrue,2698022:doWork19,[(272,412)(272,160)]) AddHint(-211,8,142,13,Value) } Add(Case,9642397,224,420) { Value=String(ExcludeTrailingChar(s, c);) link(onTrue,2698022:doWork20,[(272,433)(272,167)]) AddHint(-214,9,145,13,Value) } Add(Case,13508012,224,441) { Value=String(StrScan(s, c);) link(onTrue,2698022:doWork21,[(272,454)(272,174)]) AddHint(-159,9,89,13,Value) } Add(Case,2709721,224,462) { Value=String(StrRScan(s, c);) link(onTrue,2698022:doWork22,[(272,475)(272,181)]) AddHint(-167,8,97,13,Value) } Add(Case,14779300,224,483) { Value=String(IndexOfChar(s, c);) link(onTrue,2698022:doWork23,[(272,496)(272,188)]) AddHint(-180,7,110,13,Value) } Add(Case,6160276,224,504) { Value=String(IndexOfStr(s, s1);) link(onTrue,2698022:doWork24,[(272,517)(272,195)]) AddHint(-176,8,106,13,Value) } Add(Case,2693945,224,525) { Value=String(StrScanLen(s, c, Len);) link(onTrue,2698022:doWork25,[(272,538)(272,202)]) AddHint(-200,8,131,13,Value) } Add(Case,1340792,224,546) { Value=String(StrIn(s, a);) link(onTrue,2698022:doWork26,[(272,559)(272,209)]) AddHint(-145,8,73,13,Value) } Add(Case,10132263,224,567) { Value=String(StrLen(s);) link(onTrue,2698022:doWork27,[(272,580)(272,216)]) AddHint(-144,9,70,13,Value) } Add(Case,9677855,224,588) { Value=String(CopyEnd(s, Idx);) link(onTrue,2698022:doWork28,[(272,601)(272,223)]) AddHint(-175,9,102,13,Value) } Add(Case,13851257,224,609) { Value=String(CopyTail(s, Len);) link(onTrue,2698022:doWork29,[(272,622)(272,230)]) AddHint(-176,8,104,13,Value) } Add(Case,11747889,224,630) { Value=String(DeleteTail(s, Len);) link(onTrue,2698022:doWork30,[(272,643)(272,237)]) AddHint(-183,6,111,13,Value) } Add(Case,13899916,224,651) { Value=String(StrReplace(s, From, ReplTo);) link(onTrue,2698022:doWork31,[(272,664)(272,244)]) AddHint(-234,8,162,13,Value) } Add(Case,8382248,224,672) { Value=String(Str2Double(s);) link(onTrue,2698022:doWork32,[(272,685)(272,251)]) AddHint(-164,7,92,13,Value) } Add(Case,8804949,224,693) { Value=String(Str2Int(s);) link(onTrue,2698022:doWork33,[(272,706)(272,258)]) AddHint(-143,6,70,13,Value) } END_SDK Add(IconsManager,7484191,175,126) { Name="ic_m3" ImgSize=18 Icons=['Icon1'=[ZIP5E07000078DAB595CB6B135114C6AFB8E87F2059881457C555D595AE5CB8A88250D0BDAD2082FF40172E5D092A82AF85A268AD0BC56A6B7D97D656FB48218A0826B5CFB489794C33C9E43199B9E726FA9D9980D3699AA6A0936F06328B1FDF77CEB96784D8815F2020F8293A5A84D8258468C38D57A25DB8EFF96A6D119B5C6F7B6FF4741D3F7FEAF0B9CE43674E1CE83EB6BFAB036A6F465ECEFBBE5B6636954F2CE9D18836F76D71FAC3FCA73773E3AFA09FAC21D6985FE1E17E1F67F8F16DB20AACB241664E163332AF4923257349994D483D26D7A2B6062DDBDA929D5E64A516C223033ECEE8933B8ACA244D254B6415A56948334BC53559801CA01E97FAAA5C5BB159513BBD0CD446CED8D3BB4A59AAAA64E86271A227F9FAF4CAF393737D47671F1EF972735FE87ADBCCB5BD329780A62EEF9EB8148099BA7EC69FDD534A2A6513598A2CB28B9CD1CCB14A59B8A25C8A39D95F8EB1989D59955A3432EAE77CEEBFAFAAA42A92C5B432A3CA28579E4C834ABACCA7399DE1948B6940AD843770265F3C5015855CFCACA8BAB982575BA7AFEC717371E5F558A42EA7AA6AAA102CA1EC0A65B7B9EC0AC660A990A1A2066354EB631CAD6FC4A92A6294E45A71074DA06A852AE954C8701311339798DD9CD3A05FDE5C64C0557A61F25D633F6E3AE2B2DB4E468B2D594ED97950B33CA805AD298E5BA80AD53A284B4EAD30F38C923CF37A03CE96B9DC86A256503434D6949FBFAA75909CB3437689939A46FC7B106BC1CB991AEC6DC851EEB4F3D971E6819C8CC9C8576C182F27F8F2912F97FB77B37EA15690B6F8A3BBE3A0973333D4B7851F379D7B76E08D47ABACC7E6B1F4BC1C6CA42638EB9915C291C7FE5CC71919D8D61CBA7EB082B08AEB72B6950B7EB0D5B7CFF1E7C20ABA70B6D3CBC10680407385B2A383182A9FB0A6B0F1B03CB187B1D2F175C08746FCD3EBA3D8F9FB7FDD7CFD013D6C8F12],'Icon2'=[ZIP5E07000078DA636060044209090610C9E0C1CEC020C6C0C0A001C4402106030688380828B0330C23E0AAC546B65E4F2D0E6F35364F4D7657555626469008272B09DA3D5458430C58A38D5813CCD8628D59638D58A20D58023559DD9459ED14D904B899883124DC8035D38E2BCF912BDF9123CF812DC79E3DC79623CB8623D99C2D428F35589BDD418EB09BE22CB90A9CB92A3D786BBC049B42E51A82651B4380A45C43905C5DA05CB9B74CB6B3849F16BBA322AB180F765771F271C63809D447293547483406F13505F3FEC7066A02A5B31DB9A2CD383CB438523D9531CD616464684B379D5A6CDD9724D315C5D715C9D715C13B31491E6E4273207753007773307F950F7F9E2B6FA419879624339A2126EADC4561AA0B3BA21734B84F4E93EC8BE1E98BE6E98DE2E989E2819BD319C6D3150E44BCEDE17C35017C69B65CA106EC518EB2C8E6386BB14D2871DB36BF62599BE78C1CD989F13CFD313C13628108E1BB9E28DEFE18109A10C7D719C157ECCE1D66C0EE6D248A6C4EAA2DE7BC9688836B3BD74F089F53AC3A2D957F523CCFC438DE89717C70734026C4F2014580A82F9AAFDA9727CE8C23DA8C0BD99C743BCE1593734F6E9FB16D56E2C20ADD999942539379C04621CC9992223E210E6A4E7F0C5F63006FA2256782058A3969769C1B17D45E38B8ECC0D2A2952D8E73724567A4A1C7D7D45449B83940D41AC29761CF956AC38DE69ECD8B9BAE9FD97E7A5BDFB669510BCB1467670B4E4DE2999C00F2DA843860B0F0400307E6B5F650BE1C17EE0C3B1ED4E4C739A333EBC6B93DB7CE6E39BEBE695DBBDDE20AA5D959FC40DF818D82980341BC10735A42780BDD788BBC65D1A23ED389FFECA1750F6E9CB87C68D1DE79A96B3AAC171649CDCAE287786A623C2F243100113070FA62F81B4305F25C04B0E40867D14573FA1EDCBEF4E0FAE1733B27EC5D98BAB6CD0A397C26C5437D37214EA0274EA42A4422D391176BD60086DBA1FDBB5EBD78F0F8D6891B27561C5F5FBF754A28C490B979C2B332F9676689CDCC919F9EAFD39BA602548C279F02652F5F3CFFEEF5D3970F2FDD3EBBF9E2BE39C7D6B56C9D1AB26D6AD0DA568B35ED8ECBDA7CA6973BE137046ED4A953279E3CBCFBECE18DC777CE3FBA71F2EEC53D578FAF3DBD7BCEAEE52D4BFAD288310402129D85818AF7EDDD79FEECC9DB37AFDDBC7CF2C0C6596BE735020589370491A8422C201AE1880EB5003C5A1BFFFFFFC750FFFF0F83FDFF1F0CF2FF3F30F0FF7FC0C00EC60718987162981A907A903E907E903920F3400000951DD983],'Icon3'=[ZIP5E07000078DA636060044209090610C9E0C1CEC020C6C0C0A001C4402106030688380828B0338C8251402A489AC6E0904A35A3EC92A866944D3C83550C4E0551DD0C111D0C214D201454CF1050C3E057C9E055CCE051C8E096C7E092CDE09401F217D03D10732C22B1DB4206320B63300AA0821FB19A4386BF20AE22DB5F1073D04C201500DD83E90C5201D05F149A00F7FE281816E0FFFFFFB8F11F20FE570F64CB333C60E06738C0C00C647F06B299816C7EB03858FE1F6E3300E4C18725]] } Add(BoxDrawManager,6719177,175,77) { Name="b_d_m2" Gradient=1 Gutter=1 InversClrTxt=0 LightColor=8388608 ColorFrame=0 } Add(IndexManager,331341,175,35) { Name="in_m1" Index=['0'=1,'0'=0,'0'=0,'0'=0,'0'=0,'0'=0,'0'=0,'0'=0,'0'=0,'0'=0,'0'=2,'0'=1,'0'=0,'0'=0,'0'=0,'0'=0,'0'=1,'0'=0,'0'=0,'0'=0,'0'=0,'0'=0,'0'=0,'0'=0,'0'=1,'0'=0,'0'=0,'0'=0,'0'=0,'0'=0,'0'=1,'0'=0,'0'=1,'0'=0,'0'=1,'0'=0,'0'=0,'0'=0,'0'=0,'0'=1,'0'=0,'0'=0] }