Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Переменные окружения 
V
    Опции темы
quasi
Дата 20.11.2007, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 271
Регистрация: 9.6.2007

Репутация: 1
Всего: 0



Подскажите как вытащить от сюда значение 3'его октета?
Код

strIP   = oWTSCOM.WTSQuerySessionInformation(0, -1, 14)

Т.е. strIP равен 192.168.17.140, мне надо число 17 сравнить с каким нибуть списком(к стат как его сделать?)
Если 17 совпало с числом из списка, то сказать вот так этому юзеру переменную
Код
Set WshShell = WScript.CreateObject("WScript.Shell")
Set WshSysEnv = WshShell.Environment("USER")
WScript.Echo WshSysEnv("NUM")

Только вот не знаю как задать значение, хм... Т.к. в зависимости от числа 3'его октета нужно выдавать определенный NUM неравный значению числа октета(в данном примере неравный 17).

Это сообщение отредактировал(а) quasi - 20.11.2007, 10:13
PM MAIL   Вверх
Akina
Дата 21.11.2007, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(quasi @  20.11.2007,  11:13 Найти цитируемый пост)
как вытащить от сюда значение 3'его октета?

Код

octets = split(strIP,".")
octet3 = octets(2)


Цитата(quasi @  20.11.2007,  11:13 Найти цитируемый пост)
как задать значение

См. справку по установке значений глобальных переменных окружения


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
quasi
Дата 21.11.2007, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 271
Регистрация: 9.6.2007

Репутация: 1
Всего: 0



А как сделать вот что...
Как присвоить значениям массива определенные значения? Т.е. в зависимости от того какое число из массива совпало делать определенное действие?
Код

List = "|1|2|3|" 
IpArray = Split(strIP, ".", -1, 1) 
Octet3 = IpArray(2) 
If InStr(1, List, "|" & Octet3 & "|") > 0 Then

Вот тут к примеру массив из 3х чисел, если совпало одно из них с "Octet3", то устанавливать определенную переменную окружения. 

Возможно нужно сделать вспомогательный массив, к примеру 
List2 = "|33|0|56|" 
только е ясно как значения из массива лист2 сопроставить с соответствующими в лист и выдавать их(из лист2) в качестве переменных окружения(т.е. это сами значения переменных)
Код

List1 = "|1|3|5|"
List2 = "|33|0|56|" <-- из массива
IP = "192.168.1.140"
IpArray = Split(IP, ".", -1, 1)
Octet3 = IpArray(2)

If InStr(1, List1, "|" & Octet3 & "|") > 0 Then WScript.Echo "33" <-- значение 


Цитата

См. справку по установке значений глобальных переменных окружения 

плиз, если можно что просить в гугле на английсвом желательно или в мсдн, обрал все нашел только то что написал в первом посте, т.е. только как создаваьт переменую, а нужно ведь еще как-то значение ей задать, да еще и в зависимости от подсети клиента...
Уф, думаю понятно объяснил чего хочу?!

Это сообщение отредактировал(а) quasi - 21.11.2007, 15:12
PM MAIL   Вверх
Akina
Дата 21.11.2007, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(quasi @  21.11.2007,  15:45 Найти цитируемый пост)
думаю понятно объяснил чего хочу?! 

Да, ты хочешь, чтобы за тебя сделали программу. Так что либо ты обзаводишься самоучителем по VB в бумаге и перестаешь задавать детские вопросы, либо переезжаем в Центр помощи.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
JusTalionis
Дата 21.11.2007, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 576
Регистрация: 11.7.2006

Репутация: 6
Всего: 17



Цитата(quasi @  21.11.2007,  14:45 Найти цитируемый пост)
в зависимости от того какое число из массива совпало делать определенное действие?

Попробуй воспользоваться оператором SELECT, например так:
Код

SELECT CASE Octet3
CASE 17
  WScript.Echo "33"         'будет выполнено, если Octet3 = 17
CASE 33
  WScript.Echo "..."        'будет выполнено, если Octet3 = 33
CASE 40 TO 51
  ' ... будет выполнено, если величина Octet3 попадает в диапазон от 40 до 51
CASE ELSE
  '... будет выполнено, если ни одна другая строчка не сработала
END SELECT

' все case опциональны.
' строк с командами под каждым case может быть больше одной.
' если выполнился один case, остальные не проверяются.

PM MAIL   Вверх
quasi
Дата 22.11.2007, 05:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 271
Регистрация: 9.6.2007

Репутация: 1
Всего: 0



в общем получилось вроде того, только не до конца, значение переменной окружения почему-то не из переменной RetVal выдается=(
Код

Dim strIP 
Dim objWSH 
Dim objUserVariables 
Dim objSystemVariables 
Dim RetVal 
Set objWSH =  CreateObject("WScript.Shell") 
Set oWTSCOM = CreateObject("EOLWTSCOM.WTSCOM") 
StrIP   = oWTSCOM.WTSQuerySessionInformation(0, -1, 14)  
IpArray = Split(StrIP, ".", -1, 1)  
  
ListArray1 = Array(12, 1, 5)  
ListArray2 = Array(11, 13, 56)  
  
Octet3 = IpArray(2)  
  
FindOctet = ArraySearch(ListArray1, Octet3, 0, 1)  
If FindOctet <> -1 Then WScript.Echo ListArray2(FindOctet)  
  
Function ArraySearch(ByRef sArray, StrToFind, Part, Dimention)  
    RetVal = -1  
    For i = 0 To Ubound(sArray, Dimention)  
        If (Part = 1 And InStr(1, sArray(i), StrToFind) > 0) Or (Part <> 1 And CStr(sArray(i)) = CStr(StrToFind))  
 
Then  
            RetVal = i  
            Exit For  
        End If  
    Next  
    ArraySearch = RetVal  
End Function 
 
Set objUserVariables = objWSH.Environment("USER")  
objUserVariables("NUM") = " & RetVal & "


Это сообщение отредактировал(а) quasi - 22.11.2007, 05:18
PM MAIL   Вверх
quasi
Дата 22.11.2007, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 271
Регистрация: 9.6.2007

Репутация: 1
Всего: 0



Все, победил, может кому пригодится...
Код

Dim strIP, objWSH, objUserVariables, objSystemVariables 
 
Set objWSH =  CreateObject("WScript.Shell") 
Set oWTSCOM = CreateObject("EOLWTSCOM.WTSCOM") 
 
StrIP   = oWTSCOM.WTSQuerySessionInformation(0, -1, 14) 
IpArray = Split(StrIP, ".", -1, 1) 
Octet3 = IpArray(2) 

SELECT CASE Octet3
CASE 1
    Set objUserVariables = objWSH.Environment("USER") 
    objUserVariables("NUM") = 11
CASE 33
    Set objUserVariables = objWSH.Environment("USER") 
    objUserVariables("NUM") = 22
CASE 14
    Set objUserVariables = objWSH.Environment("USER") 
    objUserVariables("NUM") = 33
CASE ELSE
   WScript.Echo "or dide"
END SELECT

Код

Dim strIP, objWSH, objUserVariables, objSystemVariables 
 
Set objWSH =  CreateObject("WScript.Shell") 
Set oWTSCOM = CreateObject("EOLWTSCOM.WTSCOM") 
 
StrIP   = oWTSCOM.WTSQuerySessionInformation(0, -1, 14) 
IpArray = Split(StrIP, ".", -1, 1) 
 
ListArray1 = Array(12, 1, 5) 
ListArray2 = Array(11, 13, 56) 
 
Octet3 = IpArray(2) 
 
FindOctet = ArraySearch(ListArray1, Octet3, 0, 1) 
If FindOctet <> -1 Then 
    Set objUserVariables = objWSH.Environment("USER") 
    objUserVariables("NUM") = ListArray2(FindOctet) 
    WScript.Echo ListArray2(FindOctet) 
End If 
 
Function ArraySearch(ByRef sArray, StrToFind, Part, Dimention) 
    RetVal = -1 
    For i = 0 To Ubound(sArray, Dimention) 
        If (Part = 1 And InStr(1, sArray(i), StrToFind) > 0) Or (Part <> 1 And CStr(sArray(i)) = CStr(StrToFind)) Then 
            RetVal = i 
            Exit For 
        End If 
    Next 
    ArraySearch = RetVal 
End Function


Это сообщение отредактировал(а) quasi - 25.11.2007, 14:59
PM MAIL   Вверх
JusTalionis
Дата 22.11.2007, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 576
Регистрация: 11.7.2006

Репутация: 6
Всего: 17



 smile  и у тебя строка "CASE 14 AND 15" работает??!


PM MAIL   Вверх
quasi
Дата 25.11.2007, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 271
Регистрация: 9.6.2007

Репутация: 1
Всего: 0



Цитата

smile  и у тебя строка "CASE 14 AND 15" работает??!

нет=)
потом просто сделал несколько кейсов, а тут не исправил, ща поправлю...)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0727 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.