Jump to content

Redefining variables within a For-To loop?


Quinch
 Share

Recommended Posts

What would be the best way to do it? I have a loop set up thusly -

Func Inet_Cleanup()
For $x = 1 To UBound($inet)-1
  $inet_info = InetGetInfo($inet[$x], -1)
  ;If the download was complete and successful
  If $inet_info[2] = True And $inet_info[3] = True Then
   InetClose($inet[$x])
   _ArrayDelete($inet, $x)
   $x = 1
  ;If the download was complete and unsuccessful
  ElseIf $inet_info[2] = True And $inet_info[3] = False Then
   ConsoleWriteError("Download error: "&_ArrayToString($inet_info)&@CRLF)
   InetClose($inet[$x])
   _ArrayDelete($inet, $x)
   $x = 1
  EndIf
Next
EndFunc

- but I eventually hit an array range exceeded error.

Link to comment
Share on other sites

Which makes sense. When you're going from 0 to MaxIndex and deleting, you're lowering the the index value of the array on each loop.

Easiest solution, go backwards.

#include <Array.au3>
Dim $asInet[5] = ["1", "a", "2", "b", "3"]
_ArrayDisplay($asInet)
For $i = UBound($asInet) -1 To 0 Step -1
 ConsoleWrite($asInet[$i] & @CRLF)
 _ArrayDelete($asInet, $i)
Next
If Not IsArray($asInet) Then ConsoleWrite("No longer an Array!")
Edited by ZacUSNYR
Link to comment
Share on other sites

  • Moderators

Quinch,

Yes, the limits are set by the For statement and are not revaluated during the loop. :)

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

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