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

Если в последовательности символов имеются рядом стоящие запятые и тире, то везде поменять их местами

01.06.2012, 08:40. Показов 1720. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Если в последовательности символов имеются рядом стоящие запятые и тире, то везде поменять их местами.

Текст произвольный, важен код.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.06.2012, 08:40
Ответы с готовыми решениями:

Как рядом стоящие запятые и тире поменять местами
Добрый день. Помогите пожалуйста написать программу на VBA от excel Если в последовательности...

Дана строка символов. Выяснить имеются ли в данной строке рядом стоящие запятая и тире
Помогите написать пожалуйста программу: "Дана строка символов. Выяснить имеются ли в данной...

В строке пробел и запятую, стоящие рядом, поменять местами
Дана строка символов. В строке пробел и запятую, стоящие рядом, нужно поменять местами. Вывести...

Пузырьковая сортировка (поменять местами рядом стоящие элементы в массиве)
Всём привет. Необходимо реализовать пузырьковую сортировку массива. Пишу программу на masm32 через...

18
Заблокирован
01.06.2012, 09:00 2
Visual Basic
1
msgbox replace("asdf,- ndddgh,- dgh",",-","-,")
1
2 / 0 / 0
Регистрация: 01.06.2012
Сообщений: 23
01.06.2012, 12:51  [ТС] 3
А в полном составе, как будет выглядеть код?
0
15145 / 6418 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
01.06.2012, 12:57 4
Например так
Visual Basic
1
2
3
Sub ee()
MsgBox Replace(InputBox("Введите текст", , "asdf,- ndddgh,- dgh"), ",-", "-,")
End Sub
1
2 / 0 / 0
Регистрация: 01.06.2012
Сообщений: 23
01.06.2012, 13:21  [ТС] 5
А допустим мне надо "предложение" из табл. Как к нему обратиться и вывести на другую ячейку?
С DIM-мами и с условиями))
0
15145 / 6418 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
01.06.2012, 13:25 6
Сформулируйте задачу полностью. Во-1, "предложение" в каком приложении - Word, Excel?
0
2 / 0 / 0
Регистрация: 01.06.2012
Сообщений: 23
01.06.2012, 13:28  [ТС] 7
Предложение произвольное, просто в ячейке. Excel соответственно.
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
01.06.2012, 13:31 8
Цитата Сообщение от Фаил Посмотреть сообщение
Если в последовательности символов имеются рядом стоящие запятые и тире, то везде поменять их местами
при этом отвести счётчик текущего символа за вторым символом пары, ставшим первым, то есть на один символ назад и на следующем шагу опять наткнуться на ту же пару и опять поменять её местами, при этом отвести счётчик текущего символа за вторым символом пары, ставшим первым, то есть на один символ назад...?
1
2 / 0 / 0
Регистрация: 01.06.2012
Сообщений: 23
01.06.2012, 13:37  [ТС] 9
Цитата Сообщение от taras atavin Посмотреть сообщение
при этом отвести счётчик текущего символа за вторым символом пары, ставшим первым, то есть на один символ назад и на следующем шагу опять наткнуться на ту же пару и опять поменять её местами, при этом отвести счётчик текущего символа за вторым символом пары, ставшим первым, то есть на один символ назад...?
Эмм, просто если запятая и тире стоят вместе, поменять их местами.
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
01.06.2012, 13:55 10
Я тебе просто показал, как с помощью закона Мёрфи прочитать твоё ТЗ, как задание на мёртвое зависание: у тебя не сказано, сколько раз они должны меняться местами, а при обмене местами двух символов эти символы не разойдутся.
0
2 / 0 / 0
Регистрация: 01.06.2012
Сообщений: 23
01.06.2012, 14:05  [ТС] 11
достаточно одного раза) Но можно все это с условиями?
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36592 / 20322 / 4218
Регистрация: 12.02.2012
Сообщений: 33,623
Записей в блоге: 13
01.06.2012, 14:07 12
Хм... Рядом стоящие - это значит ",-" и "-,". Как я понял, первое нужно поменять на второе, а второе - на первое. Это можно сделать так:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Function Change(ByVal S As String)
   i% = 1
   Do
     If i% >= Len(S) Then Exit Do
     If (Mid$(S, i%, 2) = ",-") Then
        Mid$(S, i%, 2) = "-,"
        i% = i% + 2
     ElseIf (Mid$(S, i%, 2) = "-,") Then
        Mid$(S, i%, 2) = ",-"
        i% = i% + 2
     Else
        i% = i% + 1
     End If
   Loop
   Change = S
End Function
2
2 / 0 / 0
Регистрация: 01.06.2012
Сообщений: 23
01.06.2012, 14:13  [ТС] 13
Достаточно одного раза. Но можно все это с условиями?
0
призрак
3262 / 890 / 119
Регистрация: 11.05.2012
Сообщений: 1,702
Записей в блоге: 2
01.06.2012, 14:17 14
Цитата Сообщение от Catstail Посмотреть сообщение
Это можно сделать так:
или так:
Visual Basic
1
s=replace(replace(replace(s,",-","&^$#"),"-,",",-"),"&^$#","-,")
1
Модератор
Эксперт функциональных языков программированияЭксперт Python
36592 / 20322 / 4218
Регистрация: 12.02.2012
Сообщений: 33,623
Записей в блоге: 13
01.06.2012, 14:23 15
А если в тексте встречаются комбинации символов "&^$#"? Проверял?
0
ikki
01.06.2012, 14:30
  #16

Не по теме:

Цитата Сообщение от Catstail Посмотреть сообщение
А если в тексте встречаются комбинации символов "&^$#"?
тем хуже этому тексту :D

0
2 / 0 / 0
Регистрация: 01.06.2012
Сообщений: 23
01.06.2012, 14:43  [ТС] 17
Catstail, Я очень надеюсь что это ВБА. Function- такого не встречал. И на это спс.
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
01.06.2012, 14:53 18
Есть там такое ключевое слово.
0
ikki
01.06.2012, 14:57     Если в последовательности символов имеются рядом стоящие запятые и тире, то везде поменять их местами
  #19

Не по теме:

Цитата Сообщение от Фаил Посмотреть сообщение
Я очень надеюсь что это ВБА. Function- такого не встречал
он хорошо прячется, ага.

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.06.2012, 14:57

В заданной строке поменять местами рядом стоящие элементы между собой
В заданной строке поменять местами рядом стоящие элементы между собой.

В заданной строке поменять местами рядом стоящие символы между собой
В заданной строке поменять местами рядом стоящие символы между собой

В заданной строке поменять местами рядом стоящие символы между собой
Здравствуйте. Помогите написать программу: В заданной строке поменять местами рядом стоящие символы...


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

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