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

Thanks

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)

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

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

Chim

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:

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

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 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
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
 Share

  • Recently Browsing   0 members

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