Difference between revisions of "$gettok"

From Scriptwiki
Jump to: navigation, search
m (extra information about negative and positive to/from values.)
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
Returns the Nth token or amount of tokens in ''string''.
+
Returns the Nth token or amount of tokens in a ''string''.
 
  $gettok(''string'',''N'',''C'')
 
  $gettok(''string'',''N'',''C'')
Where ''N'' is the Nth token you wish to be returned from ''string'' by delimiter ''C''. Alternatively ''N'' can be given as 0 to return the amount of tokens in ''string''
+
Where ''N'' is the Nth token you wish to be returned from the ''string'' by delimiter ''C''. Alternatively ''N'' can be given as 0 to return the amount of tokens in the ''string''.
 +
 
 +
For more information about the delimiters, see [[$chr]].
  
 
== Examples ==
 
== Examples ==
 
  $gettok(Ave:IT,1,58)  ;returns ''Ave''
 
  $gettok(Ave:IT,1,58)  ;returns ''Ave''
This returns the first token using [[$chr]](58) as the delimiter
+
This returns the first token using $chr(58) as the delimiter, which is character :
  
 
  $gettok(Ave:IT,0,58)  ;returns ''2''
 
  $gettok(Ave:IT,0,58)  ;returns ''2''
This returns the value ''2'' because there is two values when delimited by $chr(58)
+
This returns the value ''2'' because there are two values delimited by a $chr(58)
  
'''Note:''' ''N'' can be a range N1-N2, Example:
+
'''Note:''' ''N'' can be a range N1-N2. Examples where the delimiter is $chr(32) (a space):
 
  $gettok(Word1 Word2 Word3 Word4,2-3,32)  ;returns ''Word2 Word3'' From word 2 until word 3.
 
  $gettok(Word1 Word2 Word3 Word4,2-3,32)  ;returns ''Word2 Word3'' From word 2 until word 3.
 
  $gettok(Word1 Word2 Word3 Word4,3-,32)    ;returns ''Word3 Word4'' From the third word until the end.
 
  $gettok(Word1 Word2 Word3 Word4,3-,32)    ;returns ''Word3 Word4'' From the third word until the end.
 
  $gettok(Word1 Word2 Word3 Word4,-2-,32)  ;returns ''Word3 Word4'' From the second-to-last word, until the end.
 
  $gettok(Word1 Word2 Word3 Word4,-2-,32)  ;returns ''Word3 Word4'' From the second-to-last word, until the end.
 
  $gettok(Word1 Word2 Word3 Word4,-3--2,32) ;returns ''Word2 Word3'' From the third-to-last word, until the second-to-last word.
 
  $gettok(Word1 Word2 Word3 Word4,-3--2,32) ;returns ''Word2 Word3'' From the third-to-last word, until the second-to-last word.
'''''Note:''''' Although it may seam resonable to use -3-4 in this situation to get the third-to-last word (''Word2'') until the forth word (''Word4''), $gettok() does not calulate it this way, you will end up with the same as -3-.
+
'''Note:''' Although it may seam resonable to use -3-4 in this situation to get the third-to-last word (''Word2'') until the forth word (''Word4''), $gettok() does not calculate it this way, you will end up with the same as -3-.
 +
You can '''''only''''' use a negative to value if you have a negative from value and the to value much be greater than the from yet still negative. eg:
 +
$gettok(Word1 Word2 Word3 Word4,-3--2,32) ; Works.
 +
$gettok(Word1 Word2 Word3 Word4,-3--3,32) ; Works. although it would be the same as -3
 +
$gettok(Word1 Word2 Word3 Word4,-3--4,32) ; Doesn't work, since -4 (the to value) is smaller than -3 (the from) it fails.
 +
$gettok(Word1 Word2 Word3 Word4,-3-1,32)  ; Doesn't work, since 1 is not negative.
 +
When you give a negative from value you start grabbing information from the end, it seems giving a positive number for the to value would try and count from the end posistion also although it jumps past the end.
 +
$gettok(Word1 Word2 Word3 Word4,-3-1,32)
 +
It looks like in this example, mIRC finds the from value as negative, jumps to the end of the string, and ''jumps'' back 3 positions and marks this as the start value, then also going from the end position it finds 1 as positive so it jumps forward 1 which is past the end of the string, it which would be, if there was one, the 5th token.
 +
 +
 
 +
 +
 
 +
 
 
[[Category:Token Identifiers]]
 
[[Category:Token Identifiers]]

Latest revision as of 20:01, 31 August 2008

Returns the Nth token or amount of tokens in a string.

$gettok(string,N,C)

Where N is the Nth token you wish to be returned from the string by delimiter C. Alternatively N can be given as 0 to return the amount of tokens in the string.

For more information about the delimiters, see $chr.

Examples

$gettok(Ave:IT,1,58)  ;returns Ave

This returns the first token using $chr(58) as the delimiter, which is character :

$gettok(Ave:IT,0,58)  ;returns 2

This returns the value 2 because there are two values delimited by a $chr(58)

Note: N can be a range N1-N2. Examples where the delimiter is $chr(32) (a space):

$gettok(Word1 Word2 Word3 Word4,2-3,32)   ;returns Word2 Word3 From word 2 until word 3.
$gettok(Word1 Word2 Word3 Word4,3-,32)    ;returns Word3 Word4 From the third word until the end.
$gettok(Word1 Word2 Word3 Word4,-2-,32)   ;returns Word3 Word4 From the second-to-last word, until the end.
$gettok(Word1 Word2 Word3 Word4,-3--2,32) ;returns Word2 Word3 From the third-to-last word, until the second-to-last word.

Note: Although it may seam resonable to use -3-4 in this situation to get the third-to-last word (Word2) until the forth word (Word4), $gettok() does not calculate it this way, you will end up with the same as -3-. You can only use a negative to value if you have a negative from value and the to value much be greater than the from yet still negative. eg:

$gettok(Word1 Word2 Word3 Word4,-3--2,32) ; Works.
$gettok(Word1 Word2 Word3 Word4,-3--3,32) ; Works. although it would be the same as -3
$gettok(Word1 Word2 Word3 Word4,-3--4,32) ; Doesn't work, since -4 (the to value) is smaller than -3 (the from) it fails.
$gettok(Word1 Word2 Word3 Word4,-3-1,32)  ; Doesn't work, since 1 is not negative.

When you give a negative from value you start grabbing information from the end, it seems giving a positive number for the to value would try and count from the end posistion also although it jumps past the end.

$gettok(Word1 Word2 Word3 Word4,-3-1,32)
It looks like in this example, mIRC finds the from value as negative, jumps to the end of the string, and jumps back 3 positions and marks this as the start value, then also going from the end position it finds 1 as positive so it jumps forward 1 which is past the end of the string, it which would be, if there was one, the 5th token.