From WikiChip
Difference between revisions of "mirc/commands/while"
< mirc‎ | commands

(Example)
(Example)
 
(9 intermediate revisions by the same user not shown)
Line 4: Line 4:
 
== Synopsis ==
 
== Synopsis ==
 
  while (condition) {
 
  while (condition) {
   statements or commands
+
   looping repeating operations and commands are located here
  statements or commands
 
  statements or commands
 
 
  }
 
  }
  
Line 34: Line 32:
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
'''Note:''' This code snippet should be used inside an alias or script.
+
'''Note:''' Use this or a similar construct/snippet of code inside any of your aliases or scripts as shown in the examples to create a loop.
  
  
Simple counter to count the number of iterations of a loop
+
Example of a simple counter to count the number of iterations of a loop
 
<syntaxhighlight lang="mIRC">
 
<syntaxhighlight lang="mIRC">
;Count numbers from 1 to 5
+
;Count the number of iterations from 1 to 5
 
alias whilecounter {
 
alias whilecounter {
 
   var %i 1, %stop 5
 
   var %i 1, %stop 5
Line 48: Line 46:
 
}
 
}
  
;To call the alias use the command: /whilecounter
+
;To call the alias enter the command: /whilecounter
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Line 69: Line 67:
 
}
 
}
  
;To call the alias use the command: /whilereadfile
+
;To call the alias enter the command: /whilereadfile
  
  
Line 81: Line 79:
 
}
 
}
  
;To call the alias use the command: /whilereadfile2
+
;To call the alias enter the command: /whilereadfile2
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Line 87: Line 85:
 
Example of how to print a list all variable names with their values
 
Example of how to print a list all variable names with their values
 
<syntaxhighlight lang="mIRC">
 
<syntaxhighlight lang="mIRC">
alias listvars {
+
alias whilelistvars {
 
   ;Check if there are any variables set
 
   ;Check if there are any variables set
 
   if (!$var(*,0)) {
 
   if (!$var(*,0)) {
     echo -a There Are No Variables.
+
     echo -a There are no variables.
 
     ;Return command to terminate alias function
 
     ;Return command to terminate alias function
 
     return
 
     return
Line 109: Line 107:
 
}
 
}
  
;Call the alias with the command: /listvars
+
;To call the alias enter the command: /whilelistvars
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Line 117: Line 115:
 
2) %Foo = FooBar
 
2) %Foo = FooBar
 
3) %Bar = BarFoo</pre>
 
3) %Bar = BarFoo</pre>
 +
 +
 +
Example of how to print a list all open windows with their names
 +
<syntaxhighlight lang="mIRC">
 +
;Count the number of all open windows
 +
alias whilewindows {
 +
  echo -a Channel windows: $+([,$chan(0),])
 +
  var %c 1 | while (%c <= $chan(0)) { echo -a %c : $chan(%c) | inc %c }
 +
  echo -a $str(-,30)
 +
 +
  echo -a Private windows: $+([,$query(0),])
 +
  var %q 1 | while (%q <= $query(0)) { echo -a %q : $query(%q) | inc %q }
 +
  echo -a $str(-,30)
 +
 +
  echo -a Custom windows: $+([,$window(0),])
 +
  var %w 1 | while (%w <= $window(0)) { echo -a %w : $window(%w) | inc %w }
 +
  echo -a $str(-,30)
 +
 
 +
  echo -a Dialog windows: $+([,$dialog(0),])
 +
  var %d 1 | while (%d <= $dialog(0)) { echo -a %d : $dialog(%d) | inc %d }
 +
  echo -a $str(-,30)
 +
}
 +
 +
;To call the alias enter the command: /whilewindows
 +
</syntaxhighlight>
  
 
== Compatibility ==
 
== Compatibility ==

Latest revision as of 06:41, 1 September 2025

The /while command is a construct in the mIRC scripting language that can perform repetitive operations. The block of statements and commands inside the body of the while loop will be executed as long as the condition is true. You can manually break out of a loop by using the Cltr+Break key combinations.

Synopsis[edit]

while (condition) {
  looping repeating operations and commands are located here
}

Switches[edit]

None

Parameters[edit]

None

Example[edit]

Basic construct

;Create a counter variable, set its value to 1
var %i 1
 
;Create a stop variable with a value equal to the number at which you want to stop the loop.
var %stop 5
 
;Start of loop with a condition in round brackets () - work while the number in the variable %i is less than or equal to the number in the variable %stop
while (%i <= %stop) {
 
  ;Print echo message to active window with value of counter variable
  echo -a Number in counter: %i
 
  ;Increase the counter variable by +1
  inc %i
}

Note: Use this or a similar construct/snippet of code inside any of your aliases or scripts as shown in the examples to create a loop.


Example of a simple counter to count the number of iterations of a loop

;Count the number of iterations from 1 to 5
alias whilecounter {
  var %i 1, %stop 5
  while (%i <= %stop) {
    echo -a Number in counter: %i
    inc %i
  }
}
 
;To call the alias enter the command: /whilecounter

The above example will output:

Number in counter: 1
Number in counter: 2
Number in counter: 3
Number in counter: 4
Number in counter: 5


Example of reading a file by iterating over each line

;Read all lines of a file
alias whilereadfile {
  var %i 1 | while (%i <= $lines(file.txt)) {
    echo -a line %i - $read(file.txt,nt,%i)
    inc %i
  }
}
 
;To call the alias enter the command: /whilereadfile
 
 
;Read from line 5 and stop at line 10
alias whilereadfile2 {
  var %i 5 | while (%i <= $lines(file.txt)) {
    echo -a line %i - $read(file.txt,nt,%i)
    if (%i == 10) break
    inc %i
  }
}
 
;To call the alias enter the command: /whilereadfile2


Example of how to print a list all variable names with their values

alias whilelistvars {
  ;Check if there are any variables set
  if (!$var(*,0)) {
    echo -a There are no variables.
    ;Return command to terminate alias function
    return
  } 
 
  ;Set a counter variable
  var %x 1
 
  ;Loop while the counter variable is less than or equal to the total number of variables
  while (%x <= $var(*,0)) { 
 
    ;Print out the variable and its value
    echo -a %x $+ ) $var(*,%x) = $var(*,%x).value 
 
    ;Increase the variable by one
    inc %x
  }
}
 
;To call the alias enter the command: /whilelistvars

The above example will output something like this:

1) %Var = Value
2) %Foo = FooBar
3) %Bar = BarFoo


Example of how to print a list all open windows with their names

;Count the number of all open windows
alias whilewindows {
  echo -a Channel windows: $+([,$chan(0),])
  var %c 1 | while (%c <= $chan(0)) { echo -a %c : $chan(%c) | inc %c }
  echo -a $str(-,30)
 
  echo -a Private windows: $+([,$query(0),])
  var %q 1 | while (%q <= $query(0)) { echo -a %q : $query(%q) | inc %q }
  echo -a $str(-,30)
 
  echo -a Custom windows: $+([,$window(0),])
  var %w 1 | while (%w <= $window(0)) { echo -a %w : $window(%w) | inc %w }
  echo -a $str(-,30)
  
  echo -a Dialog windows: $+([,$dialog(0),])
  var %d 1 | while (%d <= $dialog(0)) { echo -a %d : $dialog(%d) | inc %d }
  echo -a $str(-,30)
}
 
;To call the alias enter the command: /whilewindows

Compatibility[edit]

Added: mIRC v5.7
Added on: 02 Feb 2000
Note: Unless otherwise stated, this was the date of original functionality.
Further enhancements may have been made in later versions.


See also[edit]

v · d · e mIRC commands list

A /abook, /action, /add, /ajinvite, /alias, /aline, /ame, /amsg, /anick, /aop, /auser, /auto, /autojoin, /avoice, /away

B /background, /ban, /bcopy, /beep, /bindip, /bread, /break, /breplace, /bset, /btrunc, /bunset, /bwrite

C /channel, /clear, /clearall, /clearial, /cline, /clipboard, /close, /closechats, /closedccs, /closefserves, /closemsg, /cnick, /color, /colour, /comclose, /comlist, /commands, /comopen, /comreg, /continue, /copy, /creq, /ctcp, /ctcpreply, /ctcps

D /dcc, /dccserver, /dde, /ddeserver, /debug, /dec, /describe, /dialog, /did, /didtok, /disable, /disconnect, /dlevel, /dline, /dll, /donotdisturb, /dns, /dqwindow, /drawcopy, /drawdot, /drawfill, /drawline, /drawpic, /drawrect, /drawreplace, /drawrot, /drawsave, /drawscroll, /drawsize, /drawtext

E /ebeeps, /echo, /editbox, /else, /elseif, /emailaddr, /enable, /events, /exit

F /fclose, /filter, /findtext, /finger, /firewall, /flash, /flist, /flood, /flush, /flushini, /fnord, /font, /fopen, /fseek, /fsend, /fserve, /fullname, /fupdate, /fwrite

G /ghide, /gload, /gmove, /gopts, /goto, /gplay, /gpoint, /gqreq, /groups, /gshow, /gsize, /gstop, /gtalk, /gunload, /guser

H /hadd, /halt, /haltdef, /hdec, /hdel, /help, /hfree, /hinc, /hload, /hmake, /hotlink, /hop, /hsave

I /ial, /ialclear, /ialmark, /identd, /if, /ignore, /iline, /inc, /iuser

J /join

L /leave, /linesep, /links, /list, /load, /loadbuf, /localinfo, /log, /logview

M /maxdepth, /mdi, /me, /menubar, /mkdir, /mnick, /mode, /msg

N /noop, /notice, /notify

O /onotice, /omsg

Q /qme, /qmsg, /query, /queryrn, /quit, /quote

P /parseline, /part, /partall, /pdcc, /perform, /play, /playctrl, /pop, /protect, /proxy, /pvoice

R /raw, /registration, /reload, /remini, /remote, /remove, /rename, /renwin, /reseterror, /resetidle, /return, /returnex, /rlevel, /rline, /rmdir, /run, /ruser

S /save, /savebuf, /saveini, /say, /scid, /scon, /server, /set, /setlayer, /showmirc, /signal, /sline, /sockaccept, /sockclose, /socklist, /socklisten, /sockmark, /sockopen, /sockpause, /sockread, /sockrename, /sockudp, /sockwrite, /sound, /speak, /splay, /sreq, /strip, /switchbar

T /timer, /timestamp, /tip, /tips, /titlebar, /tnick, /tokenize, /toolbar, /topic, /tray, /treebar

U /ulist, /unload, /unset, /unsetall, /updatenl, /url, /username, /uwho

V /var, /vcadd, /vcmd, /vcrem, /vol

W /wallchops, /wavplay, /while, /window, /winhelp, /write, /writeini

X /xyzzy