Page 1 of 1 1
Topic Options
#204521 - 2012-03-20 06:18 PM While Loop instead?
KIXKicks Offline
Starting to like KiXtart

Registered: 2002-07-26
Posts: 177
Loc: Vancouver, WA
I need this script to run through each check and build a list based on what checks are valid, ignoring the invalid ones

 Code:
Select
   Case $CHECK1 <> "NOT VALID" $SOFTCHECK = "Item1" $SOFTITEM = "KIX Check"
   Case $CHECK2 <> "NOT VALID" $SOFTCHECK = "Item2" $SOFTITEM = "VB Check"
   Case $CHECK3 <> "NOT VALID" $SOFTCHECK = "Item3" $SOFTITEM = "C++ Check"
EndSelect

If $CHECK1 <> "NOT VALID"
  $GBLABEL.TEXT = $SOFTCHECK + ": " + $SOFTITEM
EndIf

If $CHECK2 <> "NOT VALID"
  $GBLABEL.TEXT = $SOFTCHECK + ": " + $SOFTITEM
EndIf

If $CHECK3 <> "NOT VALID"
  $GBLABEL.TEXT = $SOFTCHECK + ": " + $SOFTITEM
EndIf


Of course, the list is long 10-15 items and I need it to display all VALID Checks without the NOT VALID ones. Hopefully this will be a dynamic list...

Not complete code, but there should be enough to get the idea.

Top
#204522 - 2012-03-20 06:30 PM Re: While Loop instead? [Re: KIXKicks]
Allen Administrator Offline
KiX Supporter
*****

Registered: 2003-04-19
Posts: 4562
Loc: USA
Where does $CHECK1, 2 ,3 come from? Can more than one case be true?
Top
#204523 - 2012-03-20 06:32 PM Re: While Loop instead? [Re: Allen]
KIXKicks Offline
Starting to like KiXtart

Registered: 2002-07-26
Posts: 177
Loc: Vancouver, WA
Yes, there can be more than one, that is why Select->Case will not work for this.
Top
#204524 - 2012-03-20 06:44 PM Re: While Loop instead? [Re: KIXKicks]
Allen Administrator Offline
KiX Supporter
*****

Registered: 2003-04-19
Posts: 4562
Loc: USA
Since I don't have enough details, I can only guess... maybe this will help.

untested
 Code:
dim $checks[0]
$list="Kix","VB","C++"
for each $program in $list
  if verify($program)
    redim preserve $checks[$i]
    $checks[$i]="Item" + $i + ":  " + $program + " Check"
 
    $i=$i+1
  endif
next

For each $item in $checks
  $GBLabel.text=$item  
next

function Verify($program)
  ;check software
  ;if $somevalue="Not Valid"
  ;  $Verify=0
  ;else
  ;  $verify=1
  ;endif
endfunction


You could put the GBLabel stuff inside the first loop without the need the need for the second loop... just not really sure what makes the most sense.


Edited by Allen (2012-03-20 06:56 PM)

Top
#204525 - 2012-03-20 08:41 PM Re: While Loop instead? [Re: Allen]
KIXKicks Offline
Starting to like KiXtart

Registered: 2002-07-26
Posts: 177
Loc: Vancouver, WA
Allen, thanks for the help...it pointed me in the right direction.

Here is the latest code:

 Code:
        DIM $SOFTWARELISTA, $SOFTWARELISTITEMA, $SOFTWARELISTVERA
	DIM $SOFTWARELISTB, $SOFTWARELISTITEMB, $SOFTWARELISTVERB
	DIM $SOFTWARELISTM, $SOFTWARELISTITEMM, $SOFTWARELISTVERM
	DIM $S

	Global $GROUPBOXSOFTWAREINFOAICON[0], $GROUPBOXSOFTWAREINFOALABEL[0]
	Global $GROUPBOXSOFTWAREINFOBICON[0], $GROUPBOXSOFTWAREINFOBLABEL[0]
	Global $GROUPBOXSOFTWAREINFOMICON[0], $GROUPBOXSOFTWAREINFOMLABEL[0]

	$S = 0

	$SOFTWARELISTA = "$ACTIFYSPINFIRESPSTATUS,$ACTIFYSPINFIRESPSTATUSCOLOR,Actify Spinfire,$ACTIFYSPINFIRESPVERSION","$ADOBEACROBATSPSTATUS,$ADOBEACROBATSPSTATUSCOLOR,Adobe Acrobat Professional,$ADOBEACROBATSPVERSION"
	
	For Each $SOFTWARELISTITEMA In $SOFTWARELISTA
		$SOFTWARELISTVERA = Split($SOFTWARELISTITEMA,",")
		If $SOFTWARELISTVERA[0] <> "NOT INSTALLED"
			ReDim Preserve $GROUPBOXSOFTWAREINFOAICON[$S]
			ReDim Preserve $GROUPBOXSOFTWAREINFOALABEL[$S]
			? "Software List Item Counter: " + $S
			? "Software List Item Status: " + $SOFTWARELISTVERA[0]
			? "Software List Item Color: " + $SOFTWARELISTVERA[1]
			? "Software List Item Title: " + $SOFTWARELISTVERA[2]
			? "Software List Item Version: " + $SOFTWARELISTVERA[3]

			$GROUPBOXSOFTWAREINFOAICON[$S]=$GROUPBOXSOFTWAREINFO.LABEL()
			$GROUPBOXSOFTWAREINFOAICON[$S].CLIENTSIZE=20,20
			$GROUPBOXSOFTWAREINFOAICON[$S].LEFT=7
			If $SOFTWARELISTVERA[1] = "BLACK" Or $SOFTWARELISTVERA[1] = "GREEN"
				$GROUPBOXSOFTWAREINFOAICON[$S].IMAGE = "@SCRIPTDIR\PASS.BMP"
			Else
				$GROUPBOXSOFTWAREINFOAICON[$S].IMAGE = "@SCRIPTDIR\FAIL.BMP"
			EndIf

			$GROUPBOXSOFTWAREINFOAICON[$S].IMAGEALIGN=4
			$GROUPBOXSOFTWAREINFOAICON[$S].TOP=($S * 15) + 15
	
			$GROUPBOXSOFTWAREINFOALABEL[$S]=$GROUPBOXSOFTWAREINFO.LABEL()
			$GROUPBOXSOFTWAREINFOALABEL[$S].CLIENTSIZE=$GROUPBOXSOFTWAREINFO.WIDTH-60,15
			$GROUPBOXSOFTWAREINFOALABEL[$S].LEFT=30
			$GROUPBOXSOFTWAREINFOALABEL[$S].TEXT = $SOFTWARELISTVERA[2] + ": " + $SOFTWARELISTVERA[3]
			$GROUPBOXSOFTWAREINFOALABEL[$S].TEXTALIGN=1
			$GROUPBOXSOFTWAREINFOALABEL[$S].TOP=($S * 15) + 20

			$S = $S + 1
		EndIf
	Next

	$SOFTWARELISTB = "$BLUEBEAMPDFREVUSPSTATUS,$BLUEBEAMPDFREVUSPSTATUSCOLOR,Bluebeam PDF Revu,$BLUEBEAMPDFREVUSPVERSION"
	
	For Each $SOFTWARELISTITEMB In $SOFTWARELISTB
		$SOFTWARELISTVERB = Split($SOFTWARELISTITEMB,",")
		If $SOFTWARELISTVERB[0] <> "NOT INSTALLED"
			ReDim Preserve $GROUPBOXSOFTWAREINFOBICON[$S]
			ReDim Preserve $GROUPBOXSOFTWAREINFOBLABEL[$S]
			? "Software List Item Counter: " + $S
			? "Software List Item Status: " + $SOFTWARELISTVERB[0]
			? "Software List Item Color: " + $SOFTWARELISTVERB[1]
			? "Software List Item Title: " + $SOFTWARELISTVERB[2]
			? "Software List Item Version: " + $SOFTWARELISTVERB[3]
			$GROUPBOXSOFTWAREINFOBICON[$S]=$GROUPBOXSOFTWAREINFO.LABEL()
			$GROUPBOXSOFTWAREINFOBICON[$S].CLIENTSIZE=20,20
			$GROUPBOXSOFTWAREINFOBICON[$S].LEFT=7
			If $SOFTWARELISTVERB[1] = "BLACK" Or $SOFTWARELISTVERB[1] = "GREEN"
				$GROUPBOXSOFTWAREINFOBICON[$S].IMAGE = "@SCRIPTDIR\PASS.BMP"
			Else
				$GROUPBOXSOFTWAREINFOBICON[$S].IMAGE = "@SCRIPTDIR\FAIL.BMP"
			EndIf

			$GROUPBOXSOFTWAREINFOBICON[$S].IMAGEALIGN=4
			$GROUPBOXSOFTWAREINFOBICON[$S].TOP=($S * 15) + 15
	
			$GROUPBOXSOFTWAREINFOBLABEL[$S]=$GROUPBOXSOFTWAREINFO.LABEL()
			$GROUPBOXSOFTWAREINFOBLABEL[$S].CLIENTSIZE=$GROUPBOXSOFTWAREINFO.WIDTH-60,15
			$GROUPBOXSOFTWAREINFOBLABEL[$S].LEFT=30
			$GROUPBOXSOFTWAREINFOBLABEL[$S].TEXT = $SOFTWARELISTVERB[2] + ": " + $SOFTWARELISTVERB[3]
			$GROUPBOXSOFTWAREINFOBLABEL[$S].TEXTALIGN=1
			$GROUPBOXSOFTWAREINFOBLABEL[$S].TOP=($S * 15) + 20

			$S = $S + 1
		EndIf
	Next

	$SOFTWARELISTM = "$MSGROOVESPSTATUS,$MSGROOVESPSTATUSCOLOR,Microsoft Groove,$MSGROOVESPVERSION","$MSOUTLOOKSPSTATUS,$MSOUTLOOKSPSTATUSCOLOR,Microsoft Outlook,$MSOUTLOOKSPVERSION"
	
	For Each $SOFTWARELISTITEMM In $SOFTWARELISTM
		$SOFTWARELISTVERM = Split($SOFTWARELISTITEMM,",")
		If $SOFTWARELISTVERM[0] <> "NOT INSTALLED"
			ReDim Preserve $GROUPBOXSOFTWAREINFOMICON[$S]
			ReDim Preserve $GROUPBOXSOFTWAREINFOMLABEL[$S]
			? "Software List Item Counter: " + $S
			? "Software List Item Status: " + $SOFTWARELISTVERM[0]
			? "Software List Item Color: " + $SOFTWARELISTVERM[1]
			? "Software List Item Title: " + $SOFTWARELISTVERM[2]
			? "Software List Item Version: " + $SOFTWARELISTVERM[3]
			$GROUPBOXSOFTWAREINFOMICON[$S]=$GROUPBOXSOFTWAREINFO.LABEL()
			$GROUPBOXSOFTWAREINFOMICON[$S].CLIENTSIZE=20,20
			$GROUPBOXSOFTWAREINFOMICON[$S].LEFT=7
			If $SOFTWARELISTVERM[1] = "BLACK" Or $SOFTWARELISTVERM[1] = "GREEN"
				$GROUPBOXSOFTWAREINFOMICON[$S].IMAGE = "@SCRIPTDIR\PASS.BMP"
			Else
				$GROUPBOXSOFTWAREINFOMICON[$S].IMAGE = "@SCRIPTDIR\FAIL.BMP"
			EndIf

			$GROUPBOXSOFTWAREINFOMICON[$S].IMAGEALIGN=4
			$GROUPBOXSOFTWAREINFOMICON[$S].TOP=($S * 15) + 15
	
			$GROUPBOXSOFTWAREINFOMLABEL[$S]=$GROUPBOXSOFTWAREINFO.LABEL()
			$GROUPBOXSOFTWAREINFOMLABEL[$S].CLIENTSIZE=$GROUPBOXSOFTWAREINFO.WIDTH-60,15
			$GROUPBOXSOFTWAREINFOMLABEL[$S].LEFT=30
			$GROUPBOXSOFTWAREINFOMLABEL[$S].TEXT = $SOFTWARELISTVERM[2] + ": " + $SOFTWARELISTVERM[3]
			$GROUPBOXSOFTWAREINFOMLABEL[$S].TEXTALIGN=1
			$GROUPBOXSOFTWAREINFOMLABEL[$S].TOP=($S * 15) + 20

			$S = $S + 1
		EndIf
	Next


Edited by KIXKicks (2012-03-20 08:42 PM)

Top
#204529 - 2012-03-21 12:10 AM Re: While Loop instead? [Re: KIXKicks]
KIXKicks Offline
Starting to like KiXtart

Registered: 2002-07-26
Posts: 177
Loc: Vancouver, WA
Is there a way to have the $SOFTWARELISTx(a,b,m) be one list that wouldn't stretch across (so it is readable), something like:

 Code:
SOFTWARELIST = {
  "$ACTIFYSPINFIRESPSTATUS,$ACTIFYSPINFIRESPSTATUSCOLOR,Actify Spinfire,$ACTIFYSPINFIRESPVERSION",
  "$ADOBEACROBATSPSTATUS,$ADOBEACROBATSPSTATUSCOLOR,Adobe Acrobat Professional,$ADOBEACROBATSPVERSION"
}

Top
#204536 - 2012-03-21 04:05 AM Re: While Loop instead? [Re: KIXKicks]
KIXKicks Offline
Starting to like KiXtart

Registered: 2002-07-26
Posts: 177
Loc: Vancouver, WA
Guess this is undoable?

The main part of the script can be reused (with a few changes)...it is the SOFTWARELIST part I am not sure how to optimize for this...

Top
#204537 - 2012-03-21 04:06 AM Re: While Loop instead? [Re: KIXKicks]
Allen Administrator Offline
KiX Supporter
*****

Registered: 2003-04-19
Posts: 4562
Loc: USA
 Code:
$SOFTWARELIST = 
  "$ACTIFYSPINFIRESPSTATUS,$ACTIFYSPINFIRESPSTATUSCOLOR,Actify Spinfire,$ACTIFYSPINFIRESPVERSION",
  "$ADOBEACROBATSPSTATUS,$ADOBEACROBATSPSTATUSCOLOR,Adobe Acrobat Professional,$ADOBEACROBATSPVERSION"

Top
#204538 - 2012-03-21 04:20 AM Re: While Loop instead? [Re: Allen]
KIXKicks Offline
Starting to like KiXtart

Registered: 2002-07-26
Posts: 177
Loc: Vancouver, WA
AWESOME! Thanks a ton, Allen!!!
Top
Page 1 of 1 1


Moderator:  Jochen, Allen, Radimus, Glenn Barnas, ShaneEP, Ruud van Velsen, Arend_, Mart 
Hop to:
Shout Box

Who's Online
1 registered (mole) and 494 anonymous users online.
Newest Members
M_Moore, BeeEm, min_seow, Audio, Hoschi
17883 Registered Users

Generated in 0.059 seconds in which 0.024 seconds were spent on a total of 13 queries. Zlib compression enabled.

Search the board with:
superb Board Search
or try with google:
Google
Web kixtart.org