Изменять выделенный текст.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Adolf
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 30.01.2005 (Вс) 11:01
Откуда: Ленинградская область, город Гатчина

Изменять выделенный текст.

Сообщение Adolf » 18.03.2005 (Пт) 13:51

Например у меня есть такая фраза:
Список форумов Конференции VBStreets.

И я хочу изменить слово "форумов" на "ajhevjd", как это сделать - у меня сам код есть, который изменяет весь текст (абсолютно все слова), а мне нужно, чтобы только выделенное слово, как это сделать?

Andrev
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 19.01.2005 (Ср) 9:22
Откуда: Kursk

Сообщение Andrev » 18.03.2005 (Пт) 14:01

Есть такая функция Replace. Используй ее.
В этой жизни нет ничего невозможного. Если у вас что-то не получается, значит, вы что-то делаете не так.

Adolf
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 30.01.2005 (Вс) 11:01
Откуда: Ленинградская область, город Гатчина

Сообщение Adolf » 18.03.2005 (Пт) 14:13

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

Jenizix
Географ
Географ
Аватара пользователя
 
Сообщения: 545
Зарегистрирован: 20.04.2004 (Вт) 20:52
Откуда: Москва

Сообщение Jenizix » 18.03.2005 (Пт) 14:17

Код: Выделить всё
str = "Список форумов Конференции VBStreets."
str = replace(str,"форумов","ajhevjd")


заменит все слова 'форумов' в строке str на 'ajhevjd'
Ушел в себя, вернусь не скоро...

Если вам нужно сделать прозрачной только форму, а контролы на ней нет, то вам сюда!!!

Jenizix
Географ
Географ
Аватара пользователя
 
Сообщения: 545
Зарегистрирован: 20.04.2004 (Вт) 20:52
Откуда: Москва

Сообщение Jenizix » 18.03.2005 (Пт) 14:37

Вот накатал побыстрому...
пишеш в текстбоксе русскими буквами предложение, выделяеш что нужно, нажимаеш на конпку и выделенные слова будут в транслите

на форме:
текст с именем text1
кнопка с именем command1

Код: Выделить всё
Private Sub Command1_Click()
    Dim l_str As String
    Dim mid_str As String
    Dim r_str As String

    ' разбиваем строку
    l_str = Left(Text1.Text, Text1.SelStart)
    mid_str = Mid(Text1.Text, Text1.SelStart + 1, Text1.SelLength)
    r_str = Mid(Text1.Text, Text1.SelStart + Text1.SelLength + 1)

    ' транслитим выделенный текст
    mid_str = translete(mid_str)

    Text1.Text = l_str + mid_str + r_str ' собираем строку
End Sub

Function translete(Text As String) As String
    Text = Replace(Text, "а", "a")
    Text = Replace(Text, "б", "b")
    Text = Replace(Text, "в", "v")
    Text = Replace(Text, "г", "g")
    Text = Replace(Text, "д", "d")
    Text = Replace(Text, "е", "e")
    Text = Replace(Text, "ё", "e")
    Text = Replace(Text, "ж", "zh")
    Text = Replace(Text, "з", "z")
    Text = Replace(Text, "и", "i")
    Text = Replace(Text, "й", "j")
    Text = Replace(Text, "к", "k")
    Text = Replace(Text, "л", "l")
    Text = Replace(Text, "м", "m")
    Text = Replace(Text, "н", "n")
    Text = Replace(Text, "о", "o")
    Text = Replace(Text, "п", "p")
    Text = Replace(Text, "р", "r")
    Text = Replace(Text, "с", "s")
    Text = Replace(Text, "т", "t")
    Text = Replace(Text, "у", "u")
    Text = Replace(Text, "ф", "f")
    Text = Replace(Text, "х", "x")
    Text = Replace(Text, "ц", "ts")
    Text = Replace(Text, "ч", "4")
    Text = Replace(Text, "ш", "sh")
    Text = Replace(Text, "щ", "sh")
    Text = Replace(Text, "ъ", "")
    Text = Replace(Text, "ы", "i")
    Text = Replace(Text, "ь", "")
    Text = Replace(Text, "э", "e")
    Text = Replace(Text, "ю", "u")
    Text = Replace(Text, "я", "ya")
   
    translete = Text

End Function
Ушел в себя, вернусь не скоро...

Если вам нужно сделать прозрачной только форму, а контролы на ней нет, то вам сюда!!!

Adolf
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 30.01.2005 (Вс) 11:01
Откуда: Ленинградская область, город Гатчина

Сообщение Adolf » 18.03.2005 (Пт) 14:52

Спасибо.

Adolf
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 30.01.2005 (Вс) 11:01
Откуда: Ленинградская область, город Гатчина

Сообщение Adolf » 18.03.2005 (Пт) 15:04

А как например взять в ковычки ковычки, т. е.:

Text = Replace(Text, """, "Э") - он говорит что ошибка.

dimix
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 174
Зарегистрирован: 08.02.2005 (Вт) 22:47

Сообщение dimix » 18.03.2005 (Пт) 15:17

А нужно 4 кавычки написать. Т.е. если нужно получить "dimix", то пишешь: """" & dimix & """"

Adolf
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 30.01.2005 (Вс) 11:01
Откуда: Ленинградская область, город Гатчина

Сообщение Adolf » 18.03.2005 (Пт) 15:31

Нет, ты не понял меня, мне нужно " превратить в Э - для но как мне в кавычки взять эту ковычку?

dimix
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 174
Зарегистрирован: 08.02.2005 (Вт) 22:47

Сообщение dimix » 18.03.2005 (Пт) 15:41

Или я тебя не понял еще раз, или ты меня не понял. Но кавычку в кавычки можно взять, написав 4 кавычки: """". А у тебя кавычек 3, вот и говорит, что ошибка.

Jenizix
Географ
Географ
Аватара пользователя
 
Сообщения: 545
Зарегистрирован: 20.04.2004 (Вт) 20:52
Откуда: Москва

Сообщение Jenizix » 18.03.2005 (Пт) 15:47

добавь в функцию translete эту строку:
Код: Выделить всё
Text = Replace(Text, """", "Э")


Заменит ковычку(") на букву Э
Ушел в себя, вернусь не скоро...

Если вам нужно сделать прозрачной только форму, а контролы на ней нет, то вам сюда!!!

dimix
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 174
Зарегистрирован: 08.02.2005 (Вт) 22:47

Сообщение dimix » 18.03.2005 (Пт) 15:57

А! Понял! Я просто написал, как взять кавычку в кавычки, а надо было оказывается просто в предложенном примере три кавычки на четыре заменить! :)


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

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

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

    TopList