Существует ли параметр

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

Существует ли параметр

Сообщение Роман-вб » 24.06.2006 (Сб) 11:44

Как определить, существует ли в ключе
HKEY_CURRENT_USER\Software\VB and VBA Program Settings\ROMANVB\SectionRVB параметр "reg", независимо от того, есть ли в нём какое-л. значение?
Заранее спасибо.
Жить ещё 2 недели, работы на 8 лет, но я докажу на деле, на что способен аскет!

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Сообщение burik » 24.06.2006 (Сб) 12:02

Может, попробуй получить значение параметра "reg".
Например API функцией RegQueryValueEx. В удачном случае вернется 0, а в противном случае код ошибки отчичный от нуля.
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

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

Сообщение tyomitch » 24.06.2006 (Сб) 12:03

Код: Выделить всё
If StrPtr(GetSetting("ROMANVB","SectionRVB","reg",vbNullString)) Then 'существует
Изображение

Роман-вб
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 520
Зарегистрирован: 04.04.2006 (Вт) 9:40
Откуда: Средняя полоса

Сообщение Роман-вб » 24.06.2006 (Сб) 12:37

tyomitch

Проверяю я так: (если не существует, то...)
If Not (StrPtr(GetSetting("ROMANVB", "SectionRVB", "reg", vbNullString))) Then
...

Но невзирая на то , что параметр всё таки существует, условие выполняется... :(
Оно выполняется и когда не существует ( :) )
Жить ещё 2 недели, работы на 8 лет, но я докажу на деле, на что способен аскет!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 24.06.2006 (Сб) 12:38

Роман-вб
Изменяя код, убедись, что понял его смысл.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Роман-вб
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 520
Зарегистрирован: 04.04.2006 (Вт) 9:40
Откуда: Средняя полоса

Сообщение Роман-вб » 24.06.2006 (Сб) 12:54

GSerg
ну да, в том то и дело, что я не совсем в этом убедился.
Да, конечно StrPtr возвращает Long...
Ну а вот чтоб проверить, существует или нет, можно так
If GetSetting("ROMANVB", "SectionRVB", "reg") = "" Then 'не существует
Жить ещё 2 недели, работы на 8 лет, но я докажу на деле, на что способен аскет!

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

Сообщение tyomitch » 24.06.2006 (Сб) 13:05

Роман-вб писал(а):Ну а вот чтоб проверить, существует или нет, можно так
If GetSetting("ROMANVB", "SectionRVB", "reg") = "" Then 'не существует

Неправда. Ты не сможешь так отличить несуществующее значение от пустого.
Изображение

Роман-вб
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 520
Зарегистрирован: 04.04.2006 (Вт) 9:40
Откуда: Средняя полоса

Сообщение Роман-вб » 24.06.2006 (Сб) 13:08

tyomitch
Ну да, это так.
Тогда спрошу у тебя, как мнге записать такое условие:
Если НЕ существует параметр reg в ключе "ROMANVB\SectionRVB", то ...
Жить ещё 2 недели, работы на 8 лет, но я докажу на деле, на что способен аскет!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 24.06.2006 (Сб) 13:20

Сам не?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Роман-вб
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 520
Зарегистрирован: 04.04.2006 (Вт) 9:40
Откуда: Средняя полоса

Сообщение Роман-вб » 24.06.2006 (Сб) 13:28

GSerg
Не.
меня вводит в заблуждение то, что StrPtr возвр. значен. Long, а в условии проверяется как логическое. И получается, если я применю к числу NOT, то значит я произведу над ним побитовую операцию...
Жить ещё 2 недели, работы на 8 лет, но я докажу на деле, на что способен аскет!

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

Сообщение tyomitch » 24.06.2006 (Сб) 13:31

Загадка для Романа: что нужно сделать с числом, чтобы произвести над ним логическое отрицание, а не побитовое?
Изображение

Роман-вб
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 520
Зарегистрирован: 04.04.2006 (Вт) 9:40
Откуда: Средняя полоса

Сообщение Роман-вб » 24.06.2006 (Сб) 13:39

Неправда. Ты не сможешь так отличить несуществующее значение от пустого.



проверить, существует или нет


If StrPtr(GetSetting("ROMANVB", "SectionRVB", "reg", vbNullString)) = 0 Then

вот так
Жить ещё 2 недели, работы на 8 лет, но я докажу на деле, на что способен аскет!

Роман-вб
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 520
Зарегистрирован: 04.04.2006 (Вт) 9:40
Откуда: Средняя полоса

Сообщение Роман-вб » 24.06.2006 (Сб) 13:42

tyomitch
Ну я ж ДИЛЕТАНТ (в хорошем смысле(!)) :lol: . И не отрицаю этого :lol:


Загадка для Романа: что нужно сделать с числом, чтобы произвести над ним логическое отрицание, а не побитовое


может ты про CBool?
Жить ещё 2 недели, работы на 8 лет, но я докажу на деле, на что способен аскет!

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

Сообщение tyomitch » 24.06.2006 (Сб) 14:21

про CBool -- таки да, угадал :lol:
Изображение

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 26.06.2006 (Пн) 8:54

2Роман-вб: GetAllSettings - и никаких "побитовых отрицаний" :)

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 26.06.2006 (Пн) 9:18

Nicky
Угу! Поддерживаю. Но вот как ты собираешься получить значение из
HKLM/Software/Microsoft/Windows NT/CurrentVersion/Winlogon
с помощью данной функции?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

GB826
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 312
Зарегистрирован: 04.08.2005 (Чт) 0:58
Откуда: Планета #3

Сообщение GB826 » 26.06.2006 (Пн) 9:31

Хакер

Автор дал конкретный путь...

2All
Код: Выделить всё

If len(GetSetting("ROMANVB", "SectionRVB", "reg", vbNullString)) = 0 Then


Еще и так можно... но надо ли?
Пора уже всем хорошим людям собраться и убить всех плохих людей.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 26.06.2006 (Пн) 9:38

А если там параметр, значение которого = "" ?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 26.06.2006 (Пн) 9:38

GB826, так нельзя и не надо. Сравни с http://bbs.vbstreets.ru/viewtopic.php?p=6614506#6614506.

GB826
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 312
Зарегистрирован: 04.08.2005 (Чт) 0:58
Откуда: Планета #3

Сообщение GB826 » 26.06.2006 (Пн) 9:44

Хакер
Amed
Хотел поспорить, потом осилил :о))


Хотя кому нужна пустая строка в реестре? :оР
Пора уже всем хорошим людям собраться и убить всех плохих людей.

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

Сообщение tyomitch » 26.06.2006 (Пн) 9:45

Nicky писал(а):2Роман-вб: GetAllSettings - и никаких "побитовых отрицаний" :)

Ага, вместо одной операции -- перебор всех значений?
Изображение

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 26.06.2006 (Пн) 9:59

tyomitch писал(а):
Nicky писал(а):2Роман-вб: GetAllSettings - и никаких "побитовых отрицаний" :)

Ага, вместо одной операции -- перебор всех значений?

1.
Роман-вб писал(а):tyomitch
Ну я ж ДИЛЕТАНТ (в хорошем смысле(!)) :lol: . И не отрицаю этого :lol:

2. Instr(1,Join(...)) - до боли родные березки

[EDIT]: хм, он же two-dimensional... Ну да, упрощение привело к усложнению... Ну тогда Роману учить матчасть :)

Роман-вб
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 520
Зарегистрирован: 04.04.2006 (Вт) 9:40
Откуда: Средняя полоса

Сообщение Роман-вб » 26.06.2006 (Пн) 18:34

Nicky
ПАСИБА, ГЫ ГЫ ГЫ
У-У-У-У :lol: :lol: :lol:
Жить ещё 2 недели, работы на 8 лет, но я докажу на деле, на что способен аскет!


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

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

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

    TopList  
cron