Тихая просьба о помощи

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Novichok$
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 04.11.2005 (Пт) 16:53

Сообщение Novichok$ » 18.11.2005 (Пт) 12:26

Разобрались мы с поминутно и почасово.
Договорились, что поминутно может быть только:
- 5, 10, 15, 20, 30 мин
- и что время запуска в этом случае должно быть кратным Интервалу.

В этом случае легко проверить через OR. Правда немного громоздко вышло.
С "почасово" - аналогично.

Ты не знаешь, что есть ограничения в VB .NET по колличеству знаков в одной строке?


Уже час маюсь с синтаксисом.
Вот такой эллементарный перенос он у сеня почему то не воспринимает:
Код: Выделить всё
ElseIf Interval = 2 Then
                            If (DateNowStund = DateStartStund) Or (DateNowStund = DateStartStund + Interval), _
                            Or (DateNowStund = DateStartStund + Interval * 2) Then

Подчеркивает все синим и говорит "Ожидается end of- Указание"
Может If и Then должны быть в одной строке?

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 18.11.2005 (Пт) 12:41

Запятую в "DateStartStund + Interval), _ " убери
Учиться - значит открывать для себя то, что уже знаешь. <...> Учить - значит напоминать другим о том, что они знают это также хорошо, как и ты. <...> Лучше всего ты учишь тому, чему тебе самому больше всего надо научиться. (Р. Бах)

Novichok$
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 04.11.2005 (Пт) 16:53

Сообщение Novichok$ » 18.11.2005 (Пт) 12:54

Спасибо.

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 18.11.2005 (Пт) 12:55

Почему ты опять пользуешься приведением даты к строке, когда просто можно спросить у даты, сколько там минут?
Код: Выделить всё
DateNow = Format(Date.Now, "mm")
                            MessageBox.Show(DateNow)
                            If DateNow = 0 Or 5 Or 10 Or 15 Or 20 Or 25 Or 30 Or 35 Or 40 Or 45 Or 50 Or 55 Then


Замени это фрагмент на следующее:
Код: Выделить всё
If (Date.Now.Minute Mod 5 = 0) Then

Оператор Мod вычисляет остаток от деления. В данном случае, я проверяю, что Минуты кратны 5.

Переделай остальные аналогично.
Учиться - значит открывать для себя то, что уже знаешь. <...> Учить - значит напоминать другим о том, что они знают это также хорошо, как и ты. <...> Лучше всего ты учишь тому, чему тебе самому больше всего надо научиться. (Р. Бах)

Novichok$
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 04.11.2005 (Пт) 16:53

Сообщение Novichok$ » 18.11.2005 (Пт) 13:33

Rainbow писал(а):Почему ты опять пользуешься приведением даты к строке, когда просто можно спросить у даты, сколько там минут?

По незнанию,
теперь буду знать

Novichok$
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 04.11.2005 (Пт) 16:53

Сообщение Novichok$ » 18.11.2005 (Пт) 13:43

Все исправил, любо дорого ...
теперь буду If на select case менять

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 18.11.2005 (Пт) 14:55

По незнанию, теперь буду знать

Всегда первым делом нажимай точку и смотри, нет ли нужного тебе метода или свойства. А уж потом думай, как тебе обойтись без него.

Если объект типа DateTime, то логично предположить, что разработчики позаботились о том, чтобы тебе было удобно с датами работать - добавили наиболее очевидные свойства и методы.
Учиться - значит открывать для себя то, что уже знаешь. <...> Учить - значит напоминать другим о том, что они знают это также хорошо, как и ты. <...> Лучше всего ты учишь тому, чему тебе самому больше всего надо научиться. (Р. Бах)

Novichok$
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 04.11.2005 (Пт) 16:53

Сообщение Novichok$ » 18.11.2005 (Пт) 15:43

Еще вопросик по синтаксису:

Теперь я вместо MessageBox.Show делаю так:
Код: Выделить всё
If Interval = 5 Then
                            If (Date.Now.Minute Mod 5 = 0) Then
                                proc.StartInfo.FileName = "C:\WindowsApplication1.exe"
                                proc.Start()

И это работает, проблма в том, что это WindowsApplication1.exe имеет еще параметры старта, ее можно стартовать так:
C:\WindowsApplication1.exe
или
C:\WindowsApplication1.exe "1"
или
C:\WindowsApplication1.exe "2"


Для параметров старта у меня в программе прелусмотрена Переменная (Dim Parametr As VariantType)
И 1ый столбец в таблице (Parametr = myReader.GetValue(0))
Теперь я пытаюсь WindowsApplication1.exe с параметром "1" стартовать:
"C:\WindowsApplication1.exe & " + " & "Parametr""
или
"C:\WindowsApplication1.exe & " + " & Parametr"
или
"C:\WindowsApplication1.exe "Parametr""
или
"C:\WindowsApplication1.exe Parametr"

"C:\WindowsApplication1.exe', ' "Parametr"'"

и все никак

Novichok$
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 04.11.2005 (Пт) 16:53

Сообщение Novichok$ » 18.11.2005 (Пт) 15:57

уже сам нашел, спасибо

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 18.11.2005 (Пт) 16:01

А точку использовать? ;)
Раз уж нашел FileName, логично предположить, что там же можно задать и другие параметры запуска.

proc.StartInfo.Arguments = "1"
Учиться - значит открывать для себя то, что уже знаешь. <...> Учить - значит напоминать другим о том, что они знают это также хорошо, как и ты. <...> Лучше всего ты учишь тому, чему тебе самому больше всего надо научиться. (Р. Бах)

Novichok$
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 04.11.2005 (Пт) 16:53

Сообщение Novichok$ » 21.11.2005 (Пн) 12:19

Привет,

Хотел спросить, а на сколько важно и вообще нужно ли менять мне мой код (написанный с If Then Else), на Select case + писать функции везде?

Это вопрос производительности программы или "хорошего тона" в программировании.

Пытаюсь сделать, как ты мне выше показывала, и опять 150 вопросов по поводу "что где и как первым объявлять".
Может лучше так оставить?

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 21.11.2005 (Пн) 14:06

Это вопрос производительности программы или "хорошего тона" в программировании.

В общем-то это вопрос хорошего тона. Проще читать и понимать (даже свою через 3 месяца) программу. Иногда это также вопрос производительности (например при операциях со строками)

Пытаюсь сделать, как ты мне выше показывала, и опять 150 вопросов по поводу "что где и как первым объявлять".

А поподробнее вопросы? ;)
Учиться - значит открывать для себя то, что уже знаешь. <...> Учить - значит напоминать другим о том, что они знают это также хорошо, как и ты. <...> Лучше всего ты учишь тому, чему тебе самому больше всего надо научиться. (Р. Бах)

Novichok$
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 04.11.2005 (Пт) 16:53

Сообщение Novichok$ » 21.11.2005 (Пн) 15:16

Я тебе в ЛС написал

Пред.

Вернуться в Visual Basic .NET

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

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

    TopList  
cron