Бесполезные строки на Visual Basic
В номере вашей газеты от 30.11.1999 я прочитал интересную статью "Раскладка клавиатуры. Даешь сервис!". Скажу вам честно, что идея с автоматической заменой символов мне понравилась. Не понравилось только одно: очень длинный текст исходной программы. Зачем писать столько лишнего текста, когда данный алгоритм можно реализовать намного проще. Вместо Ваших 65-ти строк, целесообразней будет применить мои 35 строк. Вот они:
(c) Компьютерная газета
Sub кириллица()
Dim StartZam
Dim EndZam
Dim StrZam$
Dim StrRez$
Dim NumTec
Dim TecChar$
Dim i
Dim wal$
Dim mam$
wal$ = "~QWERTYUIOP{}ASDFGHJKL:" + Chr(34)
wal$ = wal$ + "ZXCVBNM<>?'qwertyuiop[]asdfghjkl;'zxcvbnm,./"
mam$ = "ЕЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,ейцукенгшщзхъфывапролджэячсмитьбю."
StartZam = WordBasic.getselstartpos()
EndZam = WordBasic.getselendpos()
If StartZam = EndZam Then
WordBasic.MsgBox "Выделение не определено.", "Ошибка!"
Exit Sub
Else
StrZam$ = WordBasic.[selection$]()
End If
StrRez$ = ""
i = 1
While i <= Len(StrZam$)
TecChar$ = Mid(StrZam$, i, 1)
NumTec = InStr(wal$, TecChar$)
If NumTec <> 0 Then
StrRez$ = StrRez$ + Mid(mam$, NumTec, 1)
Else: StrRez$ = StrRez$ + TecChar$
End If
i = i + 1
Wend
Selection.LanguageID = wdRussian
WordBasic.Insert StrRez$
End Sub
Dfktynby Rerjktd
(c) Компьютерная газета
Sub кириллица()
Dim StartZam
Dim EndZam
Dim StrZam$
Dim StrRez$
Dim NumTec
Dim TecChar$
Dim i
Dim wal$
Dim mam$
wal$ = "~QWERTYUIOP{}ASDFGHJKL:" + Chr(34)
wal$ = wal$ + "ZXCVBNM<>?'qwertyuiop[]asdfghjkl;'zxcvbnm,./"
mam$ = "ЕЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,ейцукенгшщзхъфывапролджэячсмитьбю."
StartZam = WordBasic.getselstartpos()
EndZam = WordBasic.getselendpos()
If StartZam = EndZam Then
WordBasic.MsgBox "Выделение не определено.", "Ошибка!"
Exit Sub
Else
StrZam$ = WordBasic.[selection$]()
End If
StrRez$ = ""
i = 1
While i <= Len(StrZam$)
TecChar$ = Mid(StrZam$, i, 1)
NumTec = InStr(wal$, TecChar$)
If NumTec <> 0 Then
StrRez$ = StrRez$ + Mid(mam$, NumTec, 1)
Else: StrRez$ = StrRez$ + TecChar$
End If
i = i + 1
Wend
Selection.LanguageID = wdRussian
WordBasic.Insert StrRez$
End Sub
Dfktynby Rerjktd
Компьютерная газета. Статья была опубликована в номере 50 за 1999 год в рубрике программирование :: разное