Jump to content

detecting a difference between two arrays


Recommended Posts

 

What if you somehow integrated the below code, It would help compare differences in a simpler manner without looping through all the arrays. Whether or not it's quicker I'll leave that up to you guys to figure out. Along with how to determine the array position of change.

While 1
$CombinedNewData = _ArrayToString($Array, " ", 1, $Array[0])
$CombinedOldData = _ArrayToString($Array2, " ", 1, $Array2[0])  

If $CombinedNewData <> $CombinedOldData Then
   MsgBox(0, "", "Something Changed")
   ;Call your function to determine position?
ElseIf $CombinedNewData = $CombinedOldData Then
   MsgBox(0. "", "Nothing Changed")
   ;Continue While Loop
EndIf

Sleep("60000")

WEnd

The point in looping through the array is to find the location of the change. Thanks for your input though. (:

Link to comment
Share on other sites

I understand that, But why would you want to loop through it unless something actually changed. From what I've seen in your examples, It appears like you're constantly checking for changes. Whereas it would be more efficient to only examine the arrays once you've detected a change. Based on my perspective. Though, It appears there have been some very good code examples posted prior to this post. Hopefully, One of which is a possible candidate to solving your problem or, At least gets you in a better position then you were.

Edited by BlackDawn187
Link to comment
Share on other sites

I understand that, But why would you want to loop through it unless something actually changed. From what I've seen in your examples, It appears like you're constantly checking for changes. Whereas it would be more efficient to only examine the arrays once you've detected a change. Based on my perspective. Though, It appears there have been some very good code examples posted prior to this post. Hopefully, One of which is a possible candidate to solving your problem or, At least gets you in a better position then you were.

No, my script doesn't need to check IF there is a change. The function is only called WHEN data changes. The bit added in to return "null" is no change was found, was simply to prevent any errors, in some odd event that there was no change. Thanks for your help though, seems like a quick way to detect only if the data has changed, but in my case this isn't necessary.

Link to comment
Share on other sites

That code by BlackDawn187 should probably be Not (String1 == String2) for case-sensitive comparison.

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

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