StringSplit: Difference between revisions
(Created page with "==Description== Splits up a string into substrings depending on the given delimiters. <pre> StringSplit ( "string", "delimiters" [, flag = 0] ) </pre> ==Parameters== {| bord...") |
No edit summary |
||
Line 1: | Line 1: | ||
<!-- Autogenerated Wiki Page. --> | |||
<!-- Not meant to be user editable. --> | |||
<!-- If there is an error here then that means that there is an error in the helpfile. --> | |||
<!-- Report it to Trac with category 'Documentation'. --> | |||
<!-- See this post for more info: http://www.autoitscript.com/forum/topic/153680-convert-helpfile-to-wiki-text/--> | |||
<font face='Segoe UI, Courier New, Lucida Grande, Verdana, Helvetica, sans-serif'> | |||
< | <font size='3' weight='normal'>Splits up a string into substrings depending on the given delimiters.</font> | ||
</ | |||
==Parameters== | <font face='Courier New'><div id='Syntax' style='background-color:#FFFFAA;'> | ||
{| | |||
:StringSplit ( "string", "delimiters" [, flag = 0] ) | |||
</div></font> | |||
===<font size=4><div id='Section' style='color:#DB7100;'>Parameters</div></font>=== | |||
{| class='wikitable' | |||
|- | |- | ||
| | | string || The string to evaluate. | ||
|- | |- | ||
| | | delimiters || One or more characters to use as delimiters (case sensitive). | ||
|- | |- | ||
| || | | flag || '''[optional]''' Changes how the string split works, add multiple flag values together if required: | ||
|- | |- | ||
| || $ | | || $STR_CHRSPLIT (0) = each character in the delimiter string will mark where to split the string (default) | ||
|- | |- | ||
| || $ | | || $STR_ENTIRESPLIT (1) = entire delimiter string is needed to mark the split | ||
|- | |- | ||
| || Constants are defined in Constants.au3 | | || $STR_NOCOUNT (2) = disable the return count in the first element - effectively makes the array 0-based (must use UBound() to get the size of the array in this case). | ||
|- | |||
| || Constants are defined in Constants.au3 | |||
|} | |} | ||
==Return Value== | |||
===<font size=4><div id='Section' style='color:#DB7100;'>Return Value</div></font>=== | |||
Returns an array, by default the first element ($aArray[0]) contains the number of strings returned, the remaining elements ($aArray[1], $aArray[2], etc.) contain the delimited strings. If the flag parameter is set to $STR_NOCOUNT (2) then the count is not returned in the first element. | Returns an array, by default the first element ($aArray[0]) contains the number of strings returned, the remaining elements ($aArray[1], $aArray[2], etc.) contain the delimited strings. If the flag parameter is set to $STR_NOCOUNT (2) then the count is not returned in the first element. | ||
If no delimiters were found then @error is set to 1, count is equal to 1 ($aArray[0]) and the full string is returned ($aArray[1]). | If no delimiters were found then @error is set to 1, count is equal to 1 ($aArray[0]) and the full string is returned ($aArray[1]). | ||
==Remarks== | |||
===<font size=4><div id='Section' style='color:#DB7100;'>Remarks</div></font>=== | |||
If you use an empty string "" for the delimiters, each character will be returned as an element. | If you use an empty string "" for the delimiters, each character will be returned as an element. | ||
If the delimiter you wish to use is a substring instead of individual single characters, see the example below. | If the delimiter you wish to use is a substring instead of individual single characters, see the example below. | ||
StringSplit is very useful as an alternative to | [[StringSplit]] is very useful as an alternative to [[StringInStr]] as well as a means to populate an array. | ||
Note that if you use the macro @CRLF you are referring to a 2 character string, so this will generate extra blanks lines. Therefore it is recommended to set the flag parameter to $STR_ENTIRESPLIT (1). | Note that if you use the macro @CRLF you are referring to a 2 character string, so this will generate extra blanks lines. Therefore it is recommended to set the flag parameter to $STR_ENTIRESPLIT (1). | ||
Line 39: | Line 55: | ||
To use the values specified above you must #include <StringConstants.au3> in your script. | To use the values specified above you must #include <StringConstants.au3> in your script. | ||
==Related== | |||
===<font size=4><div id='Section' style='color:#DB7100;'>Related</div></font>=== | |||
[[StringInStr]], [[StringLeft]], [[StringLen]], [[StringLower]], [[StringMid]], [[StringRight]], [[StringTrimLeft]], [[StringTrimRight]], [[StringUpper]] | [[StringInStr]], [[StringLeft]], [[StringLen]], [[StringLower]], [[StringMid]], [[StringRight]], [[StringTrimLeft]], [[StringTrimRight]], [[StringUpper]] | ||
==Example== | |||
===<font size=4><div id='Section' style='color:#DB7100;'>Example</div></font>=== | |||
<syntaxhighlight lang='autoit'> | <syntaxhighlight lang='autoit'> | ||
#include <MsgBoxConstants.au3> | #include <MsgBoxConstants.au3> | ||
Line 63: | Line 83: | ||
Next | Next | ||
EndFunc ;==>Example | EndFunc ;==>Example | ||
</syntaxhighlight> | </syntaxhighlight><syntaxhighlight lang='autoit'> | ||
<syntaxhighlight lang='autoit'> | |||
#include <StringConstants.au3> | #include <StringConstants.au3> | ||
#include <MsgBoxConstants.au3> | #include <MsgBoxConstants.au3> | ||
Line 87: | Line 105: | ||
Next | Next | ||
EndFunc ;==>Example | EndFunc ;==>Example | ||
</syntaxhighlight> | </syntaxhighlight><syntaxhighlight lang='autoit'> | ||
<syntaxhighlight lang='autoit'> | |||
#include <StringConstants.au3> | #include <StringConstants.au3> | ||
#include <MsgBoxConstants.au3> | #include <MsgBoxConstants.au3> | ||
Line 110: | Line 126: | ||
EndFunc ;==>Example | EndFunc ;==>Example | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</font> | |||
__NOTOC__ | __NOTOC__ | ||
__NOEDITSECTION__ |
Latest revision as of 16:14, 23 August 2013
Splits up a string into substrings depending on the given delimiters.
- StringSplit ( "string", "delimiters" [, flag = 0] )
Parameters
string | The string to evaluate. |
delimiters | One or more characters to use as delimiters (case sensitive). |
flag | [optional] Changes how the string split works, add multiple flag values together if required: |
$STR_CHRSPLIT (0) = each character in the delimiter string will mark where to split the string (default) | |
$STR_ENTIRESPLIT (1) = entire delimiter string is needed to mark the split | |
$STR_NOCOUNT (2) = disable the return count in the first element - effectively makes the array 0-based (must use UBound() to get the size of the array in this case). | |
Constants are defined in Constants.au3 |
Return Value
Returns an array, by default the first element ($aArray[0]) contains the number of strings returned, the remaining elements ($aArray[1], $aArray[2], etc.) contain the delimited strings. If the flag parameter is set to $STR_NOCOUNT (2) then the count is not returned in the first element.
If no delimiters were found then @error is set to 1, count is equal to 1 ($aArray[0]) and the full string is returned ($aArray[1]).
Remarks
If you use an empty string "" for the delimiters, each character will be returned as an element.
If the delimiter you wish to use is a substring instead of individual single characters, see the example below.
StringSplit is very useful as an alternative to StringInStr as well as a means to populate an array.
Note that if you use the macro @CRLF you are referring to a 2 character string, so this will generate extra blanks lines. Therefore it is recommended to set the flag parameter to $STR_ENTIRESPLIT (1).
To use the values specified above you must #include <StringConstants.au3> in your script.
Related
StringInStr, StringLeft, StringLen, StringLower, StringMid, StringRight, StringTrimLeft, StringTrimRight, StringUpper
Example
#include <MsgBoxConstants.au3>
Example()
Func Example()
Local $aDays = StringSplit("Mon,Tues,Wed,Thur,Fri,Sat,Sun", ",") ; Split the string of days using the delimeter "," and the default flag value.
#cs
The array returned will contain the following values:
$aDays[1] = "Mon"
$aDays[2] = "Tues"
$aDays[3] = "Wed"
...
$aDays[7] = "Sun"
#ce
For $i = 1 To $aDays[0] ; Loop through the array returned by StringSplit to display the individual values.
MsgBox($MB_SYSTEMMODAL, "", "$aDays[" & $i & "] - " & $aDays[$i])
Next
EndFunc ;==>Example
#include <StringConstants.au3>
#include <MsgBoxConstants.au3>
Example()
Func Example()
Local $sText = "This\nline\ncontains\nC-style breaks." ; Define a variable with a string of text.
Local $aArray = StringSplit($sText, '\n', $STR_ENTIRESPLIT) ; Pass the variable to StringSplit and using the delimeter "\n".
; Note that flag paramter is set to $STR_ENTIRESPLIT (1) as it would split at \ or n otherwise.
#cs
The array returned will contain the following values:
$aArray[1] = "This"
$aArray[2] = "line"
...
$aArray[4] = "C-style breaks."
#ce
For $i = 1 To $aArray[0] ; Loop through the array returned by StringSplit to display the individual values.
MsgBox($MB_SYSTEMMODAL, "", "$aArray[" & $i & "] - " & $aArray[$i])
Next
EndFunc ;==>Example
#include <StringConstants.au3>
#include <MsgBoxConstants.au3>
Example()
Func Example()
Local $sText = "This\nline\ncontains\nC-style breaks." ; Define a variable with a string of text.
; Pass the variable to StringSplit and using the delimeter "\n".
; Note that flag paramter is set to $STR_ENTIRESPLIT (1) as it would split at \ or n otherwise.
MsgBox($MB_SYSTEMMODAL, "", StringSplit($sText, '\n', $STR_ENTIRESPLIT)[2]) ; Directly access the array index by using array access on expression.
#cs
An internal temporary array is used to return a string that may contain one of the following values:
$aArray[1] = "This"
$aArray[2] = "line"
...
$aArray[4] = "C-style breaks."
#ce
EndFunc ;==>Example