Не могу создать прогу в VB
Условия задачи:
В цехе обрабатывается Н однаковых деталей на С станках. Время обработки одной детали Т минут. Определить время Р, за который будут обработаны детали, используя формулу: Р=Н*Т/С
Файл прилагается
Вот перезалил
Вот перезалил[ATTACH]4936[/ATTACH]
txtКількість_однакових_деталей
txtЧас_оброблення_одніеї_деталі
txtКількість_станків
Как я понел TextBox'ы тогда нужно сделать проверку ввода. В Вашем случаи только цифры
Неизпользуйте в именах русский и Юникод
Пробуйте так
Dim summa as integer
summa = (Val(txtКількість_однакових_деталей)* Val(txtЧас_оброблення_одніеї_деталі))/ Val(txtКількість_станків)
txtЧас_оброблення_всіх_деталей = Str(summa)
Делайте так
Private Sub Command1_Click()
Dim T1T2 As Integer ' "Integer" можно заменить на Long
T1T2 = (Val(Text1.Text ) * Val(Text2.Text ))/ Val(Text3.Text )
Text4.Text = Str(T1T2)
End Sub
Вобщем по сабжу: ТС при создании своего проекта скопипастил Text1 и на предложение VB создать массив элементов чутко согласился, этъ раз. Два никогда не складывайте(умножайте/делите/вычитайте) текстбоксы непосредственно. Может я конечно слишком параноик но я это делаю так: Text1.Text=CInt(Text2.Text)*CInt(Text3.Text) (к примеру)
Ну и на последок: архив с пофиксеным проектом и собраным exe (visual basic 6)
на депозите, т.к. файлы после обновления форума не прикрепляются
//Так чисто от себя: никогда не называйте объекты кирилическими именами - примета плохая.
А если я этим:
задел чьёто самолюбие, прошу прощения, это не было никому конкретно адресованно, это я над синтаксисом языка прикалываюсь. Ну а Str я неиспользую, потому что на VB я не пишу и без понятия что там вообще такая функция была, спс взял на заметку, но походу для стринга в VB и так перегружен оператор = для корректного преобразования числа в текст.
[COLOR="white"]Ну и редактировать свои сообщения после того как ктото ответил - просто некультурно.[/COLOR]
Cint(числовое_выражение) - числовое выражение, но не как String
Вот пример
Dim MyDouble, MyInt
MyDouble = [COLOR="blue"]2345.5678[/COLOR] ' MyDouble как Double.
MyInt = [COLOR="#ff00ff"]CInt[/COLOR](MyDouble) ' MyInt содержит [COLOR="blue"]2346[/COLOR].
[COLOR="red"]Так почему использовать именно Val?[/COLOR]
Вот пример переменные: a as Integer, b as Double, c as String
c = "[COLOR="blue"]2345.5678[/COLOR]"
a =[COLOR="#ff00ff"] Val[/COLOR](c)
b = [COLOR="#ff00ff"]Val[/COLOR](c)
результат:
a [COLOR="blue"]2346[/COLOR]
b [COLOR="blue"]2345.5678[/COLOR]
Большое спасибо за помощь!!!!
The [color=blue]Val[/color] function recognizes only the period [color=green](.)[/color] as a valid decimal separator. When different decimal separators are used, as in international applications, use [color=blue]CDbl[/color] instead to convert a string to a number.
[COLOR="#f4a460"]Note
The Val function recognizes only the period (.) as a valid decimal separator. When different decimal separators are used, as in international applications,[COLOR="red"] use CDbl instead to convert a string to a number[/COLOR]:confused:.[/COLOR]
[COLOR="blue"]Дайте ссылку на выше написанное:confused: [/COLOR]
[COLOR="#ff00ff"]CDBL[/COLOR] - функция, преобразующая [COLOR="red"]числовое выражения[/COLOR] в число двойной точности.
[COLOR="#ff00ff"]CDBL[/COLOR]([COLOR="red"]числовое_выражения[/COLOR])
[COLOR="#ff00ff"]Val[/COLOR] - Возвращает числа, содержащиеся в строке в качестве [COLOR="green"]числовых значений[/COLOR] [COLOR="red"]соответствующего типа[/COLOR].
Вот ссылочка или здесь или здесь
Дайте ссылку на выше написанное
Мсдн, куда ты сам и отправил читаем:
[quote=msdn]
Примечание.
Функция Val распознает только точку (.) в качестве допустимого десятичного разделителя. Когда используются другие десятичные разделители, например в приложениях на разных языках, применяйте вместо функции Val функцию CDbl или CInt, чтобы преобразовать строку в число.
[/quote]
Dim aaa$
Dim bbb%
Dim ccc#
Dim summa#
aaa = "1,555"
bbb = 2
ccc = 3
summa = Val(aaa) + bbb + ccc
summa = CDbl(aaa) + bbb + ccc
Да теперь работает, только summa = Val(aaa) + bbb + ccc равна 6.0, а summa = CDbl(aaa) + bbb + ccc равна 6.555
Вы хотите сказать, что используют системные настройки у меня 7rus х64 и это значит что на 7ang х64 будет другой результат?
Нечто подобное было с путями директорий на 7rus выдавал ошибку , а 7ang нет
Спасибо учту этот ньюанс или как Вы говорили возьму на заметку. Спасибо
Это фрагмент справки по VB 6.
2.
В материале, на который указывает первая же из приведённых Вами ссылок ("Вот ссылочка"), читаем:
Спасибо я разобрался проблема была в разделители целой (запитая или точка)
В 7ке RUS
[COLOR="#4169e1"]Язык и региональные стандарты - Форматы - Дополнительные парметры... - Числа - Разделитель целой и дробной части[/COLOR] [COLOR="red"]ставим[COLOR="blue"] (.)[/COLOR]точку[/COLOR].
или программно в параметре [COLOR="#4169e1"]sDecimal[/COLOR] [COLOR="red"]ставим[COLOR="blue"] (.)[/COLOR]точку[/COLOR].
[COLOR="#9acd32"]HKEY_CURRENT_USER\Control Panel\International
HKEY_USERS\S-1-5-21-1801223366-1919233639-1525130727-1001\Control Panel\International[/COLOR]