Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
sotas

Разбить текст в ячейке на подстроки

14.11.2012, 22:24. Показов 1263. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть прайс поставщика необходимо разбить текст в ячейке следушим образом.
Шлейф Samsung X530 04953
Шлейф Samsung X530 с установочными компонентами (оригинал) 12021169
Шлейф Samsung X540 12021771
Шлейф Samsung X650 с компонентами 07059
Шлейф Samsung X670 с компонентами 05091
Шлейф Samsung X680 с конектором 05314
Шлейф Siemens EF81 с компонентами,с контактактной пощадкой клав. 04243
Шлейф Sony Ericsson Xperia arc LT15 на динамик, с вибро 12024416

1)категория (шлейф)
2)название фирмы производителя (samsung)
3) потом модель (x530)
4)артикуль поставщика (04953).

возможная логика разбивки: категория и название фирмы производителя можно задать заранее их не так много, а дальше с конца вычилсить позицию первого пробела это и будет начало артикуля и модель уже легко вычеслить.
помогите написать, очень надо но нет времени.
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.11.2012, 22:24
Ответы с готовыми решениями:

Разбить текст на подстроки
public bool splitElements(string koeficients) { rows = koeficients.Split(new string { System.Environment.NewLine },...

Разбить текст на 3 подстроки и напечатать
вводится текст которыи надо разбить на 3 подстроки и потом напечатать их в freereport-e. Шрифт ввода Times New Roman и длина строки...

Разбить текст на подстроки длинной N
Добрых суток. Вот такая задача, нужно разбить текст посимвольно на подстроки, учитываются только символы алфавита, спецзнаки идут отдельно....

2
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,576
15.11.2012, 12:04
Условия работы кода:
  1. код написан для одной строки;
  2. строка находится в ячейке A1;
  3. текст строки:
    Шлейф Sony Ericsson Xperia arc LT15 на динамик, с вибро 12024416
  4. результат работы кода никуда не выводится, а находится в массиве sResult.
Visual Basic
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
Sub Procedure_1()
 
    Dim sCategory(1 To 2) As String
    Dim sFirm(1 To 2) As String
    
    'В массив sResult поместим результат работы.
    Dim sResult(1 To 1, 1 To 4) As String
    
    Dim sString As String
    Dim lLastSpace As Long
    Dim i As Long
    
    'Заносим названия категорий и фирм в массивы.
    sCategory(1) = "Шлейф"
    sCategory(2) = "Категория_2"
    
    'Если названия фирм содержат одинаковые слова в начале,
    'то сначала нужно поместить в массив длинное название.
    'Иначе "Sony" и "Sony Ericsson" будет одно и то же.
    sFirm(1) = "Sony Ericsson"
    sFirm(2) = "Sony"
 
    'Берём текст из ячейки в переменную, чтобы было удобнее код писать.
    sString = Range("A1").Value
 
'Поиск идёт с учётом регистра (больших и маленьких букв).
'Если нужно вести поиск без учёта регистра, то нужно внести изменения в код.
    
'--------------------------------------------------------------------------------------------------
    '1. Берём категорию.
    For i = 1 To UBound(sCategory) Step 1
        'Если искомый текст находится в начале переменной, то будер результат 1.
        If InStr(sString, sCategory(i)) = 1 Then
            'Помещаем данные в массив sResult.
            sResult(1, 1) = sCategory(i)
            'Изменяем переменную, чтобы проще было дальше код писать.
            '+2 включает пробел.
            sString = Mid(sString, Len(sCategory(i)) + 2)
            'Остальные категории не просматриваем.
            Exit For
        End If
    Next i
 
 
'--------------------------------------------------------------------------------------------------
    '2. Берём фирму.
    For i = 1 To UBound(sFirm) Step 1
        'Если искомый текст находится в начале переменной, то будер результат 1.
        If InStr(sString, sFirm(i)) = 1 Then
            'Помещаем данные в массив sResult.
            sResult(1, 2) = sFirm(i)
            'Изменяем переменную, чтобы проще было дальше код писать.
            '+2 включает пробел.
            sString = Mid(sString, Len(sFirm(i)) + 2)
            'Остальные фирмы не просматриваем.
            Exit For
        End If
    Next i
    
    
'--------------------------------------------------------------------------------------------------
    '3. Берём модель и артикул.
    
    'Определяем, где в переменной находится последний пробел.
    lLastSpace = InStrRev(sString, " ")
    
    'Помещаем данные в массив sResult.
    sResult(1, 3) = Left(sString, lLastSpace - 1)
    sResult(1, 4) = Mid(sString, lLastSpace + 1)
 
End Sub
0
sotas
15.11.2012, 16:01
Спасибо за ответ. Если вам не сложно свяжитесь со мной по icq 278573480, хочю предложить вам написать скрипт по обработке прайсов поставшиков.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.11.2012, 16:01
Помогаю со студенческими работами здесь

Разбить строку на все "связные" подстроки. Получившиеся подстроки записать в вектор
Нужно разбить минимальную строку на "связные" подстроки Например: строка Mas: "qwe" нужны подстроки:...

Число вхождений подстроки и каждого из символов подстроки в текст
Здравствуйте, товарищи. Подскажите пожалуйста. Осваиваю VS 2013 и С# в целом. Имеется приложение с двумя TextBox'ами необходимо найти по...

Разбить строку на подстроки в WITH
Возникли проблемы в СРМ с созданием отчёта (SSRS) при передачи multivalue параметров в хранимку. Если писать этот запрос в редакторе...

Разбить строку на подстроки
Дана строка: String str = "вода жидкая вода течет вниз вода кипит при 100 градусах " + "но вода замерзает...

Разбить строку на подстроки
Например есть файл C:\Home\НТД\DH_15_12_13_16_00_18_00.xls Как можно присвоить переменную следующим частям имени файла: 1. var1:=...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru