AutoIt/Łańcuchy tekstowe (stringi) - funkcje obsługi
Konwersja: String tekstowy <> String HEX
edytuj_String To Hex
edytuj#include <String.au3> _StringToHex ( $sString )
Funkcja zamienia łańcuch tekstowy na łańcuch szesnastkowego zapisu kodów kolejnych znaków. Zwraca string HEX, lub string pusty gdy wystąpił błąd.
$sString - przetwarzany string tekstowy
_HexToString
edytuj#include <String.au3> _HexToString ( $sHex )
Funkcja zamienia łańcuch szesnastkowego zapisu kodów kolejnych znaków na łańcuch tekstowy. Zwraca string tekstowy, lub string pusty gdy wystąpił błąd (makro #error<>0).
$sHex - przetwarzany string HEX
Przykład:
#include <String.au3>
$sString1 = "Ala ma kota"
$sHex = _StringToHex($sString1)
$sString2 = _HexToString($sHex)
MsgBox(0, "Test:", "String oryginalny: " & $sString1 & @CRLF & _
"String Hex: " & $sHex & @CRLF & @CRLF & _
"String odtworzony: " & $sString2 )
Konwersja String -> Tablica
edytuj_StringBetween
edytuj#include <String.au3> _StringBetween ( $sString, $sStart, $sEnd [, $iMode = $STR_ENDISSTART [, $bCase = False]] )
Funkcja tworzy jednowymiarową tablicę, w której kolejnych komórkach zapisane są fragmenty stringu ograniczone znacznikami. Jeżeli wystąpił błąd makro @error<>0, @error=1 oznacza, że nie znaleziono stringu.
$sString - string do podziału
$sStart - string będący znacznikiem początku szukanego fragmentu
$sEnd - string będący znacznikiem końca szukanego fragmentu
$iMode - określa sposób działania, gdy $sStart = $sEnd
$STR_ENDISSTART - (0) - znacznik kończący dany fragment jest jednocześnie początkiem następnego (wartość domyślna) $STR_ENDNOTSTART - (1) - znacznik kończący dany fragment nie jest początkiem następnego, początkiem kolejnego fragmentu jest dopiero ponowne wystąpienie znacznika
bCase - False wielkość liter w znaczniku nie ma znaczenia (wartość domyślna), True wielkość liter ma znaczenia (np. znaczniki /a i /A są różne)
Przykład:
#include <Array.au3>
#include <String.au3>
$aArray = _StringBetween("Tego nie będzie/*Ala*/ /*ma*/ /*kota*/I tego te nie będzie", "/*", "*/")
_ArrayDisplay($aArray, "Domyślne wyszukiwanie:")
$aArray = _StringBetween("--/Ala/ /ma/ /kota/??", "/", "/")
_ArrayDisplay($aArray, "$STR_ENDISSTART:")
$aArray = _StringBetween("--/Ala/ /ma/ /kota/??", "/", "/", $STR_ENDNOTSTART)
_ArrayDisplay($aArray, "$STR_ENDNOTSTART")
_StringExplode
edytuj#include <String.au3> _StringExplode ( $sString, $sDelimiter [, $iLimit = 0] )
Funkcja tworzy jednowymiarową tablicę, w której kolejnych komórkach zapisane są fragmenty stringu podzielonego w miejscu znacznika (w stylu PHP).
$sString - string do podziału
$sDelimiter - znacznik podziału stringu
$iLimit - limit ilości fragmentów po podziale stringu
$iLimit = 0 - brak limitu (wartość domyślna) $iLimit > 0 - ilość fragmentów, na które dzielony jest string, po jego osiągnięciu string nie jest dalej dzielony mimo istnienia dalszych znaczników $iLimit < 0 - ilość końcowych fragmentów nie zapisywanych w tablicy
Przykład:
#include <Array.au3>
#include <String.au3>
$sText = "jeden//dwa//trzy//cztery//pięć//sześć//siedem//osiem"
$aArray1 = _StringExplode($sText, "//")
_ArrayDisplay($aArray1, "StringExplode (0):")
$aArray2 = _StringExplode($sText, "//", 5)
_ArrayDisplay($aArray2, "StringExplode (5):")
$aArray3 = _StringExplode($sText, "//", -3)
_ArrayDisplay($aArray3, "StringExplode (-3):")
Tworzenie i przetwarzanie stringów
edytuj_StringInsert
edytuj#include <String.au3> _StringInsert ( $sString, $sInsertString, $iPosition )
Funkcja tworzy string przez wstawienie stringu $sInsertString do wnętrza stringu $sString (w trybie INSERT). Jeżeli wystąpił błąd zwracany jest $sString, a makro @error<>0.
$sString - string wejściowy
$sInsertString - string wstawiany
$iPosition - pozycja, od której ma być wstawiony string $sInsertString do stringu $sString
Przykład:
#include <String.au3>
MsgBox(0, "_StringInsert", _StringInsert("Ala kota.", " ma", 3))
_StringRepeat
edytuj#include <String.au3> _StringRepeat ( $sString, $iRepeatCount )
Funkcja tworzy string z wielokrotnego powtórzenia stringu wejściowego. Jeżeli wystąpił błąd zwracany jest string pusty, a makro @error<>0.
$sString - string wejściowy
$iRepeatCount - ilość powtórzeń stringu $sString
Przykład:
#include <String.au3>
MsgBox(0, "_StringRepeat", _StringRepeat("Echo! ", 10))
_StringProper
edytuj#include <String.au3> _StringProper ( $sString )
Funkcja tworzy string po zamianie wielkości liter w stringu wejściowego w taki sposób, że każdy wyraz zaczyna się od wielkiej litery, a pozostałe litery są małe. Jeżeli wystąpił błąd to zwracany jest pusty string.
$sString - string wejściowy
UWAGA: Funkcja nie działa poprawnie z polskimi literami.
Przykład:
#include <String.au3>
MsgBox(0, "_StringProper", _StringProper("ala ma kota."))
MsgBox(0, "_StringProper", _StringProper("ALA ma kOTA i psa."))
_StringTitleCase
edytuj#include <String.au3> _StringTitleCase ( $sString )
Funkcja tworzy string po zamianie wielkości liter w stringu wejściowego w taki sposób, że każdy wyraz zaczyna się od wielkiej litery, a pozostałe litery są małe. Jeżeli wystąpił błąd to zwracany jest pusty string.
$sString - string wejściowy
UWAGA:
1. Funkcja nie działa poprawnie z polskimi literami.
2. Funkcje _StringProper i _StringTitleCase działają prawie jednakowo. Subtelną różnicę widać w poniższym przykładzie:
#include <String.au3>
$sString = "centymetR ma 10mm"
MsgBox(0, "_StringProper/_StringTitleCase", _StringProper($sString) & @CRLF & _StringTitleCase ( $sString ))