Помогите написать функцию с REPLACE - VB
Формулировка задачи:
База товаров сделана в MS ACCESS. Стоит задача из названия товара сделать человекопонятный адрес для сайта.
например название "Name" в таблице товаров "Tovary"
должно превратиться в адрес "URL"
По идее это можно было бы сделать с помощью REPLACE и таблицы замен с полями What и Replacement из которой бы цикл брал значения и заменял бы знаки но уже в новом поле...
Только мои познания VBA не позволяют с нуля написать эту функцию, поэтому прошу помощи.
ЗЫ: В дальнейшем эта функция может использоваться и для "причесывания" корявых названий, дальше перезаточит, думаю, смогу.
ЗЫ: а может есть где готовый пример, только я в поиске не нашел.
например название "Name" в таблице товаров "Tovary"
должно превратиться в адрес "URL"
По идее это можно было бы сделать с помощью REPLACE и таблицы замен с полями What и Replacement из которой бы цикл брал значения и заменял бы знаки но уже в новом поле...
Только мои познания VBA не позволяют с нуля написать эту функцию, поэтому прошу помощи.
ЗЫ: В дальнейшем эта функция может использоваться и для "причесывания" корявых названий, дальше перезаточит, думаю, смогу.
ЗЫ: а может есть где готовый пример, только я в поиске не нашел.
Решение задачи: «Помогите написать функцию с REPLACE»
textual
Листинг программы
Public Function Transliteration(sWord, sLangCode) Dim n, s, z Transliteration = Trim(sWord & "") If Transliteration = "" Then Exit Function Dim aRL(62, 1) ' кириллица - латиница aRL(0, 0) = "а": aRL(0, 1) = "a" aRL(1, 0) = "б": aRL(1, 1) = "b" aRL(2, 0) = "в": aRL(2, 1) = "v" aRL(3, 0) = "г": aRL(3, 1) = "g" aRL(4, 0) = "д": aRL(4, 1) = "d" aRL(5, 0) = "е": aRL(5, 1) = "e" aRL(6, 0) = "ё": aRL(6, 1) = "jo" aRL(7, 0) = "ж": aRL(7, 1) = "zh" aRL(8, 0) = "з": aRL(8, 1) = "z" aRL(9, 0) = "и": aRL(9, 1) = "i" aRL(10, 0) = "й": aRL(10, 1) = "j" aRL(11, 0) = "к": aRL(11, 1) = "k" aRL(12, 0) = "л": aRL(12, 1) = "l" aRL(13, 0) = "м": aRL(13, 1) = "m" aRL(14, 0) = "н": aRL(14, 1) = "n" aRL(15, 0) = "о": aRL(15, 1) = "o" aRL(16, 0) = "п": aRL(16, 1) = "p" aRL(17, 0) = "р": aRL(17, 1) = "r" aRL(18, 0) = "с": aRL(18, 1) = "s" aRL(19, 0) = "т": aRL(19, 1) = "t" aRL(20, 0) = "у": aRL(20, 1) = "u" aRL(21, 0) = "ф": aRL(21, 1) = "f" aRL(22, 0) = "х": aRL(22, 1) = "kh" aRL(23, 0) = "ц": aRL(23, 1) = "c" aRL(24, 0) = "ч": aRL(24, 1) = "ch" aRL(25, 0) = "ш": aRL(25, 1) = "sh" aRL(26, 0) = "щ": aRL(26, 1) = "csh" aRL(27, 0) = "ъ": aRL(27, 1) = "'" aRL(28, 0) = "ы": aRL(28, 1) = "y" aRL(29, 0) = "ь": aRL(29, 1) = "'" aRL(30, 0) = "э": aRL(30, 1) = "eh" aRL(31, 0) = "ю": aRL(31, 1) = "ju" aRL(32, 0) = "я": aRL(32, 1) = "ja" aRL(33, 0) = ".": aRL(33, 1) = "" aRL(34, 0) = ",": aRL(34, 1) = "-" aRL(35, 0) = " ": aRL(35, 1) = "-" aRL(36, 0) = "/": aRL(36, 1) = "-" aRL(37, 0) = "є": aRL(37, 1) = "e" aRL(38, 0) = "ї": aRL(38, 1) = "i" aRL(39, 0) = "'": aRL(39, 1) = "" aRL(40, 0) = "--": aRL(40, 1) = "-" aRL(41, 0) = "(": aRL(41, 1) = "" aRL(42, 0) = ")": aRL(42, 1) = "" aRL(43, 0) = ">": aRL(43, 1) = "" aRL(44, 0) = "<": aRL(44, 1) = "" aRL(45, 0) = "|": aRL(45, 1) = "" aRL(46, 0) = "\": aRL(46, 1) = "" aRL(47, 0) = "+": aRL(47, 1) = "" aRL(48, 0) = "=": aRL(48, 1) = "" aRL(49, 0) = "*": aRL(49, 1) = "" aRL(50, 0) = "[": aRL(50, 1) = "" aRL(51, 0) = "]": aRL(51, 1) = "" aRL(52, 0) = "{": aRL(52, 1) = "" aRL(53, 0) = "}": aRL(53, 1) = "" aRL(54, 0) = ";": aRL(54, 1) = "" aRL(55, 0) = ":": aRL(55, 1) = "" aRL(56, 0) = "%": aRL(56, 1) = "" aRL(57, 0) = "!": aRL(57, 1) = "" aRL(58, 0) = "&": aRL(58, 1) = "" aRL(59, 0) = "?": aRL(59, 1) = "" aRL(60, 0) = "#": aRL(60, 1) = "" aRL(61, 0) = "@": aRL(61, 1) = "" aRL(62, 0) = "--": aRL(62, 1) = "-" For n = 0 To 62 s = aRL(n, 0) z = aRL(n, 1) Transliteration = Replace(Transliteration, s, z) ' строчные буквы Transliteration = StrConv(Transliteration, vbLowerCase) ' все в нижний регистр Next End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д