Как рациональнее определить, содержит ли строка русские или только английские символы. Вот мой вариант Code s$ = 'Русскоязычная строка' L = LEN(s$) b = FALSE For i = 1 To L c$ = strget(s$, i) c = ord(c$) if (c >= 192) then b = TRUE Break() End Next i if (b) Then message("Русские символы есть", "") Else message("Русских символов нет", "") End Однако, как справедливо заметил Rush, при длине строки более 33 символов, будет быстрее использовать следующий алгоритм: Code cyr$='о;е;и;а;н;е;с;р;в;л;к;м;д;п;у;ё;я;ы;г;б;з;ь;ч;й;х;ж;ю;ц;ш;щ;э;ф;ъ;' str$='проуйDFGEзытсCVBNS:\АОПЛКШЩЦЗВСЬМ' strtmp$=LOW(str$) For i=1 To GetArrayNum(cyr$,;) char$=GetArrayItem(cyr$,;,i) If (POS(char$,strtmp$)>0) Then Message("Кириллица есть","") strtmp$='' Break() End Next i Максимум проходов цикла при такой проверке - 33, при любой длине текста. Кстати, элементы шаблона расположены по частотности букв. Все эти способы легко использовать также для проверки строки на наличие любых других символов (непечатных и др.), нужно только изменить условие...
У меня 17 Мбит, а Яндекс - лох
|