Помогите начинающему!

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

Помогите начинающему!

Сообщение mavrados » 14.09.2006 (Чт) 11:55

Добрый день!

Помогите начинающему!

Есть форма на которой находятся 10 элементов "TextBox" и пользователь заполняет часть из них цифрами. Какие из 10 полей будут заполнены заранее не известно...
И есть элемент Label в котором будет выводиться округленное до одного десятичного разряда среднее арифметическое всех значений (TextBox1.text+TextBox3.text+....и т.д.)
отличных от 0 Т.е. если пользователь заполнил 5 полей то находим сумму 5 значений и делим на 5

Как это реализовать по эффективнее?
Заранее благодарен.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 14.09.2006 (Чт) 12:12

Код: Выделить всё
Dim N As Long, C As Long, S As String
For I = 1 To 10
  S = Controls("TextBox" & I).Text
  If IsNumeric(S) Then
    N = N + 1
    C = C + Val(S)
  End If
Next I
MsgBox C / N
Lasciate ogni speranza, voi ch'entrate.

mavrados
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 12.09.2006 (Вт) 12:04

Сообщение mavrados » 14.09.2006 (Чт) 12:46

Спасибо

А что означают строки:

S = Controls("TextBox" & I).Text
If IsNumeric(S) Then

И где можно посмотреть/скачать справочник по синтаксису VB6.0?

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 14.09.2006 (Чт) 13:18

тут или ищи диск с MSDN, а по идее справка по VB должна быть вместе с дистрибутивом.

Код: Выделить всё
S = Controls("TextBox" & I).Text

Это означает, что переменной S присваивается содержимое текстбокса с именем "TextBoxI", а сам текстбокс возвращается из коллекции контролов формы по имени.

Код: Выделить всё
If IsNumeric(S) Then

Это означает проверку, является ли строка S числом.
Весь мир матрица, а мы в нем потоки байтов!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 14.09.2006 (Чт) 13:49

А ещё поэффективнее было бы сделать из TextBox1 ... TextBox10 массив.
Изображение

mavrados
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 12.09.2006 (Вт) 12:04

Сообщение mavrados » 14.09.2006 (Чт) 15:17

Поясни плз.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 14.09.2006 (Чт) 15:28

Назови все текстбоксы на форме одинаково. Среда предложит создать массив. Согласись.
Изображение

mavrados
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 12.09.2006 (Вт) 12:04

Сообщение mavrados » 14.09.2006 (Чт) 16:12

А чем массив лучше?

и еще один вопросик:

Пользователь вводит данные и эти данные необходимо как-то сохранить... Каким способом это лучше реализовать?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 14.09.2006 (Чт) 16:34

Массив лучше тем, что вместо S = Controls("TextBox" & I).Text будет S = TextBox(I).Text : короче и яснее.
Изображение


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

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

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

    TopList