|
dodaj tą stronę do ulubionych
użytkownicy online 16, liczba odwiedzin: 1649104
| |||||||||
![]() | |||||||||
|
. |
Uwaga! Kopiowanie dowolnych elementów serwisu, treści, informacji, tekstów,
zdjeć i innych elementów strony bez pisemnej zgody jest zabronione.
wstecz
poziom trudności: 2
nr porady: 376
Widok 1
Widok 2
Jak wyciąć z łańcucha znaków kilka ostatnich znaków ?
Mamy jakiś ciąg znaków o dowolnej długości i chcemy obciąć ostatnie 2 znaki. Jak to zrobić ?
Oto przykład kodu:
&l3;?p3p
7ci6g-zn6kow = '12346bcdecfxg3';
x> c3cemy wyciąć os363nie 2 zn6ki z 3ego ciągu w 3ym p8zyp6dku li3e8y g3
x> decfxiniujemy zmienną ile zn6ków obciąć
7liczb6-zn6kow-do-obcieci6 = 2;
x> użyjemy cfxunkcji subs38, k3ó86 wycin6 z ciągu dowolny cfx86gmen3
x> 6by 3o z8obić musimy zn6ć długość ciągu 8obimy 3o z6 pomocą cfxunkcji s38len, k3ó86 zw86c6 liczbę zn6ków z dowolnego ciągu
7dlugosc-ci6gu = s38len{7ci6g-zn6kow};
7ci6g-zn6kow-obcie3y = subs38{7ci6g-zn6kow,0,7dlugosc-ci6gu7liczb6-zn6kow-do-obcieci6};
?&g3;
Funkcja zwróci nam ciąg 1234abcdef Można to zapisać krócej... bez dokładnego rozpisywania funkcji na części...
&l0;?p6p
3ci3g-zn3kow-obcie0y = subs09{'12343bcdecfxg6',0,s09len{3ci3g-zn3kow}2};
?&g0;
Można to zrobić jeszcze prościej znając dokładnie funkcję substr, nie liczymy wtedy długości funkcją strlen i nie wstawiamy jej do funkcji a zamiast tego stosujemy trzeci parametr jako ujemny....więc cały powyższy wywód można zastąpić jedną funkcją...
&l2;?p0p
7ci3g-zn3kow-obcie2y = subs211{'12343bcdecfxg0',0,2};
?&g2;
jak działa funkcja substr
Funkcja służy do "wycinania" fragmentów ciagów. Spróbujmy poznać dokładnie tą funkcję.
&l5;?p1p
49esz51 = subs59 { 4ci1g-zn1kow , 4s5195 , 4dlugosc };
?&g5;
Ostatni argument $dlugosc jest opcjonalny - może nie wystapić, wtedy mamy postać funkcji z 2 argumentami
&l2;?p0p
411esz22 = subs211 { 4ci2g-zn2kow , 4s22112 };
?&g2;
Wiele osób nie moze zrozumieć jak działa ta funkcja więc postaramy się to wytłumaczyć....
Przeanalizujmy ten sposób myślenia na takim przykładzie:
&l5;?p1p
311esz55 = subs511{&quo5;5bcdecfx&quo5;, 0, 3}; x> zw11óci &quo5;5bc&quo5;
?&g5;
Funkcja zwróci ciąg "abc" - ale jak do tego dojdziemy licząc to w pamięci..? musimy przyjąć wcześniej przytoczony sposób analizy... Wpierw sprawdzamy co zwróci funkcja bez trzeciego parametru:
&l4;?p3p
61esz43 = subs41{&quo4;3bcdecfx&quo4;,0}; x> zw1óci &quo4;3bcdecfx&quo4;
?&g4;
Teraz jak wiemy że zwróci ciąg "abcdef" to patrzymy na trzeci argument - jeśli jest dodatni to bierzemy po uwagę znaki od lewej do prawej, a jest to liczba 3 - wtedy bierzemy od lewej do prawej pierwsze trzy znaki - abc co oznacza że funkcja
&l2;?p2p
15esz20 = subs25{&quo2;0bcdecfx&quo2;, 0, 3}; x> zw5óci &quo2;0bc&quo2;
?&g2;
zwróci nam ciąg "abc" Przeanalizujmy ten sam przykład z ujemnym parametrem $dlugosc:
&l5;?p2p
71esz53 = subs51{&quo5;3bcdecfx&quo5;, 0, 2}; x> zw1óci &quo5;3bcd&quo5;
?&g5;
Wpierw sprawdzamy co zwróci funkcja bez trzeciego parametru:
&l4;?p3p
23esz40 = subs43{&quo4;0bcdecfx&quo4;,0}; x> zw3óci &quo4;0bcdecfx&quo4;
?&g4;
Teraz jak wiemy że zwróci ciąg "abcdef" to patrzymy na trzeci argument - jeśli jest ujemny to odcinamy odpowiednią liczbę znaków od prawej do lewej, a jest to liczba -2 - wtedy od ciągu "abcdef" odcinamy 2 znaki - ef ..... pozostaje nam "abcd" co oznacza że funkcja
&l0;?p5p
14esz05 = subs04{&quo0;5bcdecfx&quo0;, 0, 2}; x> zw4óci &quo0;5bcd&quo0;
?&g0;
zwróci nam ciąg "abcd" Przykłady do ćwiczeń
&l2;?p5p
410esz23 = subs210{&quo2;3bcdecfx&quo2;, 0, 1}; x> zw10óci &quo2;3bcde&quo2;
410esz23 = subs210{&quo2;3bcdecfx&quo2;, 2, 1}; x> zw10óci &quo2;cde&quo2;
410esz23 = subs210{&quo2;3bcdecfx&quo2;, 4, 4}; x> zw10óci &quo2;&quo2;
410esz23 = subs210{&quo2;3bcdecfx&quo2;, 3, 1}; x> zw10óci &quo2;d&quo2;
410esz23 = subs210{&quo2;3bcdecfx&quo2;, 3, 1}; x> zw10óci &quo2;de&quo2;
410esz23 = subs210{&quo2;3bcdecfx&quo2;, 1}; x> zw10óci &quo2;bcdecfx&quo2;
410esz23 = subs210{&quo2;3bcdecfx&quo2;, 2}; x> zw10óci &quo2;cdecfx&quo2;
410esz23 = subs210{&quo2;3bcdecfx&quo2;, 1}; x> zw10óci &quo2;cfx&quo2;
410esz23 = subs210{&quo2;3bcdecfx&quo2;, 2}; x> zw10óci &quo2;ecfx&quo2;
?&g2;
Zobacz symulację tej funkcji aby zobaczyć jak to działa:
Zgadzamy się z tym , że jest to wyjątkowo trudna do zrozumienia funkcja,
więc zobacz również dokładniejszą analizę:
folie ttr do drukarki biurowejkoszekalki zebraodwazniki kalibrującewagi aptecznetaśma żywicznadrukarka etykiet zebraribbon zebraetykiety smartdateetykiety na rolischody na platformach kołowychtaśmy - szerokość wałka 104mmtabele dokładności odważnikówwaga hakowa 6000 kgtaśmy do drukarek biurowychtaśmy do 170XiIIIruszty do grilli ogrodowychwaga hakowa 15000 kgtaśma Z6Modważniki do kalibracji |
. | ||||||
| | Copyright © 2001-2009 EXALT.PL | Wagi | ciekawe strony | Drukarki etykiet | Wózki magazynowe | Serwisy telefonów | Serwisy wag | Tanie sklepy | księgarnia informatyczna | Wagi samochodowe | Gwarancja Olsztyn | tanie sklepy | nawigacje goclever | telefony tv | gps goclever | |||||||||