powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите написать функцию с REPLACE
3 сообщений из 3, страница 1 из 1
Помогите написать функцию с REPLACE
    #38715729
База товаров сделана в MS ACCESS. Стоит задача из названия товара сделать человекопонятный адрес для сайта.

например название "Name" в таблице товаров "Tovary"

Новый телевизор Тошиба 2,5VCCR 73" арт:3215

должно превратиться в адрес "URL"

www.novy-televizor-toshiba-2_5vccr-73-art-3215.html

По идее это можно было бы сделать с помощью REPLACE и таблицы замен с полями What и Replacement из которой бы цикл брал значения и заменял бы знаки но уже в новом поле...

Только мои познания VBA не позволяют с нуля написать эту функцию, поэтому прошу помощи.

ЗЫ: В дальнейшем эта функция может использоваться и для "причесывания" корявых названий, дальше перезаточит, думаю, смогу.

ЗЫ: а может есть где готовый пример, только я в поиске не нашел.
...
Рейтинг: 0 / 0
Помогите написать функцию с REPLACE
    #38715860
Фотография PA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Ерошко,

Транслитерация
...
Рейтинг: 0 / 0
Помогите написать функцию с REPLACE
    #38716154
в общем работает эта конструкция

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
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



Но с таблицей замен было бы лучше...
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите написать функцию с REPLACE
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]