Difference between revisions of "String/pl"

From Second Life Wiki
Jump to navigation Jump to search
(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 łąńcuchów znakowych:
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|Operators]] ==  
== [[LSL Operators/pl|Operatory]] ==  
<div style="padding: 0.5em;">
<div style="padding: 0.5em;">
See [[LSL Operators|Operators]] for more information.
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;">
=== Combine: {{LSL Param|value|value1}} + {{LSL Param|value|value2}} ===
=== Łączenie: {{LSL Param|value|wartość1}} + {{LSL Param|value|wartość2}} ===
<lsl>(value1 + value2)</lsl>
<lsl>(wartość1 + wartość2)</lsl>
Combines two strings into a single string without modifying the inputs. Appends '''value2''' to '''value1''' and returns the resulting string.
Łączy dwa łańcuchy bez modyfikowania łańcuchów wejściowych. Dopisuje '''wartość2''' do '''wartość1''' i zwraca łańcuch wynikowy.
{|
{|
{{LSL DefineRow|expression|value1|{{#var:p_value_desc}}}}
{{LSL DefineRow|wyrażenie|wartość1|{{#var:p_value_desc}}}}
{{LSL DefineRow|expression|value2|{{#var:p_value_desc}}}}
{{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;">


=== Comparison: {{LSL Param|value|value1}} <nowiki>==</nowiki> {{LSL Param|value|value2}} ===
=== Porównanie: {{LSL Param|value|wartość1}} <nowiki>==</nowiki> {{LSL Param|value|wartość2}} ===
<lsl>(value1 == value2)</lsl>
<lsl>(wartość1 == wartość2)</lsl>
Compares two strings, returns {{HoverText|one|1}} if same length and same characters, else returns zero.
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.
This operator works exactly like <code>!strcmp('''value1''', '''value2''')</code> in C, thus technically differs from the counterintuitive behavior of the == operator in C and in Java.
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|expression|value1|{{#var:p_value_desc}}}}
{{LSL DefineRow|wyrażenie|wartość1|{{#var:p_value_desc}}}}
{{LSL DefineRow|expression|value2|{{#var:p_value_desc}}}}
{{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;">
=== Comparison: {{LSL Param|value|value1}} != {{LSL Param|value|value2}} ===
=== Porównanie: {{LSL Param|value|wartość1}} != {{LSL Param|value|wartość2}} ===
<lsl>(value1 != value2)</lsl>
<lsl>(wartość1 != wartość2)</lsl>
Compares two strings, returns {{HoverText|zero|0}} if same length and same characters, otherwise non-zero.
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.
This operator works exactly like <code>strcmp('''value1''', '''value2''')</code> in C, thus technically differs from the counterintuitive behavior of the != operator in C and in Java.
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|expression|value1|{{#var:p_value_desc}}}}
{{LSL DefineRow|wyrażenie|wartość1|{{#var:p_value_desc}}}}
{{LSL DefineRow|expression|value2|{{#var:p_value_desc}}}}
{{LSL DefineRow|wyrażenie|wartość2|{{#var:p_value_desc}}}}
|}
|}
</div>
</div>
Line 120: Line 120:
<div id="box">
<div id="box">


== Examples ==
== 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">
== Useful Functions ==
== Użyteczne funkcje ==
<div style="padding: 0.5em;">
<div style="padding: 0.5em;">
=== String functions in the [[Library_Combined_Library|CombinedLibrary]] ===
=== Funkcje operujące na łańcuchach w [[Library_Combined_Library/pl|Bibiliotece funkcji]] ===
{|
{|
{{LSL DefineRow||[[Library_Combined_Library#str_replace|str_replace]]|replace all instances of a string with another string in a target string.}}
{{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]]|Trim characters from the right end of a string}}
{{LSL DefineRow||[[Library_Combined_Library#Trim/pl|TrimRight]]|Usuwa białe znaki z prawej strony łańcucha}}
{{LSL DefineRow||[[Library_Combined_Library#Trim|TrimLeft]]|Trim characters from the left end of a string}}
{{LSL DefineRow||[[Library_Combined_Library#Trim/pl|TrimLeft]]|Usuwa białe znaki z lewej strony łańcucha}}
{{LSL DefineRow||[[Library_Combined_Library#Trim|TrimBoth]]|Trim characters from the both ends of a string}}
{{LSL DefineRow||[[Library_Combined_Library#Trim/pl|TrimBoth]]|Usuwa białe znaki z obydwu końców łańcucha}}
|}
|}
=== Examples ===
=== Przykłady ===
{|
{|
{{LSL DefineRow||[[Examples|SplitLine]]|Insert 'new line' escape codes at certain positions of a string}}
{{LSL DefineRow||[[Examples|SplitLine]]|Wstawia sekwencje specjalne 'nowa linia' w określonych miejscach łańcucha}}
|}
|}
</div></div>
</div></div>

Latest revision as of 05:05, 14 March 2008

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 +.

Sekwencje specjalne
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