Замена двойных пробелов

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Морфий
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 119
Зарегистрирован: 11.01.2005 (Вт) 18:06

Замена двойных пробелов

Сообщение Морфий » 27.03.2005 (Вс) 21:02

Как заменить неограниченное количество пробелов по середине строки, скажем, на "-"?
т.е чтобы было "aaaaa bbbbbb", а стало "aaaaa-bbbbbb"
Вот оно — счастье...

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 27.03.2005 (Вс) 21:04

Код: Выделить всё
text=replace(text," ","-")

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 27.03.2005 (Вс) 21:05

А если надо заменить также "__" на "-", то сначала все двойные пробелы заменяем на одинарные. До тех пор, пока двойных в тексте не останется.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 28.03.2005 (Пн) 9:54

А еще можно выучить RegExp'ы и сразу менять на "-" произвольное количество пробелов :)

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 28.03.2005 (Пн) 12:11

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

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

Морфий
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 119
Зарегистрирован: 11.01.2005 (Вт) 18:06

Сообщение Морфий » 28.03.2005 (Пн) 15:17

вот как я сделал в итоге:

Код: Выделить всё
Private Function ATrim(text As String)
Dim temp As String, pos As Long
temp = text
Do
pos = InStr(1, temp, "  ")
If pos > 0 Then
temp = Left(temp, pos - 1) & " " & Right(temp, Len(temp) - pos - 1)

Else
Exit Do
End If
DoEvents
Loop
ATrim = temp
End Function
Вот оно — счастье...


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 179

    TopList