2015-04-13 2 views
0

Spell Check - приложение по умолчанию в Linux. С помощью этого приложения мы можем проверить правописание текстового поля, пока пользователи вводят данные?Приложение Linux в livecode

+0

проверка орфографии не всегда по умолчанию во всех дистрибутивах Линукс ... – Dason

+0

С помощью Spell Check приложения, мы можем проверить правильность написания текстового поля в то время как пользователи вводят данные? – Shalu

ответ

1

Некоторые (или многие?) Дистрибутивы Linux содержат утилиту командной строки, которая называется spell. Если вы запустите это со словами в качестве параметров, вам нужно нажать return второй раз, но если вы используете файл в качестве параметра, вам не нужно снова нажать return. Это означает, что решение может быть:

  1. написать текст поля в файл
  2. запустить утилиту командной строки из shell функции LiveCode с файлом в качестве параметра
  3. разобрать результат, возвращаемый shell функция

Прежде чем вы попробуете это, откройте терминал в Linux и введите spell. Нажмите enter, чтобы узнать, распознана ли команда. Если да, то сценарий ниже должен работать.

Этот сценарий записывает текст поля в файл, выполняет проверку орфографии файла и возвращает неверные слова в LiveCode. Я не тестировал скрипт, и вам, возможно, придется немного его подстроить.

function spellCheck theText 
    // works on Linux only 
    if the platform is "Linux" then 
      // remove everything that isn't a word 
      put replaceText(theText,"[^\w]","") into myWords 
      // write clean data to a temporary file 
      put the tempName into myTempFile 
      put myWords into url ("file:" & myTempFile) 
      // call spell with shell 
      put "spell" && myTempFile into myShell 
      // only return the incorrect words 
      put line 2 to -1 of shell(myShell) into myCorrections 
      // return the incorrect words to calling handler 
      return myCorrections 
    else 
      // this isn't Linux 
      return "error" 
    end if 
end spellCheck 

//theField is the short name of a field 
on checkField theField 
    // call above function 
    put spellCheck(the text of fld theField) into myWords 
    // myWords should now contain the incorrect words 
    if myWords is not "error" then 
      lock screen 
      // parse incorrect words and mark them in the field 
      repeat with x = 1 to number of words of field theField 
       if myWord is among the lines of myWords then 
        // an incorrect word has been found and is marked red 
        set the textColor of word x of fld theField to red 
       end if 
      end repeat 
      unlock screen 
    end if 
end checkField 

Использование: checkField shortNameOfTheField

+0

Спасибо @Mark. Не могли бы вы объяснить, что здесь происходит. – Shalu

+0

Я добавил и ознакомлюсь с ответом и комментариями к коду. – Mark

+0

Спасибо @Mark. Я использую ispell, тогда я, как я изменяю этот код – Shalu

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