Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Array.au3>
- ; Замена в результатах ошибок слов одно-двухбуквенные части слов
- ; (\r\n)([А-Яа-яЁё°±]{1,2}\r\n)
- ; \1
- ; Удалить дубликаты слов друг за другом
- ; (\r\n)(.*?\r\n)\2
- ; \1\2
- $sText=ClipGet()
- ; Удалить одно-двухбуквенные части слов
- $sText = StringRegExpReplace($sText, '(?<=\r\n)([А-Яа-яЁё°±]{1,2}\r\n)', '')
- ; Удалить дубликаты слов
- $sText = _StringUnique($sText)
- ; Удалить слова по списку
- $sOrfo_ignor = FileRead(@ScriptDir & '\список_допустимых_слов.txt')
- $aOrfo_ignor = StringSplit($sOrfo_ignor, @CRLF)
- For $i = 1 To $aOrfo_ignor[0]
- $sText=StringReplace($sText, @LF & $aOrfo_ignor[$i] & @CR, '')
- Next
- ; Удалить пустые строки
- $sText=StringRegExpReplace($sText, '(\r\n|\r|\n){2,}', '\1')
- ; Сортировать список
- ; $aList=StringSplit($sText, @CRLF)
- ; _ArraySort($aList, 0, 1, 0, 0)
- ; $sText = ''
- ; For $i = 1 To $aList[0]
- ; $sText &= $aList[$i] & @CRLF
- ; Next
- ; Вывод результата
- ClipPut($sText)
- Func _StringUnique($sText, $sep = @CRLF, $sep2 = '', $all = 1)
- Local $i, $k, $aText, $s, $Trg = 0
- If $all And $sep2 == '' Then $sep2 = $sep
- If StringInStr($sText, '[') And $sep <> '[' Then
- For $i = 0 To 255
- $s = Chr($i)
- If Not StringInStr($sText, $s) Then
- If StringInStr($sep, $s) Then ContinueLoop
- $sText = StringReplace($sText, '[', $s)
- $Trg = 1
- ExitLoop
- EndIf
- Next
- If Not $Trg Then Return SetError(1, 0, '')
- EndIf
- $aText = StringSplit($sText, $sep, $all)
- Assign('/', 2, 1)
- $k = 0
- $sText = ''
- For $i = 1 To $aText[0]
- If Not IsDeclared($aText[$i] & '/') Then
- Assign($aText[$i] & '/', 0, 1)
- $sText &= $aText[$i] & $sep2
- $k += 1
- EndIf
- Next
- If $k = 0 Then Return SetError(2, 0, '')
- If $Trg Then $sText = StringReplace($sText, $s, '[')
- Return SetError(0, $k, StringTrimRight($sText, StringLen($sep2)))
- EndFunc ;==>_StringUnique
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement