Не справляюсь, справка и поиск по форуму не помогли. Есть таблица, где в первой ячейке наименование и номер. Наименование может состоять как из одного, так и из нескольких слов. Номер может состоять из цифр, букв, вот такой штуки "-", номер всегда больше 4х символов. Необходимо отделать номер от наименования, тоесть разбить наименование и номер по разным столбцам. Я уже догадываюсь что придется использовать что-то из вкладки RegExpr, но пока что не могу понять логику, по которой все это можно разделять.
Вот некоторые примеры того что нужно разделить:
Вот таких номеров большинство:
Шрус внут передний левый 705401359
Шрус внут передний правый 705401357
При чем он может быть записан вот так:
Суппорт задний 705600859 А
еще много таких:
Блок газа 28P-26250-01-00
Может быть еще записан второй номер, его можно выкинуть, а можно оставить
Втулка стабилизатора 3B4-2386G-00-00 92139-0023
таких:
Прокладка ГБЦ 11141-21H00
Прокладка генератора 1000к3-8 11483-18G00
Остальные номера наименваний вообще никакой логике не поддаются, для них буду делать возможность ручного переноса.
Еще важный момент - таблица импортируется из экселевского файла через OLEDB, вот схема:
code_32174.txt
В идеале хотелось бы сделать чтоб в процессе добавления строк в таблицу, наименование разбивалось на наименование и номер, чтоб не делать две таблицы, а добавлять сразу с выведеным в дополнительную колонку номером.
Этот топик читают: Гость
Ответов: 257
Рейтинг: -2
|
|||
карма: 0 |
| ||
файлы: 1 | code_32174.txt [2KB] [196] |
Ответов: 5446
Рейтинг: 323
|
|||
mudfactory, разбивай по пробелу, номером считай последнюю часть. Если в предпоследнем блоке только цифры и дефис, то скорее всего это тоже номер. Всё, что останется после "отсева" номера - название. Без ручной работы не обойтись (например "3B4-2386G-00-00" алгоритм присоединит к имени), но думаю бОльшую часть работы автомат за тебя сделает.
|
|||
карма: 1 |
|
Ответов: 257
Рейтинг: -2
|
|||
по пробелу не получится, название может быть из нескольких слов. Жаль нет компонента типа RegExpr который по маске разбивать будет
|
|||
карма: 0 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 4 раз(а), последний 2025-01-10 20:43:41 |
|||
карма: 0 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Какое-то засилие IP-шников сегодня
|
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
nesco, 85-250-61-54.bb.netvision - это я. Выбрасывает регулярно. Примерно каждые 30 минут.
Попутно вопрос. При использовании компонентов из вкладки Data Source как получить Handle БД ? (лень нырять в коды) |
|||
карма: 25 |
| ||
Голосовали: | mudfactory |
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Tad писал(а): это яЗато в другом топике IP-шники вакханалию устроили ------------ Дoбавленo в 20.11: Tad писал(а): При использовании компонентов из вкладки Data Source как получить Handle БД ?А никак, не предусмотрено изначально. Да и зачем, не совсем понятно |
|||
карма: 22 |
|
Ответов: 257
Рейтинг: -2
|
|||
85-250-61-54.bb.netvision писал(а): code_32176.txtЭто очень круто. Только у меня таблица импортируется в MTstr из экселя, а в базе она должна быть уже с разделенными именами, для осуществления поиска. Или сначала загонять в базу так, потом выводить с помощью вашего кода и потом опять загонять уже с разделенными столбцами... |
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
nesco писал(а): Да и зачем, не совсем понятно |
|||
карма: 25 |
|
Ответов: 257
Рейтинг: -2
|
|||
походу придется так и делать
|
|||
карма: 0 |
|
Ответов: 5446
Рейтинг: 323
|
|||
mudfactory писал(а): по пробелу не получится, название может быть из нескольких слов. Жаль нет компонента типа RegExpr который по маске разбивать будетТы разницу между "последний" и "второй" понимаешь? Если номер всегда в конце, не имеет пробелов, и отделён от названия пробелом, то мой алгоритм будет работать. |
|||
карма: 1 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
mudfactory, ты ещё не понял, что копаешь не в ту сторону ?
iarspider, а тут как ? atut.png |
|||
карма: 25 |
| ||
файлы: 1 | atut.png [56.1KB] [306] |
Ответов: 257
Рейтинг: -2
|
|||
Tad писал(а): Зачем он их хочет делить - совершенно не понятно...делить нужно чтоб искать применяемость по номеру ------------ Дoбавленo в 21.54: Tad писал(а): iarspider, а тут как ? а тут номер не все числа, в первом случае номер первым идет, второе число - это не нужный номер) Во втором случае перед номером 1000 к3-8 - это модель ------------ Дoбавленo в 21.58: впрнципе там типа номера всего трех типов - 3B4-2386G-00-00 705600859 11141-21H00 эти всегда состоят из одинакового кол-ва знаков. Остальное кроме названия можно отсеивать |
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
И найдет тебе все строки где есть этот номер. Что ещё надо ? Попробуй в своей схеме
Или
|
|||
карма: 25 |
|
Ответов: 257
Рейтинг: -2
|
|||
Tad писал(а): Что ещё надо ?надо отделить этот номер. Затем. что программа используя этот номер возвращает применяемость к конкретным моделям. Искать я могу по наименованию, а выдавать оно из 10 одинаковых наименований должно то что подходит по применяемости. Для этого нужно производить некоторые действия с отделенным номером. ------------ Дoбавленo в 22.32: А такой вопрос, если напрямую через OLE с файлом работать, каким запросом в него можно добавлятьизменять значения строк если та нет ID? |
|||
карма: 0 |
|