Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - Выделить из строки обозначение(я) ГОСТ/ОСТ/ТУ

Ответить
Настройки темы
VBA - Выделить из строки обозначение(я) ГОСТ/ОСТ/ТУ

Аватара для blackeangel

Старожил


Сообщения: 306
Благодарности: 3

Профиль | Отправить PM | Цитировать


Собственно как это сделать? При условии того, что может быть записан с годом и без, слитно(ГОСТ1234/ТУ3846855469/ОСТ4Г0) и правильно (ГОСТ 1234/ ОСТ 4Г0/ ТУ 396476457). В строке может попадаться один или несколько раз или и ту и гост и ост.
Думал в сторону Mid , не знаю как сделать когда больше одного обозначения попадается.

-------
Забудем боль, забудем страх -
И только ветер в парусах!


Отправлено: 21:44, 27-02-2019

 

Ветеран


Contributor


Сообщения: 25410
Благодарности: 7380

Профиль | Отправить PM | Цитировать


blackeangel, я бы попробовал регулярками. А выложите всевозможные (в смысле не «все возможные», а разнообразные, какие встречались) образцы в тексте. Попробуем разобраться вместе.

Отправлено: 22:03, 27-02-2019 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для blackeangel

Старожил


Сообщения: 306
Благодарности: 3

Профиль | Отправить PM | Цитировать


Цитата Iska:
blackeangel, я бы попробовал регулярками. А выложите всевозможные (в смысле не «все возможные», а разнообразные, какие встречались) образцы в тексте. Попробуем разобраться вместе.
Примерно следующее:
Код: Выделить весь код
Ехал грека через реку ГОСТ1234-80 видит грека в реке рак ТУ 38-200-16-45-2001 сунул грека в реку руку ГОСТ 1234 рак за руку грека цап.
Ехали медведи на велосипеде ОСТ 4Г0.010.016 пряники жуют.
А комарики на воздушном шарике ТУ68758-448-93966-90, раки ОСТ107.016.322 на хромой собаке ГОСТ 1.2346-81
А за ними кот ОСТ 4Г0.016.019-2014 задом наперёд ТУ68958-458-93966 и смеётся.

Отправлено: 21:24, 28-02-2019 | #3


Ветеран


Contributor


Сообщения: 25410
Благодарности: 7380

Профиль | Отправить PM | Цитировать


blackeangel, попробуйте так (на WSH; думаю, перевод на VBA для Вас особых затруднений не составит):
Код: Выделить весь код
Option Explicit

Dim strContent
Dim objMatch


With WScript.CreateObject("VBScript.RegExp")
	.Pattern    = "(ГОСТ|ГОСТ Р|ОСТ|ТУ) *?[\d\.\-Г]+\d"
	.IgnoreCase = True
	.Global     = True

	With WScript.CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\Мои проекты\0248\0001.txt")
		strContent = .ReadAll()
		.Close
	End With

	If .Test(strContent) Then
		For Each objMatch In .Execute(strContent)
			WScript.Echo objMatch.Value
		Next
	Else
		WScript.Echo "Nothing found."
	End If
End With

WScript.Quit 0
Предвижу большие проблемы с отраслевыми стандартами.

Отправлено: 22:38, 28-02-2019 | #4


Аватара для blackeangel

Старожил


Сообщения: 306
Благодарности: 3

Профиль | Отправить PM | Цитировать


Iska, за код спасибо.
Цитата:
Предвижу большие проблемы с отраслевыми стандартами
А вот это как раз должен был быть следующим вопросом) СТП и СТО и дальше хрен угадаешь что...
Так же это касается инструкций.

Суть в том что надо из составов технологических процессов выбрать всю документацию применяемую в предприятии....

-------
Забудем боль, забудем страх -
И только ветер в парусах!


Отправлено: 07:33, 01-03-2019 | #5


Ветеран


Contributor


Сообщения: 25410
Благодарности: 7380

Профиль | Отправить PM | Цитировать


Цитата blackeangel:
А вот это как раз должен был быть следующим вопросом) СТП и СТО и дальше хрен угадаешь что... »
Тогда никак. Чтобы что-то найти — нужно знать. что искать. Моё же замечание касалось буквы «Г». По-хорошему, нужно иметь весь возможный перечень. Мне лично не удалось найти даже по старым союзным ОСТам такой перечень, что уж про нынешние говорить…

Цитата blackeangel:
Суть в том что надо из составов технологических процессов выбрать всю документацию применяемую в предприятии.... »
А в каком она формате? Если в Word'овском — могу предложить полуавтомат: «скармиваем» скрипту документ, набор документов, каталог с документами, набор каталогов (разумеется, копии, а не оригиналы), он их «шерстит», пытаясь по заданным принципам найти похожее на ГОСТы, ОСТы и т.п., раскрашивает их выделением, затем сохраняет документ. После чего человек «ручками» открывает документ, смотрит «глазками» и, ориентируясь на выделенное, собирает ГОСТы, ОСТы и т.п., например, в Копилку (Ctrl-F3), после чего вставляет собранное в новый документ. Потом, конечно, будет ещё вопрос приведения всего этого безобразия к единому и правильному написанию, а также удалению дубликатов, но это уже, действительно, будет потом.

В общем, смотрите: если стоит задача собрать наиболее точную информацию — тогда только так. Если задача стоит немного иная — «На, и отъ@@@сь», тогда можно и тупо ограничиться только тем, что соберёт скрипт.

Отправлено: 18:26, 01-03-2019 | #6


Аватара для blackeangel

Старожил


Сообщения: 306
Благодарности: 3

Профиль | Отправить PM | Цитировать


Iska,
Цитата:
А в каком она формате?
.db MySQL
Цитата:
Чтобы что-то найти — нужно знать. что искать.
Ну первые абревиатуры есть и известны.

-------
Забудем боль, забудем страх -
И только ветер в парусах!


Отправлено: 18:47, 01-03-2019 | #7


Ветеран


Contributor


Сообщения: 25410
Благодарности: 7380

Профиль | Отправить PM | Цитировать


blackeangel, а внутри что? char, wchar, або какой-нибудь blob?

Отправлено: 19:47, 01-03-2019 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - Выделить из строки обозначение(я) ГОСТ/ОСТ/ТУ

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Выделить часть строки и отправить в переменную Patroklos Скриптовые языки администрирования Windows 18 10-02-2018 17:58
PowerShell - [решено] Выделить из строки текста слово определенной длины и записать в переменную Grafitchic Скриптовые языки администрирования Windows 14 16-07-2014 12:23
Офис и Текст - [решено] Как выделить строки с определенны символами KooDI Программное обеспечение Windows 2 03-03-2013 14:27
CMD/BAT - [решено] Выделить из текстового файла строки, содеражщие дату формата DD.MM.YYYY за указанный jrd Скриптовые языки администрирования Windows 2 17-02-2012 16:57
Сеть из 5 компов(3-е в сети,ост. по модему)??? SvD Сетевые технологии 2 02-02-2005 11:05




 
Переход