сгенерировать буквы

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

сгенерировать буквы

Сообщение Роман Волков » 13.01.2005 (Чт) 19:05

мен надо так чтобы компьютер выбрал любую букву из данных ему. Допустим есьт букв F,t,e. Из них копм долже выбрать любую. Должно быть здесь вместо букв можно записать и символы, наверное правильно нужно было сказать про символы, но думаю на буквах мне будет понятнее.
Перед тем как писать о том, что Вы думаете - подумайте о том, что Вы хотите написать!

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 13.01.2005 (Чт) 19:13

Рома, прочти свою подпись и проникнись :P

Но, если я понял, то тебе нужно что-то вроде:

случайный символ из перечисления:
Код: Выделить всё
'в модуль
Public Const vbComma = ","

Public Function RandTx(strText As String) As String
On Error Resume Next
Dim arrLetters() As String
Dim lNum As Long
    arrLetters = Split(strText, vbComma)
    Randomize Timer
    lNum = Fix((UBound(arrLetters) - _
    LBound(arrLetters) + 1) * Rnd + LBound(arrLetters))
    RandTx = arrLetters(lNum)
End Function


случайный символ из строки:
Код: Выделить всё
'в модуль
Public Function RandTx(strText As String) As String
On Error Resume Next
Dim arrLetters() As String
Dim lNum As Long
    Randomize Timer
    lNum = Fix((Len(strText) - _
    1 + 1) * Rnd + 1)
    RandTx = Mid(strText, lNum, 1)
End Function


случайный символ из массива:
Код: Выделить всё
'в модуль
Public Function RandTx(arrSymbols() As String) As String
On Error Resume Next
Dim lNum As Long
    Randomize Timer
    lNum = Fix((UBound(arrSymbols) - _
    LBound(arrSymbols) + 1) * Rnd + LBound(arrSymbols))
    RandTx = arrSymbols(lNum)
End Function
Моду создают модоки, а распространяют модозвоны.

Роман Волков
Новичок
Новичок
Аватара пользователя
 
Сообщения: 34
Зарегистрирован: 03.01.2005 (Пн) 18:55

Сообщение Роман Волков » 13.01.2005 (Чт) 19:35

Куда это в модуль? Я не понимаю, хотя предполагаю! Много кодов, но мне нужен такой, чтобы его можно было использовать следующим образом: нажимаю по кнопке и в текстбоксе мне отображается выбранная буква(или символ). Мне бы вот такой простой вариант. Но не обижусь если меня научат провернуть более сложный (для меня) вариант с модулями. просто я ещё только с формами работаю и ни с чем больше!
Перед тем как писать о том, что Вы думаете - подумайте о том, что Вы хотите написать!

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 13.01.2005 (Чт) 20:00

Простой пример с использованием одной из вышеописанных функций:
помещаем на форму два TextBox'а с именами Text1 и Text2, CommandButton с именем Command1 и в модуле формы пишем следующий код:
Код: Выделить всё
Private Sub Command1_Click()
Text2.Text = RandTx(Text1.Text)
End Sub

Private Function RandTx(strText As String) As String
On Error Resume Next
Dim arrLetters() As String
Dim lNum As Long
    Randomize Timer
    lNum = Fix((Len(strText) - _
    1 + 1) * Rnd + 1)
    RandTx = Mid(strText, lNum, 1)
End Function


При этом в Text2 рпри нажатии кнопки отобразится один из символов, написанных в Text1.

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 13.01.2005 (Чт) 20:42

куда это в модуль?

Как куда? Известно куда! В меню Project:arrow:Add Module :) После создания модуля он сразу же откроется. Задай в окне Properties любое имя. Стандартное имя для главного модуля - mdlMain, basMain или modMain. После чего вставляешь любую из описанных мной функций в модуль и используешь из любого места программы, в т.ч. и формы :)
Моду создают модоки, а распространяют модозвоны.

Роман Волков
Новичок
Новичок
Аватара пользователя
 
Сообщения: 34
Зарегистрирован: 03.01.2005 (Пн) 18:55

Сообщение Роман Волков » 15.01.2005 (Сб) 19:09

Слушай hCORe. Я вот понял где этот модуль взять и как туда запихнуть этот код. Но как теперь мне в форме воспользоваться тем, что написано в модуле. Желательно чтобы использование кода модуля происходило при клике по кнопке.
Перед тем как писать о том, что Вы думаете - подумайте о том, что Вы хотите написать!

Роман Волков
Новичок
Новичок
Аватара пользователя
 
Сообщения: 34
Зарегистрирован: 03.01.2005 (Пн) 18:55

Сообщение Роман Волков » 15.01.2005 (Сб) 19:11

Спасибо Др.Миг. Я попробовал, то что ты написал. Всё работает! В принципе то, что надо! А как ещё сделать так чтобы генерировался не один символ а несколько?
Перед тем как писать о том, что Вы думаете - подумайте о том, что Вы хотите написать!

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 15.01.2005 (Сб) 19:51

Работа с модулем не отличается от работы с формой. Вызывай функцию RandTx и будет тебе счастье :D
Моду создают модоки, а распространяют модозвоны.

Роман Волков
Новичок
Новичок
Аватара пользователя
 
Сообщения: 34
Зарегистрирован: 03.01.2005 (Пн) 18:55

Сообщение Роман Волков » 16.01.2005 (Вс) 17:53

Вызвать функцию? Это интересно! И как её вызвать. Я тут встречал ответ с кодом, где был вызов функции, но мало чего понял. Значит, я так понимаю, вызвав эту функцию, я укажу где находится код ( в каком модуле или форме). Эту функцию я напишу для кнопки. А генератор букв (символов) напишу всё-таки в модуле. Просто интересно, я никогда ещё с модулями не работал.
Перед тем как писать о том, что Вы думаете - подумайте о том, что Вы хотите написать!

Роман Волков
Новичок
Новичок
Аватара пользователя
 
Сообщения: 34
Зарегистрирован: 03.01.2005 (Пн) 18:55

Сообщение Роман Волков » 16.01.2005 (Вс) 17:55

hCORe писал(а): Вызывай функцию RandTx и будет тебе счастье :D


С моими то знаниями! :lol: Я пробовал химичить с вызовом этой функции и было мне не счастье :D , а море синтаксических ошибок! :D
Перед тем как писать о том, что Вы думаете - подумайте о том, что Вы хотите написать!

Qubicz
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 16.10.2004 (Сб) 20:21
Откуда: Санкт-Петербург

Сообщение Qubicz » 16.01.2005 (Вс) 18:33

Код: Выделить всё
Private Sub Command1_Click()
Tex2.Text=""
For n=0 to 55
Text2.Text = text2.Text & RandTx(Text1.Text)
Next
End Sub

Длина 55 символов

Роман Волков
Новичок
Новичок
Аватара пользователя
 
Сообщения: 34
Зарегистрирован: 03.01.2005 (Пн) 18:55

Сообщение Роман Волков » 26.01.2005 (Ср) 8:11

Пробовал. Не идёт.
Перед тем как писать о том, что Вы думаете - подумайте о том, что Вы хотите написать!

KDima
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 759
Зарегистрирован: 14.07.2004 (Ср) 23:14
Откуда: СПб

Сообщение KDima » 26.01.2005 (Ср) 19:12

Роман Волков

А может лучше почитать учебник по VB? :wink:
Хороший прогер не тот, кто всё знает, хороший прогер знает, где найти знание.

Последний раз редактировалось: Administrator (15.07.2004 (Вт) 00:01), всего редактировалось 999 раз(а)


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

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

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

    TopList  
cron