Jump to content
Sign in to follow this  
Chimaera

String Reg Exp or String Trim?

Recommended Posts

Chimaera

Im working on a way to get an accurate version number from a website, im using filehippo as its clearly displayed on the page

$ip = "http://www.filehippo.com/download_ccleaner"
$info = BinaryToString(InetRead($ip))
$aRegEx = StringRegExp($info, "(?s)<title>(.*?)</title>", 3)
ConsoleWrite("test ip = " & $aRegEx[0] & @CRLF)

Which returns

test ip = Download CCleaner 3.09.1493 - FileHippo.com

I need it to say this

test ip = 3.09.1493

Is there a way to make StringRegExp reduce it or should i just StringTrim either end of it to cut of the unneeded material

I guess if StringRegExp can do it if they change something on the website it may still work

Or there maybe a better way, i have no idea

Thanks

Share this post


Link to post
Share on other sites
UEZ

This one works for me:

$ip = "http://www.filehippo.com/download_ccleaner"
$info = BinaryToString(InetRead($ip))
$aRegEx = StringRegExp($info, "<head><title>Download.* (\d+\..*) - FileHippo.com</title>", 3)
ConsoleWrite("test ip = " & $aRegEx[0] & @CRLF)

Br,

UEZ


Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites
Chimaera

Thanks UEZ

Im assuming the <head><title>Download.* and - FileHippo.com</title> are like excludes?

And (\d+\..*) retrieves the number?

Now all i have to do is write it to a .ini

Many thanks

Chim

Edited by Chimaera

Share this post


Link to post
Share on other sites
guinness

Now all i have to do is write it to a .ini

I take it this wasn't a question due to the missing question mark! :mellow:

IniWrite()

Edit: I found this in my Function folder.

ConsoleWrite(_GetUpdates("CCleaner") & @CRLF)
ConsoleWrite(_GetUpdates("Blender") & @CRLF)
ConsoleWrite(_GetUpdates("Java") & @CRLF) ; Error

Func _GetUpdates($sID) ; by GEOSoft (If I remember)
    Local $aReturn, $bRead, $sRead
    $bRead = InetRead("http://www.filehippo.com/search?q=" & $sID)
    $sRead = BinaryToString($bRead)

    $aReturn = StringRegExp($sRead, "(?i)" & $sID & "\s?((?:\d{1,5})(?:\.\d{1,5}){1,4})", 1)
    If @error Then
        Return SetError(1, 0, "None - Error")
    EndIf
    Return $aReturn[0]
EndFunc   ;==>_GetUpdates
Edited by guinness

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Share this post


Link to post
Share on other sites
Chimaera

Lol no it wasn't a question just a comment of my next step

Once i have checked all the products then it will update the .ini and i can compare the installed version against the .ini to decide whether to tick a checkbox to install product or not.

As i have found the installers have radically different numbers making them useless for comparison against installed files

For eg Ccleaner

is version 3.09.1493 installed

Its version 2.0.0.0 as an installer

Ill have a look at that example as it may help for checking more than one installer

Thanks

Edit

Damn thats a canny bit of code, thanks again

Edited by Chimaera

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.