Difference between revisions of "String/pl"
(New page: {{Multi-lang}} {{LSL Header/pl}} <div style="float:right">__TOC__</div> Typ string to dane tekstowe. Długość łańcucha tekstowego jest ograniczona tylko dostępną dla skryptu [[script...) |
|||
Line 24: | Line 24: | ||
{| | {| | ||
| | | | ||
Przykłady | Przykłady łańcuchów znakowych: | ||
<lsl>"Cześć Awatarze!" | <lsl>"Cześć Awatarze!" | ||
"Tak" | "Tak" | ||
Line 83: | Line 83: | ||
<div id="box"> | <div id="box"> | ||
== [[LSL Operators| | == [[LSL Operators/pl|Operatory]] == | ||
<div style="padding: 0.5em;"> | <div style="padding: 0.5em;"> | ||
Zobacz też [[LSL Operators/pl|Operatory]]. | |||
<div id="box" style="padding-left: 0.5em;padding-right: 0.5em;padding-bottom: 0.5em;"> | <div id="box" style="padding-left: 0.5em;padding-right: 0.5em;padding-bottom: 0.5em;"> | ||
=== | === Łączenie: {{LSL Param|value|wartość1}} + {{LSL Param|value|wartość2}} === | ||
<lsl>( | <lsl>(wartość1 + wartość2)</lsl> | ||
Łączy dwa łańcuchy bez modyfikowania łańcuchów wejściowych. Dopisuje '''wartość2''' do '''wartość1''' i zwraca łańcuch wynikowy. | |||
{| | {| | ||
{{LSL DefineRow| | {{LSL DefineRow|wyrażenie|wartość1|{{#var:p_value_desc}}}} | ||
{{LSL DefineRow| | {{LSL DefineRow|wyrażenie|wartość2|{{#var:p_value_desc}}}} | ||
|} | |} | ||
</div> | </div> | ||
<div id="box" style="padding-left: 0.5em;padding-right: 0.5em;padding-bottom: 0.5em;"> | <div id="box" style="padding-left: 0.5em;padding-right: 0.5em;padding-bottom: 0.5em;"> | ||
=== | === Porównanie: {{LSL Param|value|wartość1}} <nowiki>==</nowiki> {{LSL Param|value|wartość2}} === | ||
<lsl>( | <lsl>(wartość1 == wartość2)</lsl> | ||
Porównuje dwa łańcuchy, zwraca {{HoverText|one|1}}, jeżeli są tej samej długości i zawierają te same znaki, w przeciwnym przypadku zwraca zero. | |||
Ten operator działa dokładnie jak <code>!strcmp('''wartość1''', '''wartość2''')</code> w C, więc różni się zachowaniem od nieintuicyjnego operatora == w C i Javie. | |||
{| | {| | ||
{{LSL DefineRow| | {{LSL DefineRow|wyrażenie|wartość1|{{#var:p_value_desc}}}} | ||
{{LSL DefineRow| | {{LSL DefineRow|wyrażenie|wartość2|{{#var:p_value_desc}}}} | ||
|} | |} | ||
</div> | </div> | ||
<div id="box" style="padding-left: 0.5em;padding-right: 0.5em;padding-bottom: 0.5em;"> | <div id="box" style="padding-left: 0.5em;padding-right: 0.5em;padding-bottom: 0.5em;"> | ||
=== | === Porównanie: {{LSL Param|value|wartość1}} != {{LSL Param|value|wartość2}} === | ||
<lsl>( | <lsl>(wartość1 != wartość2)</lsl> | ||
Porównuje dwa łańcuchy, zwraca {{HoverText|zero|0}} jeżeli są tej samej długości i zawierają te same znaki, w przeciwnym przypadku zwraca wartość różną od zera. | |||
Ten operator działa dokładnie jak <code>strcmp('''wartość1''', '''wartość2''')</code> w C, więc różni się zachowaniem od nieintuicyjnego operatora == w C i Javie. | |||
{| | {| | ||
{{LSL DefineRow| | {{LSL DefineRow|wyrażenie|wartość1|{{#var:p_value_desc}}}} | ||
{{LSL DefineRow| | {{LSL DefineRow|wyrażenie|wartość2|{{#var:p_value_desc}}}} | ||
|} | |} | ||
</div> | </div> | ||
Line 120: | Line 120: | ||
<div id="box"> | <div id="box"> | ||
== | == Przykład == | ||
<div style="padding: 0.5em;"> | <div style="padding: 0.5em;"> | ||
<lsl>integer int = 48934; | <lsl>integer int = 48934; | ||
Line 128: | Line 128: | ||
</div></div> | </div></div> | ||
<div id="box"> | <div id="box"> | ||
== | == Użyteczne funkcje == | ||
<div style="padding: 0.5em;"> | <div style="padding: 0.5em;"> | ||
=== | === Funkcje operujące na łańcuchach w [[Library_Combined_Library/pl|Bibiliotece funkcji]] === | ||
{| | {| | ||
{{LSL DefineRow||[[Library_Combined_Library#str_replace|str_replace]]| | {{LSL DefineRow||[[Library_Combined_Library#str_replace/pl|str_replace]]|zamienia wszystkie wystąpienia pierwszego łańcucha drugim w łańcuchu docelowym.}} | ||
{{LSL DefineRow||[[Library_Combined_Library#Trim|TrimRight]]| | {{LSL DefineRow||[[Library_Combined_Library#Trim/pl|TrimRight]]|Usuwa białe znaki z prawej strony łańcucha}} | ||
{{LSL DefineRow||[[Library_Combined_Library#Trim|TrimLeft]]| | {{LSL DefineRow||[[Library_Combined_Library#Trim/pl|TrimLeft]]|Usuwa białe znaki z lewej strony łańcucha}} | ||
{{LSL DefineRow||[[Library_Combined_Library#Trim|TrimBoth]]| | {{LSL DefineRow||[[Library_Combined_Library#Trim/pl|TrimBoth]]|Usuwa białe znaki z obydwu końców łańcucha}} | ||
|} | |} | ||
=== | === Przykłady === | ||
{| | {| | ||
{{LSL DefineRow||[[Examples|SplitLine]]| | {{LSL DefineRow||[[Examples|SplitLine]]|Wstawia sekwencje specjalne 'nowa linia' w określonych miejscach łańcucha}} | ||
|} | |} | ||
</div></div> | </div></div> |
Latest revision as of 04:05, 14 March 2008
LSL Portal | | | Funkcje | | | Zdarzenia | | | Typy | | | Stałe | | | Potoki | | | Biblioteka Skryptów | | | Tutoriale |
Typ string to dane tekstowe. Długość łańcucha tekstowego jest ograniczona tylko dostępną dla skryptu pamięcią. Łańcuch znaków jest ograniczony cudzysłowem (") podczas definiowania. Można używać dowolnych znaków, chociaż niektóre wymagają użycia sekwencji specjalnych (tzw. "escaped characters")
Łancuchy mogą być łączone (konkatenowane) przy użyciu operatora +.
ciąg | zamieniany na |
---|---|
\t | cztery spacje |
\n | nowa linia |
\" | cudzysłów " |
\\ | odwrotny ukośnik \ |
Przykłady łańcuchów znakowych: <lsl>"Cześć Awatarze!" "Tak" "Nie" "Jest godzina 10." "Mam 21 lat!" "Pomóż " + "mi" EOF //Następujące łańcuchy mają tę samą zawartość. "I scream,\nyou scream,\nwe all scream,\nfor ice-cream!" "I scream, you scream, we all scream, for ice-cream!" </lsl> |
Uwaga: Sekwencje specjalne (powyżej) są tłumaczone (parsowane) podczas kompilacji skryptu, a nie podczas jego wykonywania. Wskutek tego tylko teksty które są w skrypcie w momencie kompilacji będą miały (np.) \n zamienione na znak nowej linii. Teksty czytane z notecard'ów, czatu http, itd. Nie są sprawdzane pod kątem sekwencji specjalnych, to samo \n czytane z notecard'a nie zostanie w żadnym przypadku automatycznie zamienione w znak nowej linii. Jeżeli potrzebujesz tego z jakiegoś powodu, musisz sam oprogramować tę funkcję.
Uwaga: Osoby, które posiadają znajomość języków typu C lub Java mogą źle interpretować reguły sekwencji specjalnych w LSL'u. LSL'owe "\n" oznacza llUnescapeURL("%0A"), tak jak w C lub Javie, ale już "\t" oznacza llUnescapeURL("%20%20%20%20"), a nie llUnescapeURL("%09"), a "\r" oznacza "r" a nie llUnescapeURL("%0D") itd.
Zmienna: string nazwa;
<lsl>string nazwa;</lsl> Deklaruje zmienną typu string nazwaną nzwa o wartości ""
• zmienna | nazwa | – | nazwa zmiennej |
Zmienna: string nazwa = wartość;
<lsl>string nazwa = wartość;</lsl> Deklaruje zmienną typu string o nazwie "nazwa" i wartości "wartość".
• zmienna | nazwa | – | nazwa zmiennej | |
• wyrażenie | wartość | – | wyrażenie łańcuchowe lub stała |
Rzutowanie(Konwersja typu): (string)wartość
<lsl>(string)wartość</lsl> Zamienia wartość na wyrażenie typu string.
• wyrażenie | wartość | – | wyrażenie lub stała |
Operatory
Zobacz też Operatory.
Łączenie: wartość1 + wartość2
<lsl>(wartość1 + wartość2)</lsl> Łączy dwa łańcuchy bez modyfikowania łańcuchów wejściowych. Dopisuje wartość2 do wartość1 i zwraca łańcuch wynikowy.
• wyrażenie | wartość1 | – | wyrażenie łańcuchowe lub stała | |
• wyrażenie | wartość2 | – | wyrażenie łańcuchowe lub stała |
Porównanie: wartość1 == wartość2
<lsl>(wartość1 == wartość2)</lsl>
Porównuje dwa łańcuchy, zwraca one, jeżeli są tej samej długości i zawierają te same znaki, w przeciwnym przypadku zwraca zero.
Ten operator działa dokładnie jak !strcmp(wartość1, wartość2)
w C, więc różni się zachowaniem od nieintuicyjnego operatora == w C i Javie.
• wyrażenie | wartość1 | – | wyrażenie łańcuchowe lub stała | |
• wyrażenie | wartość2 | – | wyrażenie łańcuchowe lub stała |
Porównanie: wartość1 != wartość2
<lsl>(wartość1 != wartość2)</lsl>
Porównuje dwa łańcuchy, zwraca zero jeżeli są tej samej długości i zawierają te same znaki, w przeciwnym przypadku zwraca wartość różną od zera.
Ten operator działa dokładnie jak strcmp(wartość1, wartość2)
w C, więc różni się zachowaniem od nieintuicyjnego operatora == w C i Javie.
• wyrażenie | wartość1 | – | wyrażenie łańcuchowe lub stała | |
• wyrażenie | wartość2 | – | wyrażenie łańcuchowe lub stała |
Przykład
<lsl>integer int = 48934; string str = (string)int; string str_2; str_2 = str;</lsl>
Użyteczne funkcje
Funkcje operujące na łańcuchach w Bibiliotece funkcji
• | str_replace | – | zamienia wszystkie wystąpienia pierwszego łańcucha drugim w łańcuchu docelowym. | |
• | TrimRight | – | Usuwa białe znaki z prawej strony łańcucha | |
• | TrimLeft | – | Usuwa białe znaki z lewej strony łańcucha | |
• | TrimBoth | – | Usuwa białe znaki z obydwu końców łańcucha |
Przykłady
• | SplitLine | – | Wstawia sekwencje specjalne 'nowa linia' w określonych miejscach łańcucha |