Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
3 / 3 / 2
Регистрация: 10.11.2010
Сообщений: 79
1

функция нормализации строки

24.07.2015, 10:35. Показов 2086. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Уважаемые гуру, помогите написать функцию нормализации строки. Считываю строку и аббревиатурой или термином. Суть в том, что при считывании могут быть лишние пробелы, символы каретки. Так же помимо этого в скобках может быть указано альтернативное обозначение. Мне необходимо на выходе получить каждое обозначение из строки отдельно.
Например строка:
Visual Basic
1
2
3
Function Normal()
    Str_O = "ОФР (ФР) (ОФ)**"
End Function
Так же нужно удалять "*", то есть на выходе:
Visual Basic
1
2
3
Str(1) = "ОФР"
Str(2) = "ФР"
Str(3) = "ОФ"
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.07.2015, 10:35
Ответы с готовыми решениями:

Процедура нормализации строки
Процедура нормализации строки

Нормализации бд
Есть вот такое задание и вот так я его решил, привел к 1 форме, в итоге не понимаю, как привести к...

процедура нормализации
Здравствуйте, помогите оценить правильность и адекватность проведенной нормализации, а то, к...

2 и 3 форма нормализации
За 1 машиной может быть закреплено несколько водителей, но каждый водитель закреплен за одним авто

10
3 / 3 / 2
Регистрация: 10.11.2010
Сообщений: 79
24.07.2015, 15:48  [ТС] 3
В общем с пробелами и прочей чепухой я справлюсь, помогите с формированием массива строк при уточнении аббревиатур)
0
15146 / 6419 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
24.07.2015, 15:56 4
PHILOSOPH13, ну это-то самое простое
Visual Basic
1
2
Str_O = "ОФР ФР ОФ" 'строка, очищенная от лишних символов и пробелов
Str = Split(Str_O)  'Str - массив слов: Str(0) = "ОФР", Str(1) = "ФР", Str(2) = "ОФ"
0
3 / 3 / 2
Регистрация: 10.11.2010
Сообщений: 79
24.07.2015, 16:06  [ТС] 5
К сожалению такой вариант отметается, т.к. это может выглядеть так:
Visual Basic
1
 Str_O = "ОФР ПРТ (ФР) (ОФ)**"
На выходе должно быть соответственно:
Visual Basic
1
2
3
Str(1) = "ОФР ПРТ"
Str(2) = "ФР"
Str(3) = "ОФ"
И не все символы нужно затирать) могут фигурировать дефис, буквы могут быть не заглавными) Затираю только "лишнее"
0
3 / 3 / 2
Регистрация: 10.11.2010
Сообщений: 79
27.07.2015, 09:43  [ТС] 6
Друзья, есть мысли? Хоть алгоритм как реализовать напишите...
0
15146 / 6419 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
27.07.2015, 09:54 7
Лучший ответ Сообщение было отмечено PHILOSOPH13 как решение

Решение

Цитата Сообщение от PHILOSOPH13 Посмотреть сообщение
такой вариант отметается, т.к. это может выглядеть так
Все зависит от того, как ЭТО еще может выглядеть. Например, может ли быть текст между правой и левой скобкой:
Str_O = "ОФР ПРТ (ФР) что-то (ОФ)"
Если нет, то
Visual Basic
1
2
3
4
5
6
Dim Str_O As String, Str() As String, i&
Str_O = "ОФР ПРТ (ФР) (ОФ)" 'строка, очищенная от посторонних символов
Str = Split(Str_O, "(")
For i = 0 To UBound(Str)
  Str(i) = Trim$(Replace$(Str(i), ")", ""))
Next
1
4064 / 1445 / 399
Регистрация: 07.08.2013
Сообщений: 3,617
27.07.2015, 09:55 8
Visual Basic
1
2
3
4
5
6
7
8
dim Str_O as String
Str_O = "ОФР ПРТ (ФР) (ОФ)**"
Str_O = Replace(Str_O,"*","")
Str_O = Replace(Str_O,")","")
Str_O = Replace(Str_O,"  "," ")
Dim StrM() as String
StrM=Split(Str_O," (")
msgbox StrM(0) & "   " & StrM(1) & "   " & StrM(2)
1
3 / 3 / 2
Регистрация: 10.11.2010
Сообщений: 79
27.07.2015, 11:04  [ТС] 9
Казанский, спасибо большое!)
Небольшой вопрос не по теме, как в Replace прописать строку, которую нужно заменить если я знаю в этой строке первые несколько символов и последний символ, и не знаю сколько символов в строке...
Например при использовании Like выражение можно прописать со "*"
0
15146 / 6419 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
27.07.2015, 11:23 10
PHILOSOPH13, напрямую - никак. Используйте регулярные выражение - поищите по форуму regexp.
Или находите позиции первых символов и последних символов с помощью с помощью Instr, InstrRev и составляйте новую строку.
Список функций и операторов (неполный!) для работы со строками можно найти в F1 - String Manipulation Keyword Summary
1
3 / 3 / 2
Регистрация: 10.11.2010
Сообщений: 79
27.07.2015, 11:49  [ТС] 11
спасибо, Казанский, думаю решу вопрос с помощью регулярного выражения)
0
27.07.2015, 11:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.07.2015, 11:49
Помогаю со студенческими работами здесь

Метод нормализации
Построить структуру данных, используя метод нормализации: определить первичный ключ в исходной...

О нормализации баз (в примерах)
Добрый день! У меня возникла такая безвыходная ситуация и может Вы мне поможете в ней разобраться....

Unicode. Алгоритмы нормализации
Пишу свой велосипед по работе с юникод строками, так как функционал сторонних библиотек для моего...

Unicode. Алгоритмы нормализации
Доброго времени суток. Разбираюсь с алгоритмами нормализации в Юникоде. Не совсем понимаю...

Декодирование данных после нормализации
Я делаю нормализацию данных: from sklearn.preprocessing import MinMaxScaler scaler =...

Разработать программу нормализации элементов вектора
Привет всем. Очень нужна ваша помощь с лабораторной. Задание на динамические структуры данных. Вот...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru