Страница: 1 |
Страница: 1 |
Вопрос: Количество символов
Добавлено: 16.03.07 14:31
Автор вопроса: WinstoUn
Господа, всем здрасте!
Нужна Ваша помощь, ибо прочитал книжку по VB, несколько статей и ничего не понял. А очень хочется.
Есть у меня одна проблемка (Вам она может показаться смешной). Нужно написать программку, которая бы считала количество заданных символов в строке. Например символов "п" или "а" в слове "папараци". Я знаю как посчитать общее количество символов, а вот отдельные...
За помощь буду благодарен и даже больше!
Ответы
Всего ответов: 15
Номер ответа: 1
Автор ответа:
ADSemenov.ru
Вопросов: 5
Ответов: 276
Web-сайт:
Профиль | | #1
Добавлено: 16.03.07 15:26
____ Надо использовать функцию mid(str,i,1) в цикле сравнения и подсчёта символов.
Номер ответа: 2
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #2
Добавлено: 16.03.07 18:43
а можно и так:
MsgBox UBound(Split(Text1.Text, "п")
End Sub
Номер ответа: 3
Автор ответа:
WinstoUn
Вопросов: 1
Ответов: 3
Профиль | | #3
Добавлено: 16.03.07 20:19
А можно поподробней пожалуйста. Я же чайник ).
Попробовал, не получилось. Как все это прописать и где?
Номер ответа: 4
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #4
Добавлено: 16.03.07 20:31
На здоровье:
На форме распологаешь кнопку Command1.
в код кнопки вписываешь:
"Твой текст" - это твой текст
"т" - буква, которую надо считать.
Номер ответа: 5
Автор ответа:
WinstoUn
Вопросов: 1
Ответов: 3
Профиль | | #5
Добавлено: 16.03.07 20:39
Это понятно. Но "Мой текст" должен вводиться в TextBox на форме, и буква которую надо считать, тоже там. Что бы менять можно было.
MsgBox UBound - эта команда VBA? А то у меня VB 6.0.
Номер ответа: 6
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #6
Добавлено: 16.03.07 20:59
Хорошо, подробней:
MsgBox - команда, которая выводит диалоговое окно.
Ubound(массив) - Возвращает нижнюю границу массива
Split(текст,знак) - возвращает одномерный массив, где каждый элемент массива представляет собой кусок строки, отрезанный от "знака" и до "знака", т.е. команда
в твоем случае:
кидаешь на форму 2 текстбокса: Text1 и Text2
кнопку Command1
в код кнопки запкидываешь:
Результат: Из строки введенной в Text1 вырезаются куски отрезанные символом(и), введенными в Text2.
Уф-ф-ф... Ни хрена из меня учителя не будет...
Все это в VB6.
Номер ответа: 7
Автор ответа:
D o c a l
ICQ: 408802757
Вопросов: 76
Ответов: 985
Web-сайт:
Профиль | | #7
Добавлено: 16.03.07 21:00
MsgBox UBound(Split("Твой текст", "т")
Заместь "т" ставиш text2.text
Создаеш на форме text2,text1
Записиваеш в text1.text свой текст
в text2.text букву
і нажимаеш на comannd1
MsgBox UBound(Split(text1.text), text2.text))
Вроби так не проверял но должно роботать
Номер ответа: 8
Автор ответа:
D o c a l
ICQ: 408802757
Вопросов: 76
Ответов: 985
Web-сайт:
Профиль | | #8
Добавлено: 16.03.07 21:02
Опередили.Уменя одна ошибка
Нада
MsgBox UBound(Split(text1.text, text2.text))
Номер ответа: 9
Автор ответа:
ADSemenov.ru
Вопросов: 5
Ответов: 276
Web-сайт:
Профиль | | #9
Добавлено: 16.03.07 23:03
____ Думаю, что UBound() возвращает верхний индекс массива, а не границу. Поэтому результат будет зависеть от номера первого индекса (0 или 1).
____ Прикольно с функцией Split. Может быть ещё и LCase() использовать внутри?
Номер ответа: 10
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #10
Добавлено: 17.03.07 00:04
А какая хрен разница.... Число элементов массива он тебе выведет.
2. Можно и LCase/UCase пользовать, все пашет:
Номер ответа: 11
Автор ответа:
ADSemenov.ru
Вопросов: 5
Ответов: 276
Web-сайт:
Профиль | | #11
Добавлено: 17.03.07 11:14
____ Просто тут такие вопросы задают, что не лишним будет напоминание об этой разнице.
Номер ответа: 12
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #12
Добавлено: 17.03.07 12:37
У меня по умолчанию все считает.
Номер ответа: 13
Автор ответа:
ADSemenov.ru
Вопросов: 5
Ответов: 276
Web-сайт:
Профиль | | #13
Добавлено: 17.03.07 13:16
____ Ну, а поскольку массив получается на единицу больше, чем количество разделителей, то верхний индекс массива численно равен количеству разделителей.
____ А решение красивое — возьму на заметку. Спасибо.
Номер ответа: 14
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #14
Добавлено: 17.03.07 14:50
UBOUND - только верхняя граница
LBOUND - только нижняя
Dim i&-18 to 50)
UBound(i) даст 50, а LBound(i) — -18
Чтобы узнать размер массива надо сделать так
Size = UBound(array) - LBound(array) + 1
Номер ответа: 15
Автор ответа:
WinstoUn
Вопросов: 1
Ответов: 3
Профиль | | #15
Добавлено: 17.03.07 15:20
Спасибо огромное всем! Помогли.
Чесно говоря, узнал много нового )
Спасибо!