Помогите написать функцию с REPLACE - VB

Узнай цену своей работы

Формулировка задачи:

База товаров сделана в MS ACCESS. Стоит задача из названия товара сделать человекопонятный адрес для сайта.
например название "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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5
Похожие ответы