<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.autoitscript.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dany</id>
	<title>AutoIt Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.autoitscript.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dany"/>
	<link rel="alternate" type="text/html" href="https://www.autoitscript.com/wiki/Special:Contributions/Dany"/>
	<updated>2026-04-22T19:13:46Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Snippets_(_AutoIt_String_)&amp;diff=11473</id>
		<title>Snippets ( AutoIt String )</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Snippets_(_AutoIt_String_)&amp;diff=11473"/>
		<updated>2012-12-08T21:43:37Z</updated>

		<summary type="html">&lt;p&gt;Dany: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
[[category:Snippets]]&lt;br /&gt;
&lt;br /&gt;
{{Snippet Credit Header}}&lt;br /&gt;
&lt;br /&gt;
== _StringEqualSplit ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
| AuthorURL = 15769-czardas&lt;br /&gt;
| AuthorName = czardas&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Array.au3&amp;gt;&lt;br /&gt;
Global $aArray = _StringEqualSplit(&amp;quot;abcdefghijklmnopqrstuvwxyz&amp;quot;, 5)&lt;br /&gt;
_ArrayDisplay($aArray)&lt;br /&gt;
&lt;br /&gt;
Func _StringEqualSplit($sString, $iNumChars)&lt;br /&gt;
    If (Not IsString($sString)) Or $sString = &amp;quot;&amp;quot; Then Return SetError(1, 0, 0)&lt;br /&gt;
    If (Not IsInt($iNumChars)) Or $iNumChars &amp;lt; 1 Then Return SetError(2, 0, 0)&lt;br /&gt;
    Return StringRegExp($sString, &amp;quot;(?s).{1,&amp;quot; &amp;amp; $iNumChars &amp;amp; &amp;quot;}&amp;quot;, 3)&lt;br /&gt;
EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | Return To Contents]]&lt;br /&gt;
&lt;br /&gt;
== _StringGetChrCount ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
| AuthorURL = 52-geosoft&lt;br /&gt;
| AuthorName = GEOSoft&lt;br /&gt;
| Desc = Check how many times the word &#039;test&#039; appears in the string. 1 = Case-sensitive or 0 = Non Case-sensitive.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Check how many times the word &#039;test&#039; appears in the string. 1 = Case-sensitive or 0 = Non Case-sensitive.&lt;br /&gt;
ConsoleWrite(_StringGetChrCount(&amp;quot;test teste test&amp;quot;, &amp;quot;TEST&amp;quot;, 0) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
Func _StringGetChrCount($sStr, $sChr, $iCase = 0)&lt;br /&gt;
	If $iCase &amp;lt;&amp;gt; 0 Then&lt;br /&gt;
		$iCase = 1&lt;br /&gt;
	EndIf&lt;br /&gt;
	StringReplace($sStr, $sChr, $sChr, 0, $iCase)&lt;br /&gt;
	Return @extended&lt;br /&gt;
EndFunc   ;==&amp;gt;_StringGetChrCount&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | Return To Contents]]&lt;br /&gt;
&lt;br /&gt;
== _StringEqualSplit ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
| AuthorURL = 15769-czardas&lt;br /&gt;
| AuthorName = czardas&lt;br /&gt;
| ModifierURL = 35302-guinness&lt;br /&gt;
| ModifierName = guinness&lt;br /&gt;
| Desc = Splits a string into an equal number of characters. The 0th index returns the number of items.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Array.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global $aArray = _StringEqualSplit(&#039;abcdefghijklmnopqrstuvwxyz&#039;, 5)&lt;br /&gt;
&lt;br /&gt;
_ArrayDisplay($aArray)&lt;br /&gt;
&lt;br /&gt;
; By czardas &amp;amp; modified by guinness &amp;gt;&amp;gt; http://www.autoitscript.com/forum/topic/139260-autoit-snippets/page__st__20#entry992149&lt;br /&gt;
; Version: 1.00. AutoIt: V3.3.8.1&lt;br /&gt;
; Splits a string into an equal number of characters. The 0th index returns the number of items.&lt;br /&gt;
Func _StringEqualSplit($sString, $iNumChars)&lt;br /&gt;
    If (Not IsString($sString)) Or $sString = &#039;&#039; Then&lt;br /&gt;
        Return SetError(1, 0, 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    If (Not IsInt($iNumChars)) Or $iNumChars &amp;lt; 1 Then&lt;br /&gt;
        Return SetError(2, 0, 0)&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    Local $tBuffer = DllStructCreate(&#039;char[&#039; &amp;amp; $iNumChars &amp;amp; &#039;]&#039;)&lt;br /&gt;
&lt;br /&gt;
    DllCall(&#039;msvcrt.dll&#039;, &#039;ptr:cdecl&#039;, &#039;memset&#039;, &#039;ptr&#039;, DllStructGetPtr($tBuffer), &#039;int&#039;, 65, &#039;int&#039;, $iNumChars) ; By Zedna (StringRepeat)&lt;br /&gt;
&lt;br /&gt;
    Local $aArray = StringRegExp(DllStructGetData($tBuffer, 1) &amp;amp; $sString, &#039;(?s).{1,&#039; &amp;amp; $iNumChars &amp;amp; &#039;}&#039;, 3)&lt;br /&gt;
&lt;br /&gt;
    $aArray[0] = Ubound($aArray, 1) - 1&lt;br /&gt;
&lt;br /&gt;
    Return $aArray&lt;br /&gt;
EndFunc   ;==&amp;gt;_StringEqualSplit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | Return To Contents]]&lt;br /&gt;
&lt;br /&gt;
== _StringIsNum ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
| AuthorURL = 38301-smartee&lt;br /&gt;
| AuthorName = smartee&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
ConsoleWrite(StringIsNum(&#039;Example&#039;) &amp;amp; @CRLF)&lt;br /&gt;
ConsoleWrite(StringIsNum(&#039;123456&#039;) &amp;amp; @CRLF)&lt;br /&gt;
ConsoleWrite(StringIsNum(&#039;Example &amp;amp; 123456&#039;) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
Func StringIsNum($sString)&lt;br /&gt;
    Return StringRegExp($sString, &amp;quot;^([0-9]*(\.[0-9]+){1}|[0-9]+(\.[0-9]*){0,1})$&amp;quot;) = 1&lt;br /&gt;
EndFunc   ;==&amp;gt;StringIsNum&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | Return To Contents]]&lt;br /&gt;
&lt;br /&gt;
== _StringRemoveLine ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
| AuthorURL = 4813-smoke-n&lt;br /&gt;
| AuthorName = SmOke_N&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
Global $string = &#039;This is an example&#039; &amp;amp; @CRLF &amp;amp; &#039;Of deleting a line&#039; &amp;amp; @CRLF &amp;amp; &#039;If you know at least the beginning text of the line.&#039;&lt;br /&gt;
&lt;br /&gt;
MsgBox(0, &#039;Original&#039;, $string)&lt;br /&gt;
&lt;br /&gt;
Global $deleteline = _StringRemoveLine($string, &#039;Of deleting&#039;)&lt;br /&gt;
&lt;br /&gt;
MsgBox(0, &#039;Deleted Line&#039;, $deleteline)&lt;br /&gt;
&lt;br /&gt;
Func _StringRemoveLine($hFile, $sDelete)&lt;br /&gt;
    If FileExists($hFile) Then $hFile = FileRead($hFile);Remove If FileExists($hFile) Then &amp;lt;&amp;lt; only&lt;br /&gt;
    Local $nSNS = StringInStr($hFile, @CRLF &amp;amp; $sDelete) - 1&lt;br /&gt;
    Local $sSFH = StringLeft($hFile, $nSNS)&lt;br /&gt;
    Local $sRL = StringTrimLeft($hFile, StringLen($sSFH) + 2)&lt;br /&gt;
    Local $sLLEN = StringLen(StringLeft($sRL, StringInStr($sRL, @CRLF)))&lt;br /&gt;
    If Not $sLLEN Then $sLLEN = StringLen($sRL)&lt;br /&gt;
    Return $sSFH &amp;amp; StringTrimLeft($hFile, $sLLEN + $nSNS + 2)&lt;br /&gt;
EndFunc ;==&amp;gt;_StringRemoveLine()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | Return To Contents]]&lt;br /&gt;
&lt;br /&gt;
== _StringReplaceBlank ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
| AuthorURL = 4813-smoke-n&lt;br /&gt;
| AuthorName = SmOke_N&lt;br /&gt;
| Desc = Remove blank lines from a File&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Remove blank lines from a File&lt;br /&gt;
Local $sString = &amp;quot;I am a string&amp;quot; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;With Empty Lines&amp;quot; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
		&amp;quot;Please Remove those empty lines&amp;quot;&lt;br /&gt;
&lt;br /&gt;
MsgBox(4096, &amp;quot;Before&amp;quot;, $sString)&lt;br /&gt;
&lt;br /&gt;
$sString = _StringReplaceBlank($sString, 1)&lt;br /&gt;
&lt;br /&gt;
MsgBox(4096, &amp;quot;Replaced: &amp;quot; &amp;amp; @extended &amp;amp; &amp;quot; lines.&amp;quot;, $sString)&lt;br /&gt;
&lt;br /&gt;
Func _StringReplaceBlank($sString, $sSpaces = &amp;quot;&amp;quot;)&lt;br /&gt;
	If $sSpaces Then&lt;br /&gt;
		$sSpaces = &amp;quot;\s*&amp;quot;&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	$sString = StringRegExpReplace($sString, &amp;quot;(?s)\r\n&amp;quot; &amp;amp; $sSpaces &amp;amp; &amp;quot;\r\n&amp;quot;, @CRLF)&lt;br /&gt;
&lt;br /&gt;
	If @extended Then&lt;br /&gt;
		Return SetError(0, @extended, $sString)&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	Return SetError(1, 0, $sString)&lt;br /&gt;
EndFunc   ;==&amp;gt;_StringReplaceBlank&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | Return To Contents]]&lt;br /&gt;
&lt;br /&gt;
== _StringTrimLeftIsEqual ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
| AuthorURL = 35302-guinness&lt;br /&gt;
| AuthorName = guinness&lt;br /&gt;
| Desc = Strip a character/word from the leftmost part of a string.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
ConsoleWrite(_StringTrimLeftIsEqual(&#039;C:\Test&#039;, &#039;C:\&#039;) &amp;amp; @CRLF) ; Returns Test as the string &#039;C:\&#039; is stripped from the left.&lt;br /&gt;
ConsoleWrite(_StringTrimLeftIsEqual(&#039;C:\Test\&#039;, &#039;C&#039;) &amp;amp; @CRLF) ; Returns :\Test as the character &#039;C&#039; is stripped from the left.&lt;br /&gt;
ConsoleWrite(_StringTrimLeftIsEqual(&#039;C:\Test\&#039;, &#039;Test&#039;) &amp;amp; @CRLF) ; Returns the initial string as the string &#039;Test&#039; was not found to the leftmost part of the string.&lt;br /&gt;
&lt;br /&gt;
; Version: 1.00. AutoIt: V3.3.8.1&lt;br /&gt;
; Strip a character/word from the leftmost part of a string.&lt;br /&gt;
Func _StringTrimLeftIsEqual($sString, $sStringTrim)&lt;br /&gt;
    Local $aStringTrim[2] = [0, StringLen($sStringTrim)]&lt;br /&gt;
    Return StringTrimLeft($sString, $aStringTrim[Number(StringLeft($sString, $aStringTrim[1]) == $sStringTrim)])&lt;br /&gt;
EndFunc   ;==&amp;gt;_StringTrimLeftIsEqual&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | Return To Contents]]&lt;br /&gt;
&lt;br /&gt;
== _StringTrimRightIsEqual ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
| AuthorURL = 35302-guinness&lt;br /&gt;
| AuthorName = guinness&lt;br /&gt;
| Desc = Strip a character/word from the rightmost part of a string.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
ConsoleWrite(_StringTrimRightIsEqual(&#039;C:\Test&#039;, &#039;Test&#039;) &amp;amp; @CRLF) ; Returns C:\ as the string &#039;Test&#039; is stripped from the right.&lt;br /&gt;
ConsoleWrite(_StringTrimRightIsEqual(&#039;C:\Test\&#039;, &#039;\&#039;) &amp;amp; @CRLF) ; Returns C:\Test as the character &#039;\&#039; is stripped from the right.&lt;br /&gt;
ConsoleWrite(_StringTrimRightIsEqual(&#039;C:\Test\&#039;, &#039;Test&#039;) &amp;amp; @CRLF) ; Returns the initial string as the string &#039;Test&#039; was not found to the rightmost part of the string.&lt;br /&gt;
&lt;br /&gt;
; Version: 1.00. AutoIt: V3.3.8.1&lt;br /&gt;
; Strip a character/word from the rightmost part of a string.&lt;br /&gt;
Func _StringTrimRightIsEqual($sString, $sStringTrim)&lt;br /&gt;
    Local $aStringTrim[2] = [0, StringLen($sStringTrim)]&lt;br /&gt;
    Return StringTrimRight($sString, $aStringTrim[Number(StringRight($sString, $aStringTrim[1]) == $sStringTrim)])&lt;br /&gt;
EndFunc   ;==&amp;gt;_StringTrimRightIsEqual&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | Return To Contents]]&lt;br /&gt;
&lt;br /&gt;
== _StringRegExpSplit ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
| AuthorURL = 69238-dany&lt;br /&gt;
| AuthorName = dany&lt;br /&gt;
| Desc = Split a string based on a regular expression.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Split a string based on a regular expression.&lt;br /&gt;
; http://www.autoitscript.com/forum/topic/139260-autoit-snippets/page__st__120#entry1036533&lt;br /&gt;
#include &amp;lt;Array.au3&amp;gt; ; Only needed for example.&lt;br /&gt;
Global $sString = &#039;List:&#039; &amp;amp; _&lt;br /&gt;
        &#039;1. Bananas&#039; &amp;amp; _&lt;br /&gt;
        &#039;2. Coconuts&#039; &amp;amp; _&lt;br /&gt;
        &#039;3. Apples&#039;&lt;br /&gt;
_ArrayDisplay(_StringRegExpSplit($sString, &#039;[0-9]+\. ?&#039;)) ; Use the numbering (#.) to split on.&lt;br /&gt;
Global $bBinary = Binary($sString)&lt;br /&gt;
_ArrayDisplay(_StringRegExpSplit($bBinary, &#039;3[0-9]2E(20)?&#039;))&lt;br /&gt;
&lt;br /&gt;
; #FUNCTION# ===================================================================&lt;br /&gt;
; Name...........: _StringRegExpSplit&lt;br /&gt;
; Description ...: Split a string according to a regular expression.&lt;br /&gt;
; Syntax.........: _StringRegExpSplit($sString, $sPattern)&lt;br /&gt;
; Parameters ....: $sString - String: String to split.&lt;br /&gt;
;                  $sPattern - String: Regular expression to split on.&lt;br /&gt;
; Return values .: Success - Array: Array of substrings, the total is in $array[0].&lt;br /&gt;
;                  Failure - Array: The count is 1 ($array[0]) and the full string is returned ($array[1]) and sets @error:&lt;br /&gt;
;                  |1 Delimiter not found.&lt;br /&gt;
;                  |2 Bad RegExp pattern, @extended contains the offset of the error in the pattern.&lt;br /&gt;
;                  |3 No suitable placeholder delimiter could be constructed.&lt;br /&gt;
; Author ........: dany&lt;br /&gt;
; Modified ......: czardas, AZJIO&lt;br /&gt;
; Remarks .......:&lt;br /&gt;
; Related .......:&lt;br /&gt;
; ==============================================================================&lt;br /&gt;
Func _StringRegExpSplit($sString, $sPattern)&lt;br /&gt;
	Local $sSplit, $sDelim, $aError[2] = [1, $sString]&lt;br /&gt;
	For $i = 1 To 31&lt;br /&gt;
		$sDelim &amp;amp;= Chr($i)&lt;br /&gt;
		If Not StringInStr($sString, $sDelim) Then ExitLoop&lt;br /&gt;
		If 32 = StringLen($sDelim) Then Return SetError(3, 0, $aError)&lt;br /&gt;
	Next&lt;br /&gt;
	$sSplit = StringRegExpReplace($sString, $sPattern, $sDelim)&lt;br /&gt;
	If @error Then Return SetError(2, @extended, $aError)&lt;br /&gt;
	If @extended = 0 Then Return SetError(1, 0, $aError)&lt;br /&gt;
	If Not IsBinary($sString) Then Return StringSplit($sSplit, $sDelim, 1)&lt;br /&gt;
	$sSplit = StringSplit($sSplit, $sDelim, 1)&lt;br /&gt;
	For $i = 2 To $sSplit[0]&lt;br /&gt;
		$sSplit[$i] = &#039;0x&#039; &amp;amp; $sSplit[$i]&lt;br /&gt;
	Next&lt;br /&gt;
	Return $sSplit&lt;br /&gt;
EndFunc   ;==&amp;gt;_StringRegExpSplit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | Return To Contents]]&lt;/div&gt;</summary>
		<author><name>Dany</name></author>
	</entry>
</feed>