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

Тема в разделе "Lotus - Программирование", создана пользователем LIGHT, 7 апр 2008.

Статус темы:
Закрыта.
  1. LIGHT

    LIGHT Гость

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

    Заранее спасибо
     
  2. Yakov

    Yakov Гость

    Репутация:
    0
    @ReplaceSubString
     
  3. morpheus

    morpheus скриптописец

    Репутация:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    3.915
    Симпатии:
    1
    оригинальный LS
     
  4. LIGHT

    LIGHT Гость

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

    morpheus скриптописец

    Репутация:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    3.915
    Симпатии:
    1
    ну тут мона зайюзать ка написанно тут
    Код:
     StrReplace=Implode(Split(stroka,symbolA),symbolB)
    кол-во символов не будет иметь значения
     
  6. Yakov

    Yakov Гость

    Репутация:
    0
    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
     
  7. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Репутация:
    0
    Регистрация:
    5 сен 2006
    Сообщения:
    639
    Симпатии:
    6
    это быстрее
    Код:
    StrReplace=Implode(Split(stroka,symbolA),symbolB)
    чем посимвольная замена
     
  8. Yakov

    Yakov Гость

    Репутация:
    0
    И правда быстрее. На 10%. 750 мс против 828 мс на тексте в 18 тыс. символов.
     
  9. morpheus

    morpheus скриптописец

    Репутация:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    3.915
    Симпатии:
    1
    Yakov
    опытным путём или с потолка?
     
  10. Yakov

    Yakov Гость

    Репутация:
    0
    Morpheus
    Конечно, опытным.
     
  11. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Репутация:
    0
    Регистрация:
    5 сен 2006
    Сообщения:
    639
    Симпатии:
    6
    проверено опыт:)м
     
Загрузка...
Похожие Темы - ия переколдовки (translit)
  1. [ixTor]
    Ответов:
    2
    Просмотров:
    48
  2. Мария Смирнова
    Ответов:
    0
    Просмотров:
    114
  3. Мария Смирнова
    Ответов:
    0
    Просмотров:
    63
  4. pack
    Ответов:
    5
    Просмотров:
    61
  5. Vander
    Ответов:
    0
    Просмотров:
    439
Статус темы:
Закрыта.

Поделиться этой страницей