powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Замена слов в строке
13 сообщений из 38, страница 2 из 2
Замена слов в строке
    #36560182
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OksanaCheryНу......преподавателей не выбирают, какой уж есть...........но программу то мне надо как то сделать........а вот как???

А что вам тогда преподавали? Можете кинуть фотку разворота конспекта?

Программа, которая вам требуется, занимает ровно три строчки. Но если вы не понимаете, что в ней как работает, то и преподаватель поймет, что вы ее списали.
...
Рейтинг: 0 / 0
Замена слов в строке
    #36560183
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OksanaChery, так уже подсказали. Верхняя часть, с инпутом, есть в моём коде -это если под Экселем делать, я не знаю, как под VB6. Далее Ваш код, только символы всюду одинаковые поставить и кавычки, и 50 строку исправить. Добавить count = count + 1 если есть замена. И вывод результата, под Экселем я пример дал, или через MsgBox. Всё.
...
Рейтинг: 0 / 0
Замена слов в строке
    #36560184
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121Верхняя часть, с инпутом, есть в моём коде -это если под Экселем делать, я не знаю, как под VB6.

Абсолютно так же
...
Рейтинг: 0 / 0
Замена слов в строке
    #36560186
OksanaChery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В конспекте про замену вообще ни слова.........но вот то, что скинул преподаватель......не совпадает местами с прогр-м кодом

Введем с клавиатуры исходную строку (х$). Для удобства работы и повышения массовости алгоритма определим еще две символьные переменные: у $ — замещаемая подстрока, z$ — замещающая подстрока. Слова берем вместе с прилежащими к ним пробелами, иначе будет произведена замена не только отдельных слов, но и заданного набора символов в составе других слов (так «навсегда» превратится в «начасто»). Если подлежащее замене слово окажется в исходной строке первым или последним (с одним пробелом), оно не преобразуется. Чтобы этого не случилось, добавим программно по пробелу в начало и конец исходной строки.
Решение построено на использовании функции INSTR(i,x$,y$) — см. раздел «Встроенные функции для работы с символьными строками». Начиная с позиции i она определяет позицию первого появления подстроки у$ в строке х$; если подстроки в строке не находит, то возвращает результат 0. Определим позицию первого вхождения (п). Можно производить замену. Для этого разрываем исходную строку на 3 части: до искомой подстроки, подстрока, после подстроки. Первую и третью части вычленяем при помощи функции MID$, помещаем между ними замещающее слово, связываем их опе-рацией конкатенации и присваиваем то, что получилось, переменной х$. Так как мы не знаем, сколько раз в строке встретится интересующая нас подстрока, используем цикл WHILE. Условие выполнения цикла: -п <> 0, т.е. наличие в строке интересующих нас подстрок. Перед входом в цикл определим лишь позицию первого вхождения, — чтобы п было определено (здесь удобно было бы использовать и итерационный цикл с посту-словием). На каждой итерации цикла происходит замена одного нужного слова.
Произведя все необходимые замещения, уберем из строки «искусственные» пробе-лы (строка 80) и выведем ее на экран.
...
Рейтинг: 0 / 0
Замена слов в строке
    #36560191
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OksanaCheryВ конспекте про замену вообще ни слова.........но вот то, что скинул преподаватель......не совпадает местами с прогр-м кодом

Где не совпадает? Это полное описание того, что вы привели в первом сообщении... За исключением того, что вы пишете "п", совершенно не вникая, что это переменная "n", использованная в тексте программы.
...
Рейтинг: 0 / 0
Замена слов в строке
    #36560202
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можете задать преподавателю три каверзных вопроса
1) Почему вы даете нам такую строку для ввода данных
Код: plaintext
 10  INPUT "Исходная строка : ” ; х$
Хотя в справке по синтаксису Visual Basic для ввода строки используется команда
helpInputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])

2) Почему вы говорите, что надо отрезать начальный и конечный пробелы, а отрезаете только начальный пробел
Код: plaintext
 80  x$ = MID$ (x$,  2 , LEN(X$) -  1 )
очевидно, что чтобы отрезать ДВА пробела, из длины переменной X$ надо вычитать не 1, а 2

3) Почему вы используете нумерацию строк, хотя Visual Basic это не поддерживает
...
Рейтинг: 0 / 0
Замена слов в строке
    #36560224
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хуго!

Не пойдет твой код

если там заменяемое слово будет написано два раза подряд, то оно не заменится.
Либо размножать пробелы, либо цикл
...
Рейтинг: 0 / 0
Замена слов в строке
    #36560230
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, и впрямь... виден опыт... Тогда так (только конечно момент с начальными пробелами неучтён):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Sub ttt()
Dim x$
x$ = InputBox("Исходная строка : ")
x$ = Replace(x$, " всегда ", " часто ")
x$ = Replace(x$, " всегда ", " часто ")
Debug.Print "Преобразованная строка: " & x$
End Sub
:)
...
Рейтинг: 0 / 0
Замена слов в строке
    #36560278
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121Shocker.Pro, и впрямь... виден опыт... Тогда так (только конечно момент с начальными пробелами неучтён

о, а я че-то не подумал, что можно тупо два раза подряд Replace, у меня такой вариант получился

Код: plaintext
1.
2.
x$ = Left$(InputBox("Введите строку"),  254 )
y$ = Replace(Replace(" " + Replace(x$, " ", "  ") + " ", " всегда ", " часто "), "  ", " ")
MsgBox "Преобразованная строка: " + Mid$(y$,  2 , Len(y$) -  2 ) + vbCr + "Количество замен: " + CStr(Len(x$) - Len(y$) +  2 )
...
Рейтинг: 0 / 0
Замена слов в строке
    #36560646
OksanaChery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, в твоём коде, если "всегда" будет стоять в начале строки, то не заменится)))))
Помогите лучше изменить мой код, пожалуйста))))))))
...
Рейтинг: 0 / 0
Замена слов в строке
    #36560745
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OksanaCheryShocker.Pro, в твоём коде,
Мы уже на ты?

OksanaCheryесли "всегда" будет стоять в начале строки, то не заменится)))))

Это с какого перепугу? Все меняется, только что проверил еще раз.

OksanaCheryПомогите лучше изменить мой код, пожалуйста))))))))

Да я не против помочь . Но вы ведь не задали ни одного конкретного вопроса, кроме просьбы "сделать задачу". И кстати, я ее сделал и вы, как ни странно, это заметили
...
Рейтинг: 0 / 0
Замена слов в строке
    #36560756
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OksanaCheryПомогите лучше изменить мой код, пожалуйста))))))))

и, кстати,
Код: plaintext
вашего
кода я тоже еще не видел. Пока вы привели только пример кода, который где-то стырил преподаватель, который, судя по всему, тоже не особо его понимает.
...
Рейтинг: 0 / 0
Замена слов в строке
    #36561386
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Альтернативный вариант:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Sub ttt()
Dim x$, firstlen&, secondlen&
x = InputBox("Исходная строка :")
x = " " & x & " "
firstlen = Len(x)
x = Replace(x, " всегда ", " часто ")
x = Replace(x, " всегда ", " часто ")
secondlen = Len(x)
x = Mid$(x,  2 , Len(x) -  2 )
MsgBox "Преобразованная строка: " & x & _
Chr( 10 ) & "Количество замен:  " & firstlen - secondlen
End Sub
по-моему, выглядит покрасивее преподавательского... но меньше работы со строкой - под задачу не подходит... хотя результат идентичен.
...
Рейтинг: 0 / 0
13 сообщений из 38, страница 2 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Замена слов в строке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]