Вверх ↑
Пакеты 
HiAsm4
Windows 
Компоненты 
Cтpoки 
Разбиение - Str_Enum

Str_Enum
Краткое описание
  Компонент Str_Enum - предназначен для перебора строки
Параметры
  • Delimiter - Символ-разделитель. Если не задан, то строка перебирается посимвольно Внимание! Символ-разделитель должен состоять из одного символа, в случае применения строки, будет использоваться только первый символ в качестве символа-разделителя
  • From - Выдавать элементы, начиная с N-го NumSubStr
  • To - Выдавать элементы до N-го NumSubStr, или до конца при N=-1
  • Direct - Направление перебора элементов строки
  • onBreakEnable = True - после doStop вызывается событие onBreak, а onEndEnum - не вызывается
  • Методы
  • doEnum - Начинает перебор элементов строки
  • doStop - Останавливает перебор элементов строки
  • События
  • onEnum - Выдает в поток очередной элемент строки
  • onEndEnum - Событие происходит после завершения перебора всех элементов строки
  • onBreak - Событие происходит при onBreakEnable=True после события onEnum, если при этом был вызван метод doStop,выдавая в поток последний найденный элемент строки
  • Свойства
  • NumSubStr - Содержит номер текущего элемента строки (от начала или от конца, в зависимости от свойства Direct) после вызова события onEnum и начинается с 1
  • Данные
  • String - Определяет строку для перебора
  • Примеры
    
    Add(MainForm,14675848,259,175)
    {
    Width=485
    Height=350
    Caption="Str_Enum"
    Position=1
    }
    Add(Str_Enum,6017137,588,273)
    {
    Delimiter=""
    Direct=1
    onBreakEnable=0
    Point(doFrom)
    Point(onBreak)
    Point(doDelimiter)
    Point(doTo)
    link(onEnum,6239218:doCompare,[])
    link(String,12324541:Var2,[])
    link(onBreak,4841251:doWork2,[(632,293)(632,342)])
    }
    Add(Hub,8769308,308,238)
    {
    OutCount=6
    link(onEvent1,15933198:doWork2,[])
    link(onEvent2,7103391:doWork2,[])
    link(onEvent3,397450:doData,[(506,258)(506,293)])
    link(onEvent4,11205470:doData,[(443,265)(443,300)])
    link(onEvent5,7548562:doData,[(339,272)(339,307)])
    link(onEvent6,6017137:doEnum,[])
    }
    Add(Button,4445782,259,238)
    {
    Left=250
    Top=288
    TabOrder=-1
    Caption="Reverse"
    Data=String()
    link(onClick,8769308:doEvent1,[])
    }
    Add(Edit,1562172,525,203)
    {
    Left=150
    Top=30
    Text="1"
    DataType=1
    }
    Add(DoData,397450,525,287)
    {
    link(onEventData,6017137:doFrom,[])
    link(Data,9820092:Var2,[])
    }
    Add(Edit,749672,588,203)
    {
    Left=5
    Top=5
    Width=465
    Text="abc#def#ghi#jkl#mno#pqr#stu#vwx#xy"
    }
    Add(Label,7991264,301,175)
    {
    Left=5
    Top=30
    Width=44
    Height=17
    Caption="Delimiter"
    }
    Add(Label,6511435,308,182)
    {
    Left=115
    Top=30
    Width=27
    Height=17
    Caption="From"
    }
    Add(Edit,16047238,462,203)
    {
    Left=55
    Top=30
    Text="#"
    }
    Add(DoData,11205470,462,294)
    {
    link(onEventData,6017137:doDelimiter,[])
    link(Data,11109849:Var2,[])
    }
    Add(Label,14837617,315,189)
    {
    Left=290
    Top=30
    Width=35
    Height=17
    Caption="Stop If"
    }
    Add(Edit,4392691,651,203)
    {
    Left=330
    Top=30
    Text=""
    }
    Add(If_else,6239218,644,273)
    {
    link(onTrue,6017137:doStop,[(692,279)(692,195)(575,195)(575,286)])
    link(onFalse,7550175:doWork2,[])
    link(Op2,6138706:Var2,[])
    }
    Add(Label,10564146,826,336)
    {
    Left=390
    Top=30
    Width=80
    Caption=""
    AutoSize=1
    }
    Add(FormatStr,16205645,756,336)
    {
    DataCount=1
    Mask="Stop on %1"
    link(onFString,12692260:doWork2,[])
    }
    Add(HubEx,12692260,805,336)
    {
    link(onEvent,10564146:doText,[])
    }
    Add(Button,2310511,259,343)
    {
    Left=185
    Top=288
    TabOrder=-1
    Caption="Forward"
    Data=String()
    link(onClick,8913982:doEvent1,[])
    }
    Add(Hub,8913982,308,343)
    {
    OutCount=6
    link(onEvent1,15933198:doWork3,[(354,349)])
    link(onEvent2,7103391:doWork3,[(361,356)])
    link(onEvent3,14074230:doData,[(527,363)(527,398)])
    link(onEvent4,2075598:doData,[(448,370)(448,405)])
    link(onEvent5,8766197:doData,[(340,377)(340,412)])
    link(onEvent6,13550:doEnum,[])
    }
    Add(HubEx,15933198,350,238)
    {
    link(onEvent,12692260:doWork1,[(809,244)])
    }
    Add(Str_Enum,13550,609,378)
    {
    Delimiter=""
    onBreakEnable=0
    Point(doFrom)
    Point(onBreak)
    Point(doDelimiter)
    Point(doTo)
    link(onEnum,3009037:doCompare,[])
    link(String,12324541:Var3,[(615,257)])
    link(onBreak,4841251:doWork3,[(655,398)])
    }
    Add(DoData,14074230,546,392)
    {
    link(onEventData,13550:doFrom,[])
    link(Data,9820092:Var3,[(552,271)])
    }
    Add(DoData,2075598,483,399)
    {
    link(onEventData,13550:doDelimiter,[])
    link(Data,11109849:Var3,[(489,271)])
    }
    Add(If_else,3009037,665,378)
    {
    link(onTrue,13550:doStop,[(710,384)(710,367)(597,367)(597,391)])
    link(onFalse,7550175:doWork3,[(732,391)])
    link(Op2,6138706:Var3,[(678,257)])
    }
    Add(GetDataEx,11109849,462,266)
    {
    link(Data,16047238:Text,[])
    }
    Add(GetDataEx,9820092,525,266)
    {
    link(Data,1562172:Text,[])
    }
    Add(HubEx,7103391,357,245)
    {
    link(onEvent,14642933:doClear,[(711,251)(711,293)])
    }
    Add(GetDataEx,6138706,651,252)
    {
    link(Data,4392691:Text,[])
    }
    Add(HubEx,4841251,651,336)
    {
    link(onEvent,16205645:doString,[])
    }
    Add(HubEx,7550175,728,280)
    {
    link(onEvent,14642933:doAdd,[])
    }
    Add(GetDataEx,12324541,588,252)
    {
    link(Data,749672:Text,[])
    }
    Add(Label,10456924,322,196)
    {
    Left=210
    Top=30
    Width=17
    Height=17
    Caption="To"
    }
    Add(Edit,7052239,392,203)
    {
    Left=235
    Top=30
    Text="-1"
    DataType=2
    }
    Add(DoData,7548562,392,301)
    {
    link(onEventData,6017137:doTo,[])
    link(Data,4622793:Var2,[])
    }
    Add(DoData,8766197,413,406)
    {
    link(onEventData,13550:doTo,[])
    link(Data,4622793:Var3,[(419,271)])
    }
    Add(GetDataEx,4622793,392,266)
    {
    link(Data,7052239:Text,[])
    }
    Add(Memo,14642933,756,280)
    {
    Left=5
    Top=55
    Width=465
    Height=225
    ScrollBars=2
    }

    Замечания
    Обновление элемента: [svn]Str_Enum.pas[/svn]
    BB-code статьи для вставки
    Всего комментариев: 0
    (комментарии к статье еще не добавлены)
    Комментарий
    ...