corz.org uses cookies to remember that you've seen this notice explaining that corz.org uses cookies, okay!
global $ce_debug = 0
func BubbleSort(ByRef $bs_array)
for $i = uBound($bs_array)-1 to 1 step -1
for $j = 2 to $i
if $bs_array[$j-1] > $bs_array[$j] then
$temp = $bs_array[$j-1]
$bs_array[$j-1] = $bs_array[$j]
$bs_array[$j] = $temp
endif
next
next
return $bs_array
endfunc
func InsertionSort(ByRef $is_array)
for $i = 1 to uBound($is_array)-1
$index = $is_array[$i]
$j = $i
while $j > 1 and $is_array[$j-1] > $index
$is_array[$j] = $is_array[$j-1]
$j -= 1
wend
$is_array[$j] = $index
next
return $is_array
endfunc
func ShellSort(ByRef $some_array)
$increment = 1
while $increment > 0
for $i = 2 to uBound($some_array)-1
$j = $i
$temp = $some_array[$i]
while $j >= $increment and $some_array[$j-$increment] > $temp
$some_array[$j] = $some_array[$j-$increment]
$j = $j - $increment
wend
$some_array[$j] = $temp
next
if $increment/2 <> 0 then
$increment = int($increment/2)
elseif $increment = 1 then
$increment = 0
else
$increment = 1
endif
wend
return $some_array
endfunc
func MaxMax($num1, $num2, $num3=1.7E-308)
if not IsNumber($num1) or not IsNumber($num2) or not IsNumber($num3) then return
if $num1 > $num2 then
if $num3 > $num1 then return $num3
return $num1
else
if $num3 > $num2 then return $num3
return $num2
endif
endfunc
func MinMin($num1, $num2, $num3=1.7E+308)
if not IsNumber($num1) or not IsNumber($num2) or not IsNumber($num3) then return
if $num1 > $num2 then
if $num3 < $num2 then return $num3
return $num2
else
if $num3 < $num1 then return $num3
return $num1
endif
endfunc
func printf($format, $var1, $var2=-1, $var3=-1)
if $var2=-1 then
return StringFormat($format, $var1)
else
return StringFormat($format, $var1, $var2, $var3)
endif
endfunc
func BaseName($bn_path)
$bn_path = StringReplace($bn_path, "/", "\")
if StringRight($bn_path, 1) = "\" then $bn_path = StringTrimRight($bn_path, 1)
local $parts = StringSplit($bn_path, "\")
local $bn_tmp = $parts[$parts[0]]
if StringRight($bn_tmp, 1) = ":" then $bn_tmp = StringTrimRight($bn_tmp, 1)
return $bn_tmp
endfunc
func GetExtension($some_name)
$parts = StringSplit($some_name, ".")
local $e = $parts[$parts[0]]
if $e <> $some_name and not StringInStr($e, "\") then
return $e
else
return ""
endif
endfunc
func RemoveExtension($some_name)
local $add = 0
if StringInStr(BaseName($some_name), ".") then $add = 1
return StringTrimRight($some_name, StringLen(GetExtension($some_name)) + $add)
endfunc
func CleanName($some_name)
return RemoveExtension(BaseName($some_name))
endfunc
func CleanPath($string)
$string = StringReplace($string, "|", "~")
$string = StringReplace($string, '"', "'")
$string = StringReplace($string, ":", "~")
$string = StringReplace($string, "*", "~")
$string = StringReplace($string, "/", "~")
$string = StringReplace($string, "\", "~")
$string = StringReplace($string, ">", "~")
$string = StringReplace($string, "<", "~")
$string = StringReplace($string, "?", "~@")
return $string
endfunc
func GetParent($gp_dir)
if StringRight($gp_dir, 1) = "\" then $gp_dir = StringTrimRight($gp_dir, 1)
local $gp_full_path = StringSplit($gp_dir, "\")
$tmp_parent = StringTrimRight($gp_dir, StringLen($gp_full_path[$gp_full_path[0]]) + 1) \"
if StringLen($tmp_parent) <= 3 then return GetWinDrive($gp_dir) & ":"
return $tmp_parent
endfunc
I:\temp\test\musk.mp3" >> returns: I
func GetWinDrive($gd_path)
select
case StringMid($gd_path, 2, 1) == ":"
return StringLeft($gd_path, 1)
case else
return ""
endselect
endfunc
func LnkToReal($file)
if GetExtension($file) = "lnk" then
local $lnk_arr = FileGetShortcut($file)
if IsArray($lnk_arr) and FileExists($lnk_arr[0]) then return $lnk_arr[0]
else
return $file
endif
return false
endfunc
func FolderIsEmpty($fie_folder)
if not FileExists($fie_folder) then return 2
local $ret = 0
local $fie_search_files = FileFindFirstFile($fie_folder & "\*.*")
if $fie_search_files = -1 then
if @error = 1 then
$ret = 1
else
$ret = 2
endif
endif
FileClose($fie_search_files)
return $ret
endfunc
func IsDir($some_path)
return StringInStr(FileGetAttrib($some_path), "D")
endfunc
func ReadDir($folder, $extension)
local $files[1]
local $new_array[2]
if StringLeft($folder, 4) <> "\\?\" then $folder = "\\?\" & $folder
search handle" of all the *.$extension files in the folder
$search_files = FileFindFirstFile($folder & "\*." & $extension)
if $search_files = -1 then
FileClose($search_files)
$search_files = FileFindFirstFile($folder & "\*." & $extension)
endif
$i = 1
do
$tmp = FileFindNextFile($search_files)
$files[$i-1] = $tmp
$i += 1
redim $files[$i]
until @error
FileClose($search_files)
$i = 2
for $this_file in $files
if StringInStr($this_file, $extension, 2) then
redim $new_array[$i]
$new_array[0] = $i-1
$new_array[$i-1] = $this_file
$i = $i + 1
endif
next
$files = 0
" then return 0
return $new_array
endfunc
AutoIt Array").
C:\Program Files", "*.reg,*.ini,*.cfg")
$dont_recurse" tells RecurseDir() to only return
dump file" to dump (log) the paths of all matched files; for debugging only,
$return_dirs" which
&=" operator. Those wee differences mount up.
global $quit = false
func RecurseDir($dir, $mask, $dont_recurse=false, $dump="", $return_dirs=false, $mx=1000000, $dirs_match_mask=false, $convert_names=false, $convert_level=2)
.\" & @ScriptName & " (" & @ScriptLineNumber & ") : ==> " & "dir: " & $dir & @LF)
.\" & @ScriptName & " (" & @ScriptLineNumber & ") : ==> " & "mask: " & $mask & @LF)
.\" & @ScriptName & " (" & @ScriptLineNumber & ") : ==> " & "dont_recurse: " & $dont_recurse & @LF)
.\" & @ScriptName & " (" & @ScriptLineNumber & ") : ==> " & "dump: " & $dump & @LF)
.\" & @ScriptName & " (" & @ScriptLineNumber & ") : ==> " & "return_dirs: " & $return_dirs & @LF)
.\" & @ScriptName & " (" & @ScriptLineNumber & ") : ==> " & "mx: " & $mx & @LF)
.\" & @ScriptName & " (" & @ScriptLineNumber & ") : ==> " & "dirs_match_mask: " & $dirs_match_mask & @LF)
local $n_dirnames[$mx]
local $n_dircount = 0
local $n_file
local $n_search
local $file_array
local $filenames
local $matching_dirs
local $filecount
local $dircount = 1
\" on the end of the given directory, remove that..
if StringRight($dir, 1) = "\" then $dir = StringTrimRight($dir, 1)
$n_dirnames[$dircount] = $dir
if not FileExists($dir) then return 0
while $dircount > $n_dircount
if $quit = 1 then return
$n_dircount += 1
$n_search = FileFindFirstFile($n_dirnames[$n_dircount] & "\*.*")
while 1
$n_file = FileFindNextFile($n_search)
if @error then
FileClose($n_file)
exitloop
endif
if $n_file = "." or $n_file = ".." then continueloop
if $convert_names = $GUI_CHECKED then
$cn_file = BaseName(ConvertNames($n_dirnames[$n_dircount] & "\" & $n_file, $convert_level))
if $n_file <> $cn_file then $n_file = $cn_file
endif
$n_file = $n_dirnames[$n_dircount] & "\" & $n_file
if StringInStr(FileGetAttrib($n_file ), "D") and not $dont_recurse then
$dircount += 1
$n_dirnames[$dircount] = $n_file
endif
wend
FileClose($n_search)
if StringInStr($mask, ",", 2) then
$mask_array = StringSplit($mask, ",")
else
local $mask_array[2] = [1, $mask]
endif
for $mask_c = 1 to $mask_array[0]
$n_search = FileFindFirstFile($n_dirnames[$n_dircount] & "\" & $mask_array[$mask_c] )
if $n_search = -1 then continueloop
if @error then
FileClose($n_search)
exitloop
endif
while 1
$n_file = FileFindNextFile($n_search)
if @error then
FileClose($n_file)
exitloop
endif
if $n_file = "." or $n_file = ".." then continueloop
if $convert_names = $GUI_CHECKED then
$cn_file = BaseName(ConvertNames($n_dirnames[$n_dircount] & "\" & $n_file, $convert_level))
if $n_file <> $cn_file then $n_file = $cn_file
endif
$n_file = $n_dirnames[$n_dircount] & "\" & $n_file
if not StringInStr(FileGetAttrib( $n_file ), "D") then
$filecount += 1
$filenames &= $n_file & @LF
else
$matching_dirs &= $n_file & "|"
endif
wend
FileClose($n_search)
next
FileClose($n_search)
wend
if $return_dirs then
$tmp_str = ""
$i = 1
if $dirs_match_mask then
$matching_dirs = StringTrimRight($matching_dirs, 1)
$n_dirnames = StringSplit($matching_dirs, "|")
return $n_dirnames
else
while $n_dirnames[$i] <> ""
$tmp_str &= $n_dirnames[$i] & "|"
$i += 1
wend
$tmp_str = StringTrimRight($tmp_str, 1)
$n_dirnames = StringSplit($tmp_str, "|")
return $n_dirnames
endif
endif
$filenames = StringTrimRight($filenames, 1)
if $filenames = "" then return 0
$file_array = StringSplit($filenames, @LF)
if $dump then
$dump_file = FileOpen($dump, 2)
FileWrite($dump_file, $filenames)
FileClose($dump_file)
endif
return($file_array)
endfunc
func ConvertNames($some_path, $convert_level=4)
local $ab_file = $some_path
$ub_file = StringToBinary($some_path, $convert_level)
$ab_file = BinaryToString($ub_file, 1)
if $some_path <> $ab_file then
$some_path = FileGetShortName($some_path)
endif
return $some_path
endfunc
test.ini", "foo")
foo", in the file; "test.ini"
\r\n"; Windows line-break) between each line, but none before or after..
;" will be
; returned beginning with a hash "(*&^(*&%*&^$&^£$^$%*&^%(*&%(")
$whole_file = FileOpen($ini_file, 0)
$file_lines = StringSplit(StringStripCR(FileRead($whole_file, FileGetSize($ini_file))), @LF)
FileClose($whole_file)
$comment_string = ""
$found_my_section = false
for $a = 1 to $file_lines[0]
$file_lines[$a] = StringStripWS($file_lines[$a], 3)
if $found_my_section and StringLeft($file_lines[$a], 1) = "[" then exitloop
if $file_lines[$a] = "[" & $ini_section & "]" then $found_my_section = true
if $found_my_section then
if StringLeft($file_lines[$a], 1) = ";", "\" & Basename($ini_file) & ".bax.ini", 1)
IniWrite($ini_file, $ini_section, "wctis_foo", "bar")
$whole_file = FileRead($ini_file)
$whole_file = StringReplace($whole_file, "[" & $ini_section & "]", "[" & $ini_section & "]" & @CRLF & $comment_string)
$tmp_file = FileOpen($ini_file, 2)
FileWrite($tmp_file, $whole_file)
FileClose($tmp_file)
if FileGetSize($ini_file) < FileGetSize(@TempDir & "\" & Basename($ini_file) & ".bax.ini") then
FileDelete($ini_file)
FileCopy(@TempDir & "\" & Basename($ini_file) & ".bax.ini", $ini_file)
return 0
endif
IniDelete($ini_file, $ini_section, "wctis_foo")
return 1
endfunc
transforms" an AutoIt or human unchecked value (4 or 0, respectively),
big_switch", $GUI_UNCHECKED)
4" is not a logical value, and most humans would expect
human" equivalents. Other "human" values are
func IniReadCheckBoxValue($rcbv_inifile, $rcbv_section, $rcbv_key, $rcbv_default)
$ircbv_val = IniRead($rcbv_inifile, $rcbv_section, $rcbv_key, $rcbv_default)
switch $ircbv_val
case $GUI_UNCHECKED
return $GUI_UNCHECKED
case "false", "off", "n", "no", "not", "nope", "nay", "nay!", "nah", "nah!", "no way!", "no sir!", "negative", "neg", "no!"
return $GUI_UNCHECKED
case "true", "on", "y", "yes", "yes!", "yay", "yay!", "yup", "hell yes!", "indeed", "yes sir!", "yessir!", "affirmative", "cool"
return $GUI_CHECKED
case "0"
return $GUI_UNCHECKED
case $GUI_CHECKED
return $GUI_CHECKED
case else -" (I sometimes employ, to enable user to disable something) let it pass..
return $ircbv_val
endswitch
endfunc
func ProcessReadHumanCheckBoxValue($some_string)
switch $some_string
case $GUI_UNCHECKED
return $GUI_UNCHECKED
case "false", "off", "n", "no", "not", "nope", "nay", "nay!", "nah", "nah!", "no way!", "no sir!", "negative", "neg", "no!"
return $GUI_UNCHECKED
case "true", "on", "y", "yes", "yes!", "yay", "yay!", "yup", "hell yes!", "indeed", "yes sir!", "yessir!", "affirmative", "cool"
return $GUI_CHECKED
case "0"
return $GUI_UNCHECKED
case $GUI_CHECKED
return $GUI_CHECKED
case else
return $GUI_UNCHECKED
endswitch
endfunc
no", "off", or whatever, by passing the optional 5th/6th
func IniWriteCheckBoxValue($wcbv_inifile, $wcbv_section, $wcbv_key, $wcbv_val, $tru_val="true",$fal_val="false")
if $wcbv_val = $GUI_CHECKED then $wcbv_val = $tru_val
if $wcbv_val = $GUI_UNCHECKED then $wcbv_val = $fal_val
IniWrite($wcbv_inifile, $wcbv_section, $wcbv_key, $wcbv_val)
endfunc
func ProcessWriteHumanCheckBoxValue($some_string)
if $some_string = $GUI_CHECKED then return "true"
return "false"
endfunc
func IniKeyExists(ByRef $search_array, $search_string)
if not IsArray($search_array) then
return false
endif
for $i = 1 to $search_array[0][0]
if $search_string = $search_array[$i][0] then
return $search_array[$i][1]
endif
next
return false
endfunc
func InArray(ByRef $ia_array, $ia_string)
if not IsArray($ia_array) then return SetError(1, 0, false)
$ia_limit = UBound($ia_array) - 1
for $i = 1 to $ia_limit 1"
if $ia_string = $ia_array[$i] then return $i
next
return false
endfunc
func InArrayValue(ByRef $ia_array, $ia_string)
if not IsArray($ia_array) then return SetError(1, -8, false)
$ia_limit = UBound($ia_array) - 1
for $i = 1 to $ia_limit
if StringInStr($ia_array[$i], $ia_string) then return $i
next
return false
endfunc
column marker" is simply a delimiter within the value which
path/name.ext") inside a
path/name.ext*179*20080621114934".
func InArrayColumn(ByRef $ia_array, $ia_string, $col=1, $marker="*")
if not IsArray($ia_array) then return SetError(1, -8, false)
$ia_limit = UBound($ia_array) - 1
for $i = 1 to $ia_limit
$columns = StringSplit($ia_array[$i], $marker)
if $columns[$col] == $ia_string then return $i
next
return false
endfunc
AutoIt array" with a single data element, that is, two elements; $dummy_array[1]
func MakeDummyArray($regular_string)
local $dummy_array[2] = [1, $regular_string]
return $dummy_array
endfunc
func TwoD2OneDArray(ByRef $Array2D)
if not IsArray($Array2D) then return false
local $array[$Array2D[0][0]+1]
$array[0] = $Array2D[0][0]
for $i = 1 to $Array2D[0][0]
$array[$i] = $Array2D[$i][1]
next
return $array
endfunc
func TwoD22OneDArrays(ByRef $Array2D)
if not IsArray($Array2D) then return false
local $array[$Array2D[0][0]+1]
local $array2[$Array2D[0][0]+1]
$array[0] = $Array2D[0][0]
$array2[0] = $Array2D[0][0]
for $i = 1 to $Array2D[0][0]
$array[$i] = $Array2D[$i][0]
$array2[$i] = $Array2D[$i][1]
next
local $newarray[2] = [$array, $array2]
return $newarray
endfunc
x" key inside the ini, defaults to "x".
string {y name in ini} [optional] = The name of the "y" key inside the ini, defaults to "y".
string {width name in ini} [optional] = The name of the "width" key inside the ini, defaults to "width".
string {height name in ini} [optional] = The name of the "height" key inside the ini, defaults to "height".
If don't want to write a value, set its name parameter to "-".
If you need to set any of the later optional paramters, but not earlier ones,
set the earlier parameters to an empty string "" to get their default values.
Simple usage..
SaveSizePos($my_gui, "my.ini", "prefs")
SaveSizePos($my_gui, "my.ini", "prefs", 380, 156)
Saving prefs for a second gui within the app..
SaveSizePos($my_other_gui, "my.ini", "prefs", 100, 20, "tool_x", "tool_y", "tool_width", "tool_height")
Save only width and height (but not x and y), and set minimum limits for those, too..
SaveSizePos($some_gui, "my.ini", "main prefs", 380, 80, "-", "-")
And so on.
func SaveSizePos($ssp_gui, $ssp_path, $ssp_section, $min_width="", $min_height="", $ssp_x="", $ssp_y="", $ssp_w="", $ssp_h="")
$wsize_array = WinGetPos($ssp_gui)
if not IsArray($wsize_array) then return
$x = $wsize_array[0]
$y = $wsize_array[1]
$width = $wsize_array[2]
$height = $wsize_array[3]
if not $ssp_x then $ssp_x = "x"
if not $ssp_y then $ssp_y = "y"
if not $ssp_w then $ssp_w = "width"
if not $ssp_h then $ssp_h = "height"
if $x < 0 then $x = 0
if $y > @DesktopWidth - $width then $y = @DesktopWidth - $width
if $ssp_x <> "-" then IniWrite($ssp_path, $ssp_section, $ssp_x, $x)
if $ssp_y <> "-" then IniWrite($ssp_path, $ssp_section, $ssp_y, $y)
$width = $wsize_array[2]
$height = $wsize_array[3]
if $min_width = "" then $min_width = 100
if $min_height = "" then $min_height = 50
if $width < $min_width then $width = $min_width
if $height < $min_height then $height = $min_height
$size_array = WinGetClientSize($ssp_gui)
if IsArray($size_array) then
if $ssp_w <> "-" then IniWrite($ssp_path, $ssp_section, $ssp_w, $size_array[0])
if $ssp_h <> "-" then IniWrite($ssp_path, $ssp_section, $ssp_h, $size_array[1])
endif
endfunc
previous" entry on
AutoIt" array for the values,
", $GUI_control_ID, "SelectString", GetLastComboSelection($previous_combo_selections_array, $valid_names_array))
$previous_selection" will now contain the string, which you can
func RememberComboSelection(ByRef $combo_array, $value)
for $i = 1 to $combo_array[0]
if $combo_array[$i] = "" then
if $combo_array[$i-1] <> $value then
$combo_array[$i] = $value
endif
exitloop
endif
next
endfunc
func GetLastComboSelection(ByRef $combo_array, ByRef $names_list)
$combo_array", 0, @ScriptLineNumber)
$names_list", 0, @ScriptLineNumber)
$new_val = ""
$i = $combo_array[0]
while $i > 0
if $combo_array[$i] <> "" then
if not InArray($names_list, $combo_array[$i]) then
$combo_array[$i] = ""
$i -= 1
continueloop
endif
$new_val = $combo_array[$i]
$combo_array[$i] = ""
exitloop
endif
$i -= 1
wend
last" value.
if $new_val = "" then $new_val = $names_list[$names_list[0]]
return $new_val
endfunc
history".
default browser" to our URL..
func VisitURL($vu_url="http:"
local $end = ""
local $handle = ""
if StringInStr($url, "*", 0, -1) then
$url_parts = StringSplit($url, "*")
$url = $url_parts[1]
if uBound($url_parts) > 2 then $start = $url_parts[2]
if uBound($url_parts) > 3 then $end = $url_parts[3]
endif
if StringLeft($url, 4) = "http" then
InetGet($url, @tempdir & "\UrlToText.tmp", 1)
$handle = FileOpen(@tempdir & "\UrlToText.tmp", 0)
else
$handle = FileOpen($url, 0)
endif
$web_text = FileRead($handle)
$web_text = StringRegExpReplace($web_text, '</(div|p|tr|table)>', '. ')
$web_text = StringRegExpReplace($web_text, '\s', ' ')
$web_text = StringRegExpReplace($web_text, '<(?i)head(.*?)</(?i)head>', '')
$web_text = StringRegExpReplace($web_text, '<(?i)script(.*?)</(?i)script>', '')
$web_text = StringRegExpReplace($web_text, '<(?i)style(.*?)</(?i)style>', '')
$web_text = StringRegExpReplace($web_text, '</?[^>]*?>', '')
$web_text = ReplaceHTMLEntities($web_text)
if $start then
$web_text = StringTrimLeft($web_text, StringInStr($web_text, $start)-1)
endif
$strlen = StringLen($web_text)
$end_pos = StringInStr($web_text, $end)
if $end_pos = 0 then $end_pos = $strlen
if $end then
$web_text = StringTrimRight($web_text, $strlen-$end_pos+1)
endif
FileClose($handle)
FileDelete(@tempdir & "\UrlToText.tmp")
return StringStripWS($web_text, 4)
endfunc
func ReplaceHTMLEntities($text)
for $i = 32 to 255
$text = StringReplace($text, String('&
next
$text = StringReplace($text, "ÁáÂâ´ÆæÀà&alefsym&Alpha&alpha&&and&angÅå&asympÃãÄä&bdquo&Beta&beta¦&bull&capÇ縢&Chi&chi&circ&clubs&cong©&crarr&cup¤&dagger&Dagger&darr&dArr°&Delta&delta&diams÷ÉéÊêÈè&empty&emsp&ensp&Epsilon&epsilon&equiv&Eta&etaÐðËë&euro&exist&fnof&forall½¼¾&frasl&Gamma&gamma&ge>&harr&hArr&hearts&hellipÍíÎî¡Ìì&image&infin&int&Iota&iota¿&isinÏï&Kappa&kappa&Lambda&lambda&lang«&larr&lArr&lceil&ldquo&le&lfloor&lowast&loz&lrm&lsaquo&lsquo<¯&mdashµ·&minus&Mu&mu&nabla &ndash&ne&ni¬¬in&nsubÑñ&Nu&nuÓóÔô&OElig&oeligÒò&oline&Omega&omega&Omicron&omicron&oplus&orªºØøÕõ&otimesÖö¶&part&permil&perp&Phi&phi&Pi&pi&piv±£&prime&Prime&prod&prop&Psi&psi"
$text = StringReplace($text, "&radic, "√")
$text = StringReplace($text, "&rang, "〉")
$text = StringReplace($text, "», "»")
$text = StringReplace($text, "&rarr, "→")
$text = StringReplace($text, "&rArr, "⇒")
$text = StringReplace($text, "&rceil, "⌉")
$text = StringReplace($text, "&rdquo, "”")
$text = StringReplace($text, "&real, "ℜ")
$text = StringReplace($text, "®, "®")
$text = StringReplace($text, "&rfloor, "⌋")
$text = StringReplace($text, "&Rho, "Ρ")
$text = StringReplace($text, "&rho, "ρ")
$text = StringReplace($text, "&rlm, "")
$text = StringReplace($text, "&rsaquo, "›")
$text = StringReplace($text, "&rsquo, "’")
$text = StringReplace($text, "&sbquo, "‚")
$text = StringReplace($text, "&Scaron, "Š")
$text = StringReplace($text, "&scaron, "š")
$text = StringReplace($text, "&sdot, "⋅")
$text = StringReplace($text, "§, "§")
$text = StringReplace($text, "­, "")
$text = StringReplace($text, "&Sigma, "Σ")
$text = StringReplace($text, "&sigma, "σ")
$text = StringReplace($text, "&sigmaf, "ς")
$text = StringReplace($text, "&sim, "∼")
$text = StringReplace($text, "&spades, "♠")
$text = StringReplace($text, "&sub, "⊂")
$text = StringReplace($text, "&sube, "⊆")
$text = StringReplace($text, "&sum, "∑")
$text = StringReplace($text, "¹, "¹")
$text = StringReplace($text, "², "²")
$text = StringReplace($text, "³, "³")
$text = StringReplace($text, "&sup, "⊃")
$text = StringReplace($text, "&supe, "⊇")
$text = StringReplace($text, "ß, "ß")
$text = StringReplace($text, "&Tau, "Τ")
$text = StringReplace($text, "&tau, "τ")
$text = StringReplace($text, "&there4, "∴")
$text = StringReplace($text, "&Theta, "Θ")
$text = StringReplace($text, "&theta, "θ")
$text = StringReplace($text, "&thetasym, "ϑ")
$text = StringReplace($text, "&thinsp, " ")
$text = StringReplace($text, "Þ, "Þ")
$text = StringReplace($text, "þ, "þ")
$text = StringReplace($text, "&tilde, "˜")
$text = StringReplace($text, "×, "×")
$text = StringReplace($text, "&trade, "™")
$text = StringReplace($text, "Ú, "Ú")
$text = StringReplace($text, "ú, "ú")
$text = StringReplace($text, "&uarr, "↑")
$text = StringReplace($text, "&uArr, "⇑")
$text = StringReplace($text, "Û, "Û")
$text = StringReplace($text, "û, "û")
$text = StringReplace($text, "Ù, "Ù")
$text = StringReplace($text, "ù, "ù")
$text = StringReplace($text, "¨, "¨")
$text = StringReplace($text, "&upsih, "ϒ")
$text = StringReplace($text, "&Upsilon, "Υ")
$text = StringReplace($text, "&upsilon, "υ")
$text = StringReplace($text, "Ü, "Ü")
$text = StringReplace($text, "ü, "ü")
$text = StringReplace($text, "&weierp, "℘")
$text = StringReplace($text, "&Xi, "Ξ")
$text = StringReplace($text, "&xi, "ξ")
$text = StringReplace($text, "Ý, "Ý")
$text = StringReplace($text, "ý, "ý")
$text = StringReplace($text, "¥, "¥")
$text = StringReplace($text, "ÿ, "ÿ")
$text = StringReplace($text, "&Yuml, "Ÿ")
$text = StringReplace($text, "&Zeta, "Ζ")
$text = StringReplace($text, "&zeta, "ζ")
$text = StringReplace($text, "&zwj, "")
$text = StringReplace($text, "&zwnj, "")
return $text
endfunc
func EnCodeURL($text)
$text = StringReplace($text, " ", "%20")
$text = StringReplace($text, "!", "%21")
$text = StringReplace($text, '"', "%22")
$text = StringReplace($text, "$", "%24")
$text = StringReplace($text, "%", "%25")
$text = StringReplace($text, "&", "%26")
$text = StringReplace($text, "'", "%27")
$text = StringReplace($text, "(", "%28")
$text = StringReplace($text, ")", "%29")
$text = StringReplace($text, "*", "%2A")
$text = StringReplace($text, "+", "%2B")
$text = StringReplace($text, ",", "%2C")
$text = StringReplace($text, "-", "%2D")
$text = StringReplace($text, ".", "%2E")
$text = StringReplace($text, "/", "%2F")
$text = StringReplace($text, "0", "%30")
$text = StringReplace($text, "1", "%31")
$text = StringReplace($text, "2", "%32")
$text = StringReplace($text, "3", "%33")
$text = StringReplace($text, "4", "%34")
$text = StringReplace($text, "5", "%35")
$text = StringReplace($text, "6", "%36")
$text = StringReplace($text, "7", "%37")
$text = StringReplace($text, "8", "%38")
$text = StringReplace($text, "9", "%39")
$text = StringReplace($text, ":", "%3A")
$text = StringReplace($text, "<", "%3C")
$text = StringReplace($text, "=", "%3D")
$text = StringReplace($text, ">", "%3E")
$text = StringReplace($text, "?", "%3F")
$text = StringReplace($text, "@", "%40")
$text = StringReplace($text, "A", "%41")
$text = StringReplace($text, "B", "%42")
$text = StringReplace($text, "C", "%43")
$text = StringReplace($text, "D", "%44")
$text = StringReplace($text, "E", "%45")
$text = StringReplace($text, "F", "%46")
$text = StringReplace($text, "G", "%47")
$text = StringReplace($text, "H", "%48")
$text = StringReplace($text, "I", "%49")
$text = StringReplace($text, "J", "%4A")
$text = StringReplace($text, "K", "%4B")
$text = StringReplace($text, "L", "%4C")
$text = StringReplace($text, "M", "%4D")
$text = StringReplace($text, "N", "%4E")
$text = StringReplace($text, "O", "%4F")
$text = StringReplace($text, "P", "%50")
$text = StringReplace($text, "Q", "%51")
$text = StringReplace($text, "R", "%52")
$text = StringReplace($text, "S", "%53")
$text = StringReplace($text, "T", "%54")
$text = StringReplace($text, "U", "%55")
$text = StringReplace($text, "V", "%56")
$text = StringReplace($text, "W", "%57")
$text = StringReplace($text, "X", "%58")
$text = StringReplace($text, "Y", "%59")
$text = StringReplace($text, "Z", "%5A")
$text = StringReplace($text, "[", "%5B")
$text = StringReplace($text, "\", "%5C")
$text = StringReplace($text, "]", "%5D")
$text = StringReplace($text, "^", "%5E")
$text = StringReplace($text, "_", "%5F")
$text = StringReplace($text, "`", "%60")
$text = StringReplace($text, "a", "%61")
$text = StringReplace($text, "b", "%62")
$text = StringReplace($text, "c", "%63")
$text = StringReplace($text, "d", "%64")
$text = StringReplace($text, "e", "%65")
$text = StringReplace($text, "f", "%66")
$text = StringReplace($text, "g", "%67")
$text = StringReplace($text, "h", "%68")
$text = StringReplace($text, "i", "%69")
$text = StringReplace($text, "j", "%6A")
$text = StringReplace($text, "k", "%6B")
$text = StringReplace($text, "l", "%6C")
$text = StringReplace($text, "m", "%6D")
$text = StringReplace($text, "n", "%6E")
$text = StringReplace($text, "o", "%6F")
$text = StringReplace($text, "p", "%70")
$text = StringReplace($text, "q", "%71")
$text = StringReplace($text, "r", "%72")
$text = StringReplace($text, "s", "%73")
$text = StringReplace($text, "t", "%74")
$text = StringReplace($text, "u", "%75")
$text = StringReplace($text, "v", "%76")
$text = StringReplace($text, "w", "%77")
$text = StringReplace($text, "x", "%78")
$text = StringReplace($text, "y", "%79")
$text = StringReplace($text, "z", "%7A")
$text = StringReplace($text, "{", "%7B")
$text = StringReplace($text, "|", "%7C")
$text = StringReplace($text, "}", "%7D")
$text = StringReplace($text, "~", "%7E")
$text = StringReplace($text, " ", "%7F")
$text = StringReplace($text, "€", "%80")
$text = StringReplace($text, " ", "%81")
$text = StringReplace($text, "‚", "%82")
$text = StringReplace($text, "ƒ", "%83")
$text = StringReplace($text, "„", "%84")
$text = StringReplace($text, "…", "%85")
$text = StringReplace($text, "†", "%86")
$text = StringReplace($text, "‡", "%87")
$text = StringReplace($text, "ˆ", "%88")
$text = StringReplace($text, "‰", "%89")
$text = StringReplace($text, "Š", "%8A")
$text = StringReplace($text, "‹", "%8B")
$text = StringReplace($text, "Œ", "%8C")
$text = StringReplace($text, " ", "%8D")
$text = StringReplace($text, "Ž", "%8E")
$text = StringReplace($text, " ", "%8F")
$text = StringReplace($text, " ", "%90")
$text = StringReplace($text, "‘", "%91")
$text = StringReplace($text, "’", "%92")
$text = StringReplace($text, "“", "%93")
$text = StringReplace($text, "”", "%94")
$text = StringReplace($text, "•", "%95")
$text = StringReplace($text, "–", "%96")
$text = StringReplace($text, "—", "%97")
$text = StringReplace($text, "˜", "%98")
$text = StringReplace($text, "™", "%99")
$text = StringReplace($text, "š", "%9A")
$text = StringReplace($text, "›", "%9B")
$text = StringReplace($text, "œ", "%9C")
$text = StringReplace($text, " ", "%9D")
$text = StringReplace($text, "ž", "%9E")
$text = StringReplace($text, "Ÿ", "%9F")
$text = StringReplace($text, " ", "%A0")
$text = StringReplace($text, "¡", "%A1")
$text = StringReplace($text, "¢", "%A2")
$text = StringReplace($text, "£", "%A3")
$text = StringReplace($text, " ", "%A4")
$text = StringReplace($text, "¥", "%A5")
$text = StringReplace($text, "|", "%A6")
$text = StringReplace($text, "§", "%A7")
$text = StringReplace($text, "¨", "%A8")
$text = StringReplace($text, "©", "%A9")
$text = StringReplace($text, "ª", "%AA")
$text = StringReplace($text, "«", "%AB")
$text = StringReplace($text, "¬", "%AC")
$text = StringReplace($text, "¯", "%AD")
$text = StringReplace($text, "®", "%AE")
$text = StringReplace($text, "¯", "%AF")
$text = StringReplace($text, "°", "%B0")
$text = StringReplace($text, "±", "%B1")
$text = StringReplace($text, "²", "%B2")
$text = StringReplace($text, "³", "%B3")
$text = StringReplace($text, "´", "%B4")
$text = StringReplace($text, "µ", "%B5")
$text = StringReplace($text, "¶", "%B6")
$text = StringReplace($text, "·", "%B7")
$text = StringReplace($text, "¸", "%B8")
$text = StringReplace($text, "¹", "%B9")
$text = StringReplace($text, "º", "%BA")
$text = StringReplace($text, "»", "%BB")
$text = StringReplace($text, "¼", "%BC")
$text = StringReplace($text, "½", "%BD")
$text = StringReplace($text, "¾", "%BE")
$text = StringReplace($text, "¿", "%BF")
$text = StringReplace($text, "À", "%C0")
$text = StringReplace($text, "Á", "%C1")
$text = StringReplace($text, "Â", "%C2")
$text = StringReplace($text, "Ã", "%C3")
$text = StringReplace($text, "Ä", "%C4")
$text = StringReplace($text, "Å", "%C5")
$text = StringReplace($text, "Æ", "%C6")
$text = StringReplace($text, "Ç", "%C7")
$text = StringReplace($text, "È", "%C8")
$text = StringReplace($text, "É", "%C9")
$text = StringReplace($text, "Ê", "%CA")
$text = StringReplace($text, "Ë", "%CB")
$text = StringReplace($text, "Ì", "%CC")
$text = StringReplace($text, "Í", "%CD")
$text = StringReplace($text, "Î", "%CE")
$text = StringReplace($text, "Ï", "%CF")
$text = StringReplace($text, "Ð", "%D0")
$text = StringReplace($text, "Ñ", "%D1")
$text = StringReplace($text, "Ò", "%D2")
$text = StringReplace($text, "Ó", "%D3")
$text = StringReplace($text, "Ô", "%D4")
$text = StringReplace($text, "Õ", "%D5")
$text = StringReplace($text, "Ö", "%D6")
$text = StringReplace($text, " ", "%D7")
$text = StringReplace($text, "Ø", "%D8")
$text = StringReplace($text, "Ù", "%D9")
$text = StringReplace($text, "Ú", "%DA")
$text = StringReplace($text, "Û", "%DB")
$text = StringReplace($text, "Ü", "%DC")
$text = StringReplace($text, "Ý", "%DD")
$text = StringReplace($text, "Þ", "%DE")
$text = StringReplace($text, "ß", "%DF")
$text = StringReplace($text, "à", "%E0")
$text = StringReplace($text, "á", "%E1")
$text = StringReplace($text, "â", "%E2")
$text = StringReplace($text, "ã", "%E3")
$text = StringReplace($text, "ä", "%E4")
$text = StringReplace($text, "å", "%E5")
$text = StringReplace($text, "æ", "%E6")
$text = StringReplace($text, "ç", "%E7")
$text = StringReplace($text, "è", "%E8")
$text = StringReplace($text, "é", "%E9")
$text = StringReplace($text, "ê", "%EA")
$text = StringReplace($text, "ë", "%EB")
$text = StringReplace($text, "ì", "%EC")
$text = StringReplace($text, "í", "%ED")
$text = StringReplace($text, "î", "%EE")
$text = StringReplace($text, "ï", "%EF")
$text = StringReplace($text, "ð", "%F0")
$text = StringReplace($text, "ñ", "%F1")
$text = StringReplace($text, "ò", "%F2")
$text = StringReplace($text, "ó", "%F3")
$text = StringReplace($text, "ô", "%F4")
$text = StringReplace($text, "õ", "%F5")
$text = StringReplace($text, "ö", "%F6")
$text = StringReplace($text, "÷", "%F7")
$text = StringReplace($text, "ø", "%F8")
$text = StringReplace($text, "ù", "%F9")
$text = StringReplace($text, "ú", "%FA")
$text = StringReplace($text, "û", "%FB")
$text = StringReplace($text, "ü", "%FC")
$text = StringReplace($text, "ý", "%FD")
$text = StringReplace($text, "þ", "%FE")
$text = StringReplace($text, "ÿ", "%FF")
return $text
endfunc
func DeCodeURL($text)
$text = StringReplace($text, "%20", " ")
$text = StringReplace($text, "%21", "!")
$text = StringReplace($text, "%22", '"')
$text = StringReplace($text, "%23", ")
$text = StringReplace($text, "%24", "$")
$text = StringReplace($text, "%25", "%")
$text = StringReplace($text, "%26", "&")
$text = StringReplace($text, "%27", "'")
$text = StringReplace($text, "%28", "(")
$text = StringReplace($text, "%29", ")")
$text = StringReplace($text, "%2A", "*")
$text = StringReplace($text, "%2B", "+")
$text = StringReplace($text, "%2C", ",")
$text = StringReplace($text, "%2D", "-")
$text = StringReplace($text, "%2E", ".")
$text = StringReplace($text, "%2F", "/")
$text = StringReplace($text, "%30", "0")
$text = StringReplace($text, "%31", "1")
$text = StringReplace($text, "%32", "2")
$text = StringReplace($text, "%33", "3")
$text = StringReplace($text, "%34", "4")
$text = StringReplace($text, "%35", "5")
$text = StringReplace($text, "%36", "6")
$text = StringReplace($text, "%37", "7")
$text = StringReplace($text, "%38", "8")
$text = StringReplace($text, "%39", "9")
$text = StringReplace($text, "%3A", ":")
$text = StringReplace($text, "%3B", ")
$text = StringReplace($text, "%3C", "<")
$text = StringReplace($text, "%3D", "=")
$text = StringReplace($text, "%3E", ">")
$text = StringReplace($text, "%3F", "?")
$text = StringReplace($text, "%40", "@")
$text = StringReplace($text, "%41", "A")
$text = StringReplace($text, "%42", "B")
$text = StringReplace($text, "%43", "C")
$text = StringReplace($text, "%44", "D")
$text = StringReplace($text, "%45", "E")
$text = StringReplace($text, "%46", "F")
$text = StringReplace($text, "%47", "G")
$text = StringReplace($text, "%48", "H")
$text = StringReplace($text, "%49", "I")
$text = StringReplace($text, "%4A", "J")
$text = StringReplace($text, "%4B", "K")
$text = StringReplace($text, "%4C", "L")
$text = StringReplace($text, "%4D", "M")
$text = StringReplace($text, "%4E", "N")
$text = StringReplace($text, "%4F", "O")
$text = StringReplace($text, "%50", "P")
$text = StringReplace($text, "%51", "Q")
$text = StringReplace($text, "%52", "R")
$text = StringReplace($text, "%53", "S")
$text = StringReplace($text, "%54", "T")
$text = StringReplace($text, "%55", "U")
$text = StringReplace($text, "%56", "V")
$text = StringReplace($text, "%57", "W")
$text = StringReplace($text, "%58", "X")
$text = StringReplace($text, "%59", "Y")
$text = StringReplace($text, "%5A", "Z")
$text = StringReplace($text, "%5B", "[")
$text = StringReplace($text, "%5C", "\")
$text = StringReplace($text, "%5D", "]")
$text = StringReplace($text, "%5E", "^")
$text = StringReplace($text, "%5F", "_")
$text = StringReplace($text, "%60", "`")
$text = StringReplace($text, "%61", "a")
$text = StringReplace($text, "%62", "b")
$text = StringReplace($text, "%63", "c")
$text = StringReplace($text, "%64", "d")
$text = StringReplace($text, "%65", "e")
$text = StringReplace($text, "%66", "f")
$text = StringReplace($text, "%67", "g")
$text = StringReplace($text, "%68", "h")
$text = StringReplace($text, "%69", "i")
$text = StringReplace($text, "%6A", "j")
$text = StringReplace($text, "%6B", "k")
$text = StringReplace($text, "%6C", "l")
$text = StringReplace($text, "%6D", "m")
$text = StringReplace($text, "%6E", "n")
$text = StringReplace($text, "%6F", "o")
$text = StringReplace($text, "%70", "p")
$text = StringReplace($text, "%71", "q")
$text = StringReplace($text, "%72", "r")
$text = StringReplace($text, "%73", "s")
$text = StringReplace($text, "%74", "t")
$text = StringReplace($text, "%75", "u")
$text = StringReplace($text, "%76", "v")
$text = StringReplace($text, "%77", "w")
$text = StringReplace($text, "%78", "x")
$text = StringReplace($text, "%79", "y")
$text = StringReplace($text, "%7A", "z")
$text = StringReplace($text, "%7B", "{")
$text = StringReplace($text, "%7C", "|")
$text = StringReplace($text, "%7D", "}")
$text = StringReplace($text, "%7E", "~")
$text = StringReplace($text, "%7F", " ")
$text = StringReplace($text, "%80", "€")
$text = StringReplace($text, "%81", " ")
$text = StringReplace($text, "%82", "‚")
$text = StringReplace($text, "%83", "ƒ")
$text = StringReplace($text, "%84", "„")
$text = StringReplace($text, "%85", "…")
$text = StringReplace($text, "%86", "†")
$text = StringReplace($text, "%87", "‡")
$text = StringReplace($text, "%88", "ˆ")
$text = StringReplace($text, "%89", "‰")
$text = StringReplace($text, "%8A", "Š")
$text = StringReplace($text, "%8B", "‹")
$text = StringReplace($text, "%8C", "Œ")
$text = StringReplace($text, "%8D", " ")
$text = StringReplace($text, "%8E", "Ž")
$text = StringReplace($text, "%8F", " ")
$text = StringReplace($text, "%90", " ")
$text = StringReplace($text, "%91", "‘")
$text = StringReplace($text, "%92", "’")
$text = StringReplace($text, "%93", "“")
$text = StringReplace($text, "%94", "”")
$text = StringReplace($text, "%95", "•")
$text = StringReplace($text, "%96", "–")
$text = StringReplace($text, "%97", "—")
$text = StringReplace($text, "%98", "˜")
$text = StringReplace($text, "%99", "™")
$text = StringReplace($text, "%9A", "š")
$text = StringReplace($text, "%9B", "›")
$text = StringReplace($text, "%9C", "œ")
$text = StringReplace($text, "%9D", " ")
$text = StringReplace($text, "%9E", "ž")
$text = StringReplace($text, "%9F", "Ÿ")
$text = StringReplace($text, "%A0", " ")
$text = StringReplace($text, "%A1", "¡")
$text = StringReplace($text, "%A2", "¢")
$text = StringReplace($text, "%A3", "£")
$text = StringReplace($text, "%A4", " ")
$text = StringReplace($text, "%A5", "¥")
$text = StringReplace($text, "%A6", "|")
$text = StringReplace($text, "%A7", "§")
$text = StringReplace($text, "%A8", "¨")
$text = StringReplace($text, "%A9", "©")
$text = StringReplace($text, "%AA", "ª")
$text = StringReplace($text, "%AB", "«")
$text = StringReplace($text, "%AC", "¬")
$text = StringReplace($text, "%AD", "¯")
$text = StringReplace($text, "%AE", "®")
$text = StringReplace($text, "%AF", "¯")
$text = StringReplace($text, "%B0", "°")
$text = StringReplace($text, "%B1", "±")
$text = StringReplace($text, "%B2", "²")
$text = StringReplace($text, "%B3", "³")
$text = StringReplace($text, "%B4", "´")
$text = StringReplace($text, "%B5", "µ")
$text = StringReplace($text, "%B6", "¶")
$text = StringReplace($text, "%B7", "·")
$text = StringReplace($text, "%B8", "¸")
$text = StringReplace($text, "%B9", "¹")
$text = StringReplace($text, "%BA", "º")
$text = StringReplace($text, "%BB", "»")
$text = StringReplace($text, "%BC", "¼")
$text = StringReplace($text, "%BD", "½")
$text = StringReplace($text, "%BE", "¾")
$text = StringReplace($text, "%BF", "¿")
$text = StringReplace($text, "%C0", "À")
$text = StringReplace($text, "%C1", "Á")
$text = StringReplace($text, "%C2", "Â")
$text = StringReplace($text, "%C3", "Ã")
$text = StringReplace($text, "%C4", "Ä")
$text = StringReplace($text, "%C5", "Å")
$text = StringReplace($text, "%C6", "Æ")
$text = StringReplace($text, "%C7", "Ç")
$text = StringReplace($text, "%C8", "È")
$text = StringReplace($text, "%C9", "É")
$text = StringReplace($text, "%CA", "Ê")
$text = StringReplace($text, "%CB", "Ë")
$text = StringReplace($text, "%CC", "Ì")
$text = StringReplace($text, "%CD", "Í")
$text = StringReplace($text, "%CE", "Î")
$text = StringReplace($text, "%CF", "Ï")
$text = StringReplace($text, "%D0", "Ð")
$text = StringReplace($text, "%D1", "Ñ")
$text = StringReplace($text, "%D2", "Ò")
$text = StringReplace($text, "%D3", "Ó")
$text = StringReplace($text, "%D4", "Ô")
$text = StringReplace($text, "%D5", "Õ")
$text = StringReplace($text, "%D6", "Ö")
$text = StringReplace($text, "%D7", " ")
$text = StringReplace($text, "%D8", "Ø")
$text = StringReplace($text, "%D9", "Ù")
$text = StringReplace($text, "%DA", "Ú")
$text = StringReplace($text, "%DB", "Û")
$text = StringReplace($text, "%DC", "Ü")
$text = StringReplace($text, "%DD", "Ý")
$text = StringReplace($text, "%DE", "Þ")
$text = StringReplace($text, "%DF", "ß")
$text = StringReplace($text, "%E0", "à")
$text = StringReplace($text, "%E1", "á")
$text = StringReplace($text, "%E2", "â")
$text = StringReplace($text, "%E3", "ã")
$text = StringReplace($text, "%E4", "ä")
$text = StringReplace($text, "%E5", "å")
$text = StringReplace($text, "%E6", "æ")
$text = StringReplace($text, "%E7", "ç")
$text = StringReplace($text, "%E8", "è")
$text = StringReplace($text, "%E9", "é")
$text = StringReplace($text, "%EA", "ê")
$text = StringReplace($text, "%EB", "ë")
$text = StringReplace($text, "%EC", "ì")
$text = StringReplace($text, "%ED", "í")
$text = StringReplace($text, "%EE", "î")
$text = StringReplace($text, "%EF", "ï")
$text = StringReplace($text, "%F0", "ð")
$text = StringReplace($text, "%F1", "ñ")
$text = StringReplace($text, "%F2", "ò")
$text = StringReplace($text, "%F3", "ó")
$text = StringReplace($text, "%F4", "ô")
$text = StringReplace($text, "%F5", "õ")
$text = StringReplace($text, "%F6", "ö")
$text = StringReplace($text, "%F7", "÷")
$text = StringReplace($text, "%F8", "ø")
$text = StringReplace($text, "%F9", "ù")
$text = StringReplace($text, "%FA", "ú")
$text = StringReplace($text, "%FB", "û")
$text = StringReplace($text, "%FC", "ü")
$text = StringReplace($text, "%FD", "ý")
$text = StringReplace($text, "%FE", "þ")
$text = StringReplace($text, "%FF", "ÿ")
return $text
endfunc
func OrdAbbAppend($d_str)
if $d_str < 1 then
SetError(1)
return ""
endif
local $appends[10]
$appends[0] = "th"
$appends[1] = "st"
$appends[2] = "nd"
$appends[3] = "rd"
$appends[4] = "th"
$appends[5] = "th"
$appends[6] = "th"
$appends[7] = "th"
$appends[8] = "th"
$appends[9] = "th"
if StringMid($d_str, StringLen($d_str)-1, 1) == 1 then
$appends[1] = "th"
$appends[2] = "th"
$appends[3] = "th"
endif
return $d_str & $appends[StringRight($d_str, 1)]
endfunc
func LogError($error_string)
FileWriteLine(@ScriptDir & "\error.log", "")
FileWriteLine(@ScriptDir & "\error.log", _
"--------------------------------------------------------------------------------")
FileWriteLine(@ScriptDir & "\error.log", @Year & "/" & @Mon & "/" & @MDay _
& " " & @Hour & ":" & @Min & ":" & @Sec )
FileWriteLine(@ScriptDir & "\error.log", "")
FileWriteLine(@ScriptDir & "\error.log", "command-line: " & $CmdLineRaw)
FileWriteLine(@ScriptDir & "\error.log", "")
FileWriteLine(@ScriptDir & "\error.log", $error_string)
endfunc
func PrintArray(ByRef $array, $tring="array", $limit=0, $ln="")
if @compiled then return
$pre = ""
if $ln <> "" then $pre = ".\" & @ScriptName & " (" & $ln & ") : ==> "
if not IsArray($array) then
ConsoleWrite(@LF & $pre & $tring & ": NOT an array!" & @LF)
ConsoleWrite($pre & "it's a string: " & "->" & $array & "<-" & @LF & @LF)
return 0
endif
if UBound ($array, 0) > 1 then return Print2DArray($array, $tring, $limit, $ln)
local $pa_string = ""
local $count = 0
for $element in $array
$pa_string &= '[' & $count & '] : ' & $element & @LF
$count += 1
if $count = $limit then exitloop
next
SplashOff()
ProgressOff()
ConsoleWrite($pre & $tring & ": " & @LF & $pa_string & @LF)
endfunc
func Print2DArray(ByRef $array, $tring="array", $limit=0, $ln="")
if @compiled then return
$pre = ""
if $ln <> "" then $pre = ".\" & @ScriptName & " (" & $ln & ") : ==> "
if not IsArray($array) then
ConsoleWrite(@LF & $pre & $tring & ": NOT an array!" & @LF)
ConsoleWrite($pre & "it's a string: " & "->" & $array & "<-" & @LF)
return 0
endif
if UBound ($array, 0) < 2 then return PrintArray($array, $tring, $limit, $ln)
$limit += 1
local $cols = UBound($array, 2)
local $pa_string = ""
for $i = 0 to $array[0][0]
$pa_string &= '[' & $i & '] [0] = ' & $array[$i][0] & ' '
for $j = 1 to $cols-1
$pa_string &= ' [' & $j & '] = ' & $array[$i][$j] & ' '
next
$pa_string &= @LF
next
ConsoleWrite(@LF & $pre & $tring & ": " & @LF & $pa_string & @LF)
endfunc
func DumpArray(ByRef $array, $dump_file="dump", $new=false)
if @compiled then return
if $new then FileOpen($dump_file, 2)
if not IsArray($array) then return 0
local $da_string = ""
local $count = 0
for $element in $array
$da_string &= '[' & $count & '] : ' & $element & @CRLF
$count += 1
next
FileWrite($dump_file, $da_string)
endfunc
func dump($d_string, $ln=false, $dump_file="dump")
if @compiled and ($ce_debug = 0 or $ce_debug = $GUI_UNCHECKED) then return 0
if $d_string = "new" then
FileOpen($dump_file, 10)
return 1
endif
$pre = ""
if $ln then $pre = ".\" & @ScriptName & " (" & $ln & ") : ==> "
FileWrite($dump_file, $pre & $d_string & @CRLF)
endfunc
func debug($d_string, $ln=false)
if ($ce_debug <> 0 and $ce_debug <> $GUI_UNCHECKED) then
return dump($d_string, "compiled", "debug")
else
if @compiled then return 0
endif
$pre_str = ""
if $ln then $pre_str = ".\" & @ScriptName & " (" & $ln & ") : ==> "
ConsoleWrite($pre_str & $d_string & @LF)
endfunc
func ExitReport($er_string, $code="")
MsgBox(262160, "Error " & $code, $er_string, 60)
exit $code
endfunc
Func ArrayBox(ByRef $Array, $ArrayBase=1, $sTitle='Array Box', $Width=500, $Height=300, $Left=-1, $Top=100)
local $i, $j, $ArrayDimensions = UBound($Array, 0)
local $hndForm_Main, $hndListView_Display
If $ArrayDimensions = 0 Then
SetError(1)
Return -1
EndIf
If $ArrayBase <> 0 Then $ArrayBase = 1
If $ArrayBase Then
Select
Case $ArrayDimensions = 1
$ArrayMax = $Array[0]
Case $ArrayDimensions = 2
$ArrayMax = $Array[0][0]
EndSelect
Else
$ArrayMax = UBound($Array, 1) - 1
EndIf
If $Width < 200 Then $Width = 200
If $Height < 100 Then $Height = 100
$last_event_mode = AutoItSetOption("GUIOnEventMode", 1)
$hndForm_Main = GUICreate($sTitle, $Width, $Height, $Left, $Top, BitOR(0x80000000, 0x00C00000, 0x00040000))
GUISetOnEvent(-3, "QuitBox" , $hndForm_Main)
If $ArrayDimensions = 1 Then
$sTemp = 'Index|Value'
ElseIf $ArrayDimensions = 2 Then
$sTemp = 'Index'
For $i = 0 To UBound($Array, 2) - 1
$sTemp = $sTemp & '|' & $i
Next
EndIf
$hndListView_Display = GUICtrlCreateListView($sTemp, 0, 0, $Width, $Height-32, BitOR(0x0008, 0x0004))
GUICtrlSetResizing($hndListView_Display, BitOR(0x0002, 0x0020, 0x0004, 0x0040))
$hndButton_Close = GUICtrlCreateButton('&Close',$Width-83,$Height-30,80,24)
GUICtrlSetOnEvent(-1, "QuitBox")
GUICtrlSetResizing(-1, BitOR(0x0004, 0x0040, 0x0300))
GUICtrlSetState($hndButton_Close, 512)
GUISetState (@SW_SHOW, $hndForm_Main)
Select
Case $ArrayDimensions = 1
For $i = $ArrayBase To $ArrayMax
GUICtrlCreateListViewItem($i & '|' & $Array[$i], $hndListView_Display)
Next
Case $ArrayDimensions = 2
For $i = $ArrayBase To $ArrayMax
$sTemp=$Array[$i][0]
for $j = 1 To UBound($Array, 2) - 1
$sTemp = $sTemp & '|' & $Array[$i][$j]
Next
GUICtrlCreateListViewItem('[' & $i & ']|' & $sTemp, $hndListView_Display)
Next
Case Else
EndSelect
global $QuitBox = 0
do
Sleep(100)
until $QuitBox = 1
AutoItSetOption("GUIOnEventMode", $last_event_mode)
GUIDelete($hndForm_Main)
Return 0
EndFunc
Func ce_Singleton($occurenceName, $flag = 0)
Local $ERROR_ALREADY_EXISTS = 183
$occurenceName = StringReplace($occurenceName, "\", "")
Local $handle = DllCall("kernel32.dll", "int", "CreateMutex", "int", 0, "long", 1, "str", $occurenceName)
Local $lastError = DllCall("kernel32.dll", "int", "GetLastError")
If $lastError[0] = $ERROR_ALREADY_EXISTS Then
If $flag = 0 Then
Exit -1
Else
SetError($lastError[0])
Return 0
EndIf
EndIf
Return $handle[0]
EndFunc
func ce_IsPressed($Key)
local $kp = DllCall('user32.dll', "int", "GetAsyncKeyState", "int", '0x' & $Key)
if not @error and BitAND($kp[0], 0x8000) = 0x8000 then return 1
return 0
endfunc
func QuitBox()
$QuitBox = 1
endfunc
; http:
Func _ReduceMemory()
DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', -1)
EndFunc
; $versioncheck_url = "http:
; $download_url = "http://corz.org/windows/software/batch-runner/batch-runner-pro.php
func CheckOnlineVersion($v_name, $GUI, $vck_url, $dl_url, $my_ini, $my_section, $my_version)
local $version_checking = IniRead($my_ini, $my_section, "version_checking", "")
if $version_checking == 0 then return
if $version_checking = -1 or $version_checking = "" then
DialogOpen()
local $do_checkver = InputBox("Automatic Version Checking?", $v_name & " can check online for a new version of itself." & $msg_lf & _
"Enter the number of days between checks (0 to disable version checking). ", "" , "" , 400, 150 , $x, $y, 0, $GUI)
DialogClose()
if $do_checkver = "" then return false
IniWrite($my_ini, $my_section, "version_checking", Int($do_checkver))
if $do_checkver = 0 then return
endif
if $version_checking > 365 then $version_checking = 365
if $version_checking > 0 then
local $version_checked = IniRead($my_ini, $my_section, "version_checked", "2000/01/01 00:00:00")
local $days_passed = _DateDiff("D", $version_checked, _NowCalc())
if $days_passed < $version_checking then return
endif
local $pl = ''
if $version_checking > 1 then $pl = 's'
ProgressOn("Version Check (every " & $version_checking & " day" & $pl & ")" , "Checking for new version..")
ProgressSet(25)
local $published_version = InetRead($vck_url, 1)
if @error <> 0 then
ProgressOff()
MsgBox(16, "Version Check FAILED!", "Could not determine version online." & $msg_lf & "Check your firewall.")
return
endif
$published_version = BinaryToString($published_version)
ProgressSet(50)
IniWrite($my_ini, $my_section, "version_checked", _NowCalc())
ProgressSet(75)
$vcomp = _VersionCompare($my_version, $published_version)
switch $vcomp
case 0, 1
ProgressSet(100)
ProgressOff()
return false
case -1
ProgressSet(100)
local $version_response = MsgBox(4+48+262144, "New Version Available", "A newer version of " & $v_name & " is available." & $msg_lf _
& "Would you like to visit the download page?")
ProgressOff()
switch $version_response
case 6
ShellExecute($dl_url)
endswitch
endswitch
endfunc
func WinVisible($GUI)
return BitAnd(WinGetState($GUI), 2)
endfunc
func SecondsToDHMS($sec=0)
if $sec < 0 then return -1
select
case $sec < 61
return $sec & " seconds"
case $sec < 3601
return StringFormat('%.01dm %.01ds', Mod(($sec / 60), 60), Mod($sec, 60))
case $sec < 86401
return StringFormat('%.01dh %.01dm %.01ds', Mod($sec / 3600, 24), Int(Mod(($sec / 60), 60)), Mod($sec, 60))
case else
return StringFormat('%.01dd %.01dh %.01dm %.01ds', Mod($sec / 86400, 7), Mod($sec / 3600, 24), Int(Mod(($sec / 60), 60)), Mod($sec, 60))
endselect
endfunc
func StripHTML($web_text)
$web_text = StringReplace($web_text, " , " ")
$web_text = StringRegExpReplace($web_text, '</?[^>]*?>', '')
$web_text = StringReplace($web_text, $lf & $lf, $lf)
return StringStripWS($web_text,3)
endfunc