Ф-ия переколдовки (translit)

  • Автор темы LIGHT
  • Дата начала
Статус
Закрыто для дальнейших ответов.
L

LIGHT

#1
Не у кого не завалялся ли сей функционал, нужно на LS кириллические буковки перевратить в их аналог на латыне

Заранее спасибо
 
L

LIGHT

#4
Хм. Это на собачке, аналог на лотусе работает только по символьно
АБВГДЖЗИКЛМНОПРСТ... Ю
Соответственно заморочка начнется там где аналог есть 2 знака YU CH ZH
Значит это должет быть два массива в 64 элемента каждый (т.к. регистр важен)
А дальше уже работать с элементами массива.
Вот и справшиваю, может кто имеет уже рабочую ф-ию.
 
Y

Yakov

#6
Evaluate :)

Пишу прямо здесь.
Код:
Public Function translit(s As String) As String
Dim cyr As Variant
Dim lat As Variant
Dim conv List As String
Dim i As Integer
Dim c As String
Dim result As String
cyr = Split("А,Б,В,Г,Д,Е,Ё", ",")
lat = Split("A,B,V,G,D,E,Yo", ",")
For i = 0 To Ubound(cyr)
conv(Cstr(cyr(i))) = Cstr(lat(i))
Next
For i = 1 To Len(s)
c = Mid$(s, i, 1)
If Iselement(conv(c)) Then
result = result + conv(c)
Else
result = result + c
End If
Next
translit = result
End Function
 

Kee_Keekkenen

Well-known member
05.09.2006
639
4
#7
это быстрее
Код:
StrReplace=Implode(Split(stroka,symbolA),symbolB)
чем посимвольная замена
 
Y

Yakov

#8
И правда быстрее. На 10%. 750 мс против 828 мс на тексте в 18 тыс. символов.
 
Статус
Закрыто для дальнейших ответов.