Check Versions of your Programs...

Developed or developing a new product in PureBasic? Tell the world about it.
User avatar
Michael Vogel
Addict
Addict
Posts: 2807
Joined: Thu Feb 09, 2006 11:27 pm
Contact:

Check Versions of your Programs...

Post by Michael Vogel »

Hi,

I spent some time every week for checking, if new versions have been available for some programs I use. This annoying stuff is now done automatically - with my VerVolf, of course done with PureBasic :wink:

You can download it here: http://sudokuprogram.googlepages.com/VerVolf.zip

It will NOT work, if you have no direct access to the internet, because I was not able to do handle proxy things for now...

Hope, you'll like it anyway :lol:
Michael

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The ini file should be filled with the parameters for your programs:

Code: Select all

[Nodes]
Count = number of program entries

[Groups]
Count = number of program groups
Group000 = name of Zero-Group (all unknown programs are seen here)
Group001 = name of first group (e.g. "Office")
Key001= shortcut used in program entries (e.g. "O")
:
:
Groupnnn
Keynnn

[Node001]
Name = name displayed in program
Key = shortcut (see above)
URL = web page where version data can be seen
Len = amount of K how much content will be read from the given web page
Look = keyword seen in the line from where the version text will be taken
Top = keywords seen before the version text line
Bottom = keywords seen after the version text line
Skip = lines with these keywords will be skipped
Left = characters exactly before the version text
Right = characters exactly after the version text
Value = version text
Mode = modifies version text
:
:
Some routines are (maybe) interesting for other programmers, so I just

Wordcase modifies the version text, if Mode&1=1...

Code: Select all

Procedure.s WordCase(s.s)
	Protected i,l,a,flag
	flag=#True
	i=0
	l=Len(s)
	While i<l
		a=PeekB(@s+i)
		;Debug Str(a)+", "+Str(a&$df)+":"+Str(flag)
		Select a&$df
		Case 65 To 90,196,214,220;	a-z, ä,ö,ü
			If flag
				a=Asc(UCase(Chr(a)))
				flag=#False
			Else
				a=Asc(LCase(Chr(a)))
			EndIf
			PokeB(@s+i,a)
		Case 0,14,1,27,12;	Space, Punkt, Rufzeichen, Strichpunkt, Komma
			;Debug "***"
			flag=#True
		EndSelect
		i+1
	Wend
	ProcedureReturn s
EndProcedure
Strap trims the version text and removes HTML tags, if Mode&2=1...

Code: Select all

Procedure.s Strap(s.s,modus.l)
	Protected a,b

	a=0
	b=Len(s)
	While a<b
		Select PeekB(@s+a)
		Case -89,9,10,32; '§' = -89
			a+1
		Default
			;Debug PeekB(@s+a)
			Break
		EndSelect
	Wend
	a+1

	While a<b
		b-1
		Select PeekB(@s+b)
		Case -89,9,10,32; '§' = -89
		Default
			Break
		EndSelect
	Wend
	s=Mid(s,a,b-a+2)

	If (modus&2)
		Repeat
			b=0
			a=FindString(s,"<",1)
			If a
				b=FindString(s,">",a)
				If b
					s=Trim(Left(s,a-1))+" "+Trim(Mid(s,b+1,#MAXSHORT))
				EndIf
			EndIf
		Until b=0
	EndIf

	If (modus&1)
		s=WordCase(s)
	EndIf

	ProcedureReturn s
EndProcedure
User avatar
Michael Vogel
Addict
Addict
Posts: 2807
Joined: Thu Feb 09, 2006 11:27 pm
Contact:

Post by Michael Vogel »

Completely updated code - should work now with proxies and allows to collaps/expand groups...

Complicate :?:

Just have a :roll: and play around with the mouse (or the cursor keys and return), it's really a fine tool if you often want to check, if a newer version of a program you like exists...
Post Reply