IczEdit падает в штопор при замене текста

Тема в разделе "WASM.BEGINNERS", создана пользователем God_Father, 19 апр 2008.

  1. God_Father

    God_Father New Member

    Публикаций:
    0
    Регистрация:
    5 авг 2007
    Сообщения:
    99
    IczEdit падает в штопор при замене текста
    В окно Replace вводим
    Find What: aaa
    Replace with: aaa
    Естественно, если в ричэдите есть этот текст

    Где Айзелон ошибся? Тутор №35.
     
  2. 10110111

    10110111 New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2006
    Сообщения:
    319
    Адрес:
    Санкт-Петербург
    Код (Text):
    1.                 .while TRUE
    2.                     invoke SendMessage,hwndRichEdit,EM_FINDTEXTEX,FR_DOWN,addr findtext
    3.                     .if eax==-1
    4.                         .break
    5.                     .else
    6.                         invoke SendMessage,hwndRichEdit,EM_EXSETSEL,0,addr findtext.chrgText
    7.                         invoke SendMessage,hwndRichEdit,EM_SETTEXTEX,addr settext,addr ReplaceBuffer
    8.                     .endif
    9.                 .endw
    Этот код ищет текст до полного исчезновения искомой строки. :)

    Следует как-то проверять, какой раз проходит цикл по тексту.
     
  3. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    Проще, наверное, исключить такой вариант в самом начале поиска.

    Off topic:
    Я помню как в одной из первых версий Турбо С падал компилятор при встрече такого кода:
    Код (Text):
    1. #define A A
     
  4. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    Ага... Только лучше не исключать подобный вариант, а модифицировать findtext.chrg в процессе поиска.

    Ибо все варианты не исключить:
    Find what: aaa
    Replace with: aaaaaaaa
     
  5. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    Такое падать не должно вообще-то...
    Код (Text):
    1. Before replacement:
    2. ABCDAAAMORE
    3.  
    4. After replacement:
    5. ABCDAAAAAAMORE
    6.           |
    7.           +-- Begin next search from here