• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Изменение данных в столбце

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

Nerus

Добрый день гаспода Знатоки.
Помогите плз решить одну проблемму, я что то не как не догоняю как это по проще сделать хотя и сложно пока не знаю как сделать.
Есть БД (в Access или Excel) и столбец вот в такой форме:
1(4),1(66),1(67),1(69)
1(7),1(122)
1(5),1(122)
1(5),1(122)
1(6),1(122)
1(8),3(71),1(72),2(73),2(75),1(122)
1(2),1(122)
1(4),1(66),1(67),1(69),1(70),1(122)
1(3),1(122)
1(2),1(122)
1(5),1(122)
1(1),1(122)
1(5),1(122)
1(4),2(65),2(67),1(23),1(122)
1(5),1(122)
1(7),1(122)
1(6),1(122)
мне нужно цыфры в скобках заменить (для репорта) соответствующими словами.
Каждой цыфре в скобках соответствует определённая продукция, а цыфры без скобок это количество этой продукции.
Извените если что не грамотно, у меня с русским языком не очень хорошо .

Заранее спасибо
 
B

Barmutik

Без предобработки я думаю это будет сложно .. а если перед построением отчёта парсить данные то задача решается достаточно легко...

В Экселе нужно написать кусочек кода на VBA.. а как сдлать это в аксесе перед построением отчёта ... пусть раскажут те кто его пользует :)
 
S

Shtirlitz

А в каком виде ты бы хотел иметь результат?
 
S

Shtirlitz

Начнем с решения задачки поменьше:
Вижу , что имеется разделитель "," :1(4),1(66),1(67),1(69)
В VBA есть функция instr("1(4),1(66),1(67),1(69)",","), Которая вернет позицию ","
Если организовать цикл, то эта строка , разобьется на лексемы:

1(4)
1(66)
1(67)
1(69)

В каждой лексеме теперь будем искать "(" по такому же принципу , но учтем ,что последний символ в лексеме ")" , применим функцию Mid и Len
Для 1й лексемы имеем 4

Далее , я полагаю имеется словарь (dictionary),в котором каждой цифре соответствует название предприятия,например, "Toshiba"
Меняем (4) на "Toshiba".
Имеем 1 "Toshiba".
И т. д.
Успехов
 
N

Nerus

Спасибо Shtirlitz
Я начинаю понимать
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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