CftClub.ru
Клуб специалистов ЦФТ-Банк

VB-Script
На страницу 1, 2  След.
 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Уроки ЦФТ-Банк для начинающих
Предыдущая тема :: Следующая тема  
Автор Сообщение
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. он не умеет такого. за доку спс, но по английскому тройка, так что не факт, что найду ответ Sad
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е написать то, что я хочу, но то, что я пишу получается не правильно.

может быть вы тогда подскажете, что нужно исправить? Smile

Код:


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@", чего мне как раз не нужно.
мне надо зацепиться именно на имя контрола
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Уроки ЦФТ-Банк для начинающих Часовой пояс: GMT + 3
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru