2015-04-10 3 views
0

Я хочу поймать контент между двумя символами $. Например: - это $ only $ пример $ so $ reply $ fast $. Здесь я хочу хранить текст между долларами (только, так и быстро) в массив. При использовании этого кода для ловли. Но он ловит (только, пример, так, отвечайте, быстро). Мне нужно «только», «так» и «быстро».Как получить контент в livecode

replace "\$" with "\XXdollarXX" in field "MytextField" 
        put the text of field "MytextField" into ss 


repeat with i = 0 to the number of chars in ss 
      if char i of ss contains "$" then 
       repeat with x = i+1 to the number of chars in ss 
        if char x of ss contains "$" then 
         --answer x 
         put x into Lpos 
         put char i to Lpos of ss into jar 
         answer jar 
         put Lpos into i 

        end if 
       end repeat 
     end if 
end repeat 

ответ

0

Если вы изучите свой код при переходе через него, вы увидите, что это должно работать именно так. Однако функция «смещения» может использоваться в цикле и содержит параметр «chars to skip». Постоянно обновляя этот параметр, и принимая во внимании, что только каждый второй экземпляр уместен, вы можете получить текст между парами «$», как:

  • между примером 1 и 2
  • между примером 3 и и т. д.

Сделайте кнопку и поле. Поместите некоторый текст в поле, посыпанное «$» для тестирования. В сценарии кнопок:

on mouseUp 
    put 0 into charsToSkip 
    repeat until charsToskip > the length of fld 1 
     if the optionKey is down then exit to top --YOU WILL NEED THIS RIGHT NOW... 
     get offset("$",fld 1,charsToSkip) 
     add it to charsToSkip 
     put charsToSkip & return after accum 
    end repeat 
end mouseUp 

Я оставляю его вам, чтобы добавить возможность правильно выйти из этой петли. Пройдите через обработчик, и вы увидите значение в создании накопителя так, как я упоминал.

Крейг Ньюман

Смежные вопросы