Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
wolfio Участник - экстремал
Вступление в Клуб: 22.10.2012
|
Ср Ноя 12, 2014 17:20  VB-Script |
|
Полезность: Нет оценки
|
Добрый ночь, знатоки
в вб-скриптах не силен, гугл забанен. переведите, пожалуйста вот этот кусочек кода в VB-script:
*обращаю внимание, что код более чем не реальный, т.к. это плод моего воображения и желания, смешанный с pl/sql. и мне нужна его правильная и полная транслитерация на VBS
Код: |
if LastControl like 'F%' then
for x in 1..200
where x = substr(LastControl,-1)
loop
Lastcontrol.Caption = V_label.text
end loop
end if
|
|
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Ср Ноя 12, 2014 17:59   |
|
Полезность: Нет оценки
|
как то так
(плод воображения)
Код: |
Public Function Main(LastControl)
if LastControl is Nothing then
msgbox "test"
else
For Each Ctrl in Form1.Controls
if ctrl.validateName = lastcontrol.ValidateName then
'msgbox Ctrl.ValidateName
Ctrl.Caption = Ctrl.ValidateName
end if
Next
end if
Main = true
End Function
|
|
|
 |
wolfio Участник - экстремал
Вступление в Клуб: 22.10.2012
|
Ср Ноя 12, 2014 18:05   |
|
Полезность: Нет оценки
|
vtar пишет: | как то так
(плод воображения)
|
проблема в том, что у меня больше чем 200 контролов. Т.е. выделить именно те, что надо можно по наличию буквы F в имени контрола. потому и лайк.
есть другие варианты? |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Ср Ноя 12, 2014 23:20   |
|
Полезность: Нет оценки
|
дык фильтруй по lastcontrol.ValidateName, чо |
|
 |
wolfio Участник - экстремал
Вступление в Клуб: 22.10.2012
|
Чт Ноя 13, 2014 08:48   |
|
Полезность: Нет оценки
|
vtar пишет: | дык фильтруй по lastcontrol.ValidateName, чо |
так как? я ж грю, не силен в VBS'е
лайк бы, но я чето не могу его нормально написать |
|
 |
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Чт Ноя 13, 2014 09:18   |
|
Полезность: Нет оценки
|
wolfio пишет: | vtar пишет: | дык фильтруй по lastcontrol.ValidateName, чо |
так как? я ж грю, не силен в VBS'е
лайк бы, но я чето не могу его нормально написать |
Посмотри в сторону CSMD.
В приложении - документация по VBS из MSDN не помню какой версии. |
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Чт Ноя 13, 2014 09:40   |
|
Полезность: Нет оценки
|
Returns a specified number of characters from a string.
Mid(string, start[, length]) |
|
 |
wolfio Участник - экстремал
Вступление в Клуб: 22.10.2012
|
Чт Ноя 13, 2014 10:21   |
|
Полезность: Нет оценки
|
Volod пишет: | Returns a specified number of characters from a string.
Mid(string, start[, length]) |
че? |
|
 |
wolfio Участник - экстремал
Вступление в Клуб: 22.10.2012
|
Чт Ноя 13, 2014 10:21   |
|
Полезность: Нет оценки
|
Random пишет: | wolfio пишет: | vtar пишет: | дык фильтруй по lastcontrol.ValidateName, чо |
так как? я ж грю, не силен в VBS'е
лайк бы, но я чето не могу его нормально написать |
Посмотри в сторону CSMD.
В приложении - документация по VBS из MSDN не помню какой версии. |
я уже перечитал весь CSMD. он не умеет такого. за доку спс, но по английскому тройка, так что не факт, что найду ответ  |
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Чт Ноя 13, 2014 10:34   |
|
Полезность: Нет оценки
|
mid - это substr
If mid("F_wert", 1, 1) = "F" then
.... |
|
 |
wolfio Участник - экстремал
Вступление в Клуб: 22.10.2012
|
Чт Ноя 13, 2014 10:40   |
|
Полезность: Нет оценки
|
знатоки, родненькие, давайте тогда чуть иначе. вот есть у меня мысль про то как на VBSе написать то, что я хочу, но то, что я пишу получается не правильно.
может быть вы тогда подскажете, что нужно исправить?
Код: |
Public Function Main(LastControl)
dim ch
ch = instr(1,LastControl,"F")
if ch is 1 then
For i=1 to 200
LastControl.Caption = V_LABEL.Text
Next
end if
Execute V_VB.TEXT
Main = true
End Function
|
|
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Чт Ноя 13, 2014 10:52   |
|
Полезность: Нет оценки
|
Попробуй протестить вот это
и напиши, что не так
Код: |
Public Function Main(LastControl)
if LastControl is Nothing then
For Each Ctrl in Form1.Controls
if ucase(mid(ctrl.validateName,1,1)) = "F" then
Ctrl.Caption = Ctrl.ValidateName & "@test@"
end if
Next
else
msgbox LastControl.ValidateName
end if
Main = true
End Function
|
|
|
 |
Alex294 Участник со стажем
Вступление в Клуб: 02.06.2013
|
Чт Ноя 13, 2014 10:59   |
|
Полезность: Нет оценки
|
Код: |
if left(LastControl.Name,1) = "F" then
LastControl.Caption = V_label.text
end if
|
Зачем цикл до 200 не понял. |
|
 |
wolfio Участник - экстремал
Вступление в Клуб: 22.10.2012
|
Чт Ноя 13, 2014 11:10   |
|
Полезность: Нет оценки
|
Alex294 пишет: | Код: |
if left(LastControl.Name,1) = "F" then
LastControl.Caption = V_label.text
end if
|
Зачем цикл до 200 не понял. |
вы правы, можно и без цикла. я просто как то заморочился именно циклом.
ваш вариант вроде прост и легок, но почему то не работает:
"Ошибка исполнения клиент-скрипта:
Описание: Jbject variable not set
...
строка 3"
в третьей строке у меня "if left(LastControl.Name,1) = "F" then " |
|
 |
wolfio Участник - экстремал
Вступление в Клуб: 22.10.2012
|
Чт Ноя 13, 2014 11:12   |
|
Полезность: Нет оценки
|
vtar пишет: | Попробуй протестить вот это
и напиши, что не так
|
ваш вариант работает, но при поднятии формы, он на всех контролах сразу проставляет "@test@", чего мне как раз не нужно.
мне надо зацепиться именно на имя контрола |
|
 |
|