Вверх ↑
Пакеты 
HiAsm4
Windows 
Компоненты 
Cтpoки 
Поиск - BlockFind

BlockFind
Краткое описание
   Компонент предназначен для осуществления поиска текста между двумя строками или символами
Параметры
  • IncludeBlock - Определяет, вставлять ли символы начала и конца блока в найденную строку
  • Delete - Определяет действие над найденным блоком. True - найденный блок удаляется при пустом поле ReplaceStr, или заменяется в противном случае. False - ничего не делать
  • ReplaceStr - Содержит строку, на которую будет заменен найденный блок (используется только при Delete = True)
  • UserReplace - True - Разрешает пользовательскую замену найденного блока, используя внешнее поле Replace (используется только при Delete = True)
  • StartBlock - Определяет символы начала блока
  • EndBlock - Определяет символы конца блока
  • Методы
  • doSearch - Начинает поиск блоков в строке
  • doStop - Останавливает поиск/замену до возможного проведения замены
  • События
  • onSearch - Событие происходит всякий раз при нахождении очередного блока и выдает в поток найденный блок
  • onEndSearch - Событие происходит всякий раз при завершении поиска
  • Данные
  • Text - Задаёт строку, в которой ищутся блоки
  • Replace - При замене блока это поле проверяется на равенство 0, и если оно не равно 0, то блок заменяется на строку ReplaceStr, иначе - нет
  • Примеры
    Пример использования компонента BlockFind
    
    Add(MainForm,2953706,98,112)
    {
    Caption="Пример использования BlockFind"
    }
    Add(Edit,12980779,154,112)
    {
    Left=140
    Top=80
    Width=130
    Text="/HiAsm/ /Super/ /FPC/"
    }
    Add(Button,517459,98,168)
    {
    Left=170
    Top=130
    link(onClick,2727975:doSearch,[])
    }
    Add(BlockFind,2727975,154,168)
    {
    StartBlock="/"
    EndBlock="/"
    link(onSearch,426554:doMessage,[])
    link(Text,12980779:Text,[])
    }
    Add(Message,426554,217,168)
    {
    }


    Пример использования компонента BlockFind для замены найденного блока на пустую строку
    
    Add(MainForm,2953706,133,126)
    {
    Caption="Пример использования BlockFind"
    }
    Add(Edit,10967798,196,126)
    {
    Top=65
    Width=390
    Text="<section id="51.2.13">, <section id="51.2.14">,...,<section id="51.3.18">"
    }
    Add(Button,9707244,133,182)
    {
    Left=168
    Top=110
    link(onClick,6131048:doSearch,[])
    }
    Add(BlockFind,6131048,196,182)
    {
    Delete=0
    StartBlock=" id=""
    EndBlock="""
    link(onEndSearch,8459519:doText,[])
    link(Text,10967798:Text,[])
    }
    Add(Edit,8459519,259,189)
    {
    Top=155
    Width=390
    Text="<section id="51.2.13">, <section id="51.2.14">,...,<section id="51.3.18">"
    }



    Пример использования точки doReplaceStr
    
    Add(MainForm,2953706,252,168)
    {
    Width=334
    Height=241
    Caption="Пример использования BlockFind"
    Position=1
    }
    Add(BlockFind,6131048,378,252)
    {
    Delete=0
    UserReplace=0
    StartBlock="["
    EndBlock="]"
    Point(doReplaceStr)
    link(onSearch,248684:doGetIndex,[])
    link(onEndSearch,1873054:doText,[(427,265)(427,234)(338,234)(338,174)])
    link(Text,1873054:Text,[(384,219)(356,219)])
    link(Replace,13547347:Value,[(391,219)(412,219)])
    }
    Add(Button,9707244,301,252)
    {
    Left=123
    Top=155
    link(onClick,6131048:doSearch,[])
    }
    Add(Memory,13547347,406,161)
    {
    Default=Integer(1)
    }
    Add(StrList,248684,455,210)
    {
    Strings=#6:[дата]|7:[автор]|
    Point(doGetIndex)
    Point(onGetIndex)
    link(onGetIndex,9452056:doEvent,[])
    }
    Add(Memo,1873054,350,147)
    {
    Left=30
    Top=15
    Width=250
    Height=110
    Strings=#6:Текст |0:|17:_________________|0:|25:документ составлен [дата]|14:автор: [автор]|
    }
    Add(IndexToChanel,9452056,504,217)
    {
    link(onEvent1,5251316:doData,[])
    link(onEvent2,4771249:doData,[])
    }
    Add(Time,3783188,644,168)
    {
    Format="D.M.Y"
    }
    Add(DoData,5251316,644,217)
    {
    link(onEventData,13736665:doWork2,[(707,223)(707,315)])
    link(Data,3783188:FormatTime,[])
    }
    Add(DoData,4771249,574,224)
    {
    link(onEventData,13736665:doWork1,[(627,230)])
    link(Data,1915076:Var,[])
    }
    Add(GlobalVar,1915076,574,189)
    {
    Name="автор"
    Data=String(Иванов И.И.)
    }
    Add(HubEx,13736665,623,309)
    {
    Angle=2
    link(onEvent,6131048:doReplaceStr,[(366,315)(366,265)])
    }


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