• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Транслит

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

Hryv

У меня есть строка содержащая 2 прописные буквы, которые одинаково выглядят в кирилице и латинице.
И справочник с таким же реквизитом
По этой строке надо найти элемент
Получается, в общем случае, надо сделать 4 поиска: Для "ЛЛ", "ЛК", "КЛ" и "КК".
Проблема в том, что исходная строка сама может быть в каждом из этих 4 вариантов и как-то не хочется писать "в лоб" алгоритм перевода ее в 3 других варианта.

Короче говоря, хотелось бы иметь примерно такую функцию
Транслит(Буква, КЛ) // КЛ = 1, вернет в кирилице, КЛ = 2, вернет в латинице

Если есть у кого, поделитесь, плиз
 
P

Pro

самое простое и надежное тупой перевод посимвольно в один формат (стандарт).
 
P

puh14

КодСимв() / симв() ? Только от перебора строчки посимвольно опять-же не обойтись.

Хочешь извращенческий вариант? - по сути у тебя код символа - это цифра. Перебираешь строку по которой ищешь (просто быстрее чем всё в справочниках перебирать) и если суммы кодов двух стоящих рядом букв (кодСимв()) попадают в 16 вариантов меняешь эти символы (Симв()) на нужные тебе.
 
H

Hryv

а почему 16 вариантов
я насчитал 11 букв у которых начертания совпадают
получается надо делать примерно так
для буквы 'А'
Код:
Код = КодСимв(Буква);
Если (Код = 65) или (Код = 192) Тогда
Возврат ?(КЛ=1, Симв(192), Симв(65));
КонецЕсли;

Впринципе для 11 букв не проблема так написать и будет у меня нужная функция

А перебирать строку мне не надо, реквизит состоит только из 2 букв и его просто надо сравнить с 4 вариантами

Добавлено:
самое простое и надежное тупой перевод посимвольно в один формат (стандарт).
Можно и так
образец и реквизит привести, например, к латинице, а потом сравнить
так даже явно лучше, чем 4 раза сравнивать
 
P

puh14

16 - это для двухбуквенных строчек во всех вариантах. Я то думал что тебе надо именно двухбуквенные варианты "переводить".
 
H

Hryv

мне и надо двухбуквенные, но почему 16 вариантов я не догоняю
если подходить с этой стороны, то как минимум 484 варианта существует
но сумма кодов не будет уникальной
например, AM (65+77) = CK (67+75)
 
P

puh14

16 - количество комбинаций четырех символов в двухсимвольной строчке. Ну как в начальном примере.

но сумма кодов не будет уникальной
например, AM (65+77) = CK (67+75)

Жаль - а было-бы красиво. ;-)
 
H

Hryv

16 - количество комбинаций четырех символов в двухсимвольной строчке. Ну как в начальном примере

тогда понятно, только символов не 4, а 22 :)

но приемлимое решение уже найдено, осталось реализовать
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!