Jump to content

String Reg Exp or String Trim?

Recommended Posts

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


Link to comment
Share on other sites

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)



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!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Link to comment
Share on other sites

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


Edited by Chimaera
Link to comment
Share on other sites

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:


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")
    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

Link to comment
Share on other sites

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 as an installer

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



Damn thats a canny bit of code, thanks again

Edited by Chimaera
Link to comment
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

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...