Как заменить 1 символ в строке на несколько других?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
IgorA
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 14.10.2004 (Чт) 20:34

Как заменить 1 символ в строке на несколько других?

Сообщение IgorA » 15.10.2004 (Пт) 20:51

Как заменить 1 символ в строке на несколько других?
т.е. известно что в строке надо поменять 5 символ на "?".

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 15.10.2004 (Пт) 21:00

Код: Выделить всё
ТвояСтрока = Replace(ТвояСтрока, ТоЧтоЗаменяешь, ТоНаЧтоЗаменяешь)
Изображение

IgorA
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 14.10.2004 (Чт) 20:34

Сообщение IgorA » 15.10.2004 (Пт) 21:11

tyomitch писал(а):
Код: Выделить всё
ТвояСтрока = Replace(ТвояСтрока, ТоЧтоЗаменяешь, ТоНаЧтоЗаменяешь)


А можно не поиском, а просто заданный символ?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 15.10.2004 (Пт) 21:35

Один к одному - можно.
Один на много - либо replace, либо left$ & твоё & right$.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 15.10.2004 (Пт) 21:35

Код: Выделить всё
Private Sub Form_Load()
Dim ТвояСтрока$
ТвояСтрока = "абвгдеёжз"
MsgBox Замена(ТвояСтрока, 5, "бла")
End Sub

Function Замена(ByVal Где As String, ByVal Позиция As Long, ByVal НаЧто As String) As String
If Len(Где) < Позиция Then Exit Function
Замена = VBA.Left(Где, Позиция - 1) & НаЧто & VBA.Right(Где, Len(Где) - Позиция)
End Function

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 15.10.2004 (Пт) 21:36

И опять приоритет у GSerg:)
Хотя ладно, я просто подкрепил его слова кодом :)

IgorA
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 14.10.2004 (Чт) 20:34

Сообщение IgorA » 15.10.2004 (Пт) 22:35

а что не так вот тут:
mass(i, n) = Replace(mass(i, n), "-", "?", 1, 1, 1)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 15.10.2004 (Пт) 22:41

IgorA писал(а):а что не так вот тут:
mass(i, n) = Replace(mass(i, n), "-", "?", 1, 1, 1)
Всё так... А что не так?
Изображение

IgorA
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 14.10.2004 (Чт) 20:34

Сообщение IgorA » 15.10.2004 (Пт) 22:42

tyomitch писал(а):
IgorA писал(а):а что не так вот тут:
mass(i, n) = Replace(mass(i, n), "-", "?", 1, 1, 1)
Всё так... А что не так?


выдает False
хотя все в него передается

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 15.10.2004 (Пт) 22:44

Значит нефиг не использовать option explicit, видимо...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2056
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 16.10.2004 (Сб) 16:31

Челы... А так не судьба ?
:roll: :wink:
Код: Выделить всё
A = "123456"
Mid(A, 1, 2) = "dd"
MsgBox A

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 16.10.2004 (Сб) 16:34

Не судьба. Надо один на несколько.
Изображение

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2056
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 16.10.2004 (Сб) 16:37

2 tyomitch: Шеф... Чес слово, я конечно тормоз, но не тупой...

Именно так оно и пашет. Чес слово. Проверь. :wink:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 16.10.2004 (Сб) 16:40

Ой ли?
Вложения
Безымянный.zip
(3.7 Кб) Скачиваний: 15
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 16.10.2004 (Сб) 16:43

ALX_2002 писал(а):Именно так оно и пашет. Чес слово. Проверь. :wink:

Сам-то проверял? ;-)
Изображение

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2056
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 16.10.2004 (Сб) 19:12

Челы ! ! ! НУ Я Ж НЕ ПСИХ ! Глядите !!

:oops:

Ну серьёзно !

Вопрос такой - заменить в строке 1 символ на несколько. Именно это и

делает код. Взгляните
Код: Выделить всё
A = "123456"
Mid(A, 2, 2) = "dd"
MsgBox A


Ниже мой скрин :(

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 16.10.2004 (Сб) 19:18

Ну и чё? Заменил 2 на 2. А ты 1 на 2 заменить попробуй.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 16.10.2004 (Сб) 19:22

ALX_2002, ты что, издеваешься?

Была строка: "123456"
Стала строка: "1dd456"

Сколько символов заменено? 2
На сколько? На 2

Ещё есть сомнения? ;-)

[edit] Вот, опять не успел :-( [/edit]
Изображение

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2056
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 16.10.2004 (Сб) 19:26

Блин.... Я туплю.... Ещё раз извините.... Мне видать сёдня совсем плохо....

У меня сёдня весь день такой....

Всё... Исчезаю.... :oops: :oops: :oops: :oops: :cry:


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 14

    TopList