Skocz do zawartości

Split


Rekomendowane odpowiedzi

Jaką funkcją rozbić tekst na tablicę używając dowolnego separatora?

 

Np. mam tekst zmienna1|zmienna2|zmienna3

 

i chcę to rozbić na tablicę:

 

tablica[0]=zmienna1

tablica[1]=zmienna2

tablica[2]=zmienna3

 

dokładniej rzecz biorąc, chodzi mi o odpowiednik funkcji split z php lub pythona.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności
var _str, _i, _j, _n, _arr;
_str    = argument0;
_n      = argument1;
_j      = 0;

_arr[0] = '';

while ( true )
{
    _i = string_pos( _n, _str );

    if ( _i == 0 )
        break;

    _arr[_j] = string_copy( _str, 0, _i-1 );
    _str = string_delete( _str, 1, _i-1 );
    _j += 1;
}

return _arr;

Niech ktos znajdzie w tym blad, bo ja juz zasypiam i dzisiaj nie mysle...

Odnośnik do komentarza
Udostępnij na innych stronach

var napis,separator,tablica,i;
napis=argument0
separator=argument1
tablica=argument2
napis+=separator
i=0
while(1)
{
    execute_string(string(tablica)+'['+string(i)+']="'+string(string_copy(napis,0,string_pos(separator,napis)-1))+'"')
    napis=string_copy(napis,string_pos(separator,napis)+1,100)
    i+=1
    if napis=''
    break
}

Jako argument0 nalezy podac string w ktorym sa napisy oddzielone jakimis separatorami, argument1 separator ktory oddziela napisy, a argument2 nazwa tablicy do ktorej maja sie zapisywac porozdzielane napisy.

W przypadku wywolania funkcji np w ten sposob

script0('zmienna1!zmienna2!zmienna3','!','jakas_tablica')

funkja wykona:

jakas_tablica[0]='zmienna1'
jakas_tablica[1]='zmienna2'
jakas_tablica[2]='zmienna3'

Odnośnik do komentarza
Udostępnij na innych stronach

OK dzięki, bawiłem się w pisanie własnej funkcji ale myślałem, że można to prościej osiągnąć, no cóż :)

 

Mam jeszcze jedno pytanie, ale nie chcę zakładać jużnowego tematu ponieważ odpowiedź to w zasadzie TAK / NIE - czy możliwe jest zrobienie takiego efektu, by po trafieniu pocisku w jakiś obiekt została - nazwijmy to "niszczona" - częsć obiektu?

 

Mam na myśli to - jest ściana o wymiarach 60x60, trafia w nią pocisk i ta część, w którą trafił zostaje wymazana.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

kiedyś widziałem jakiś przykład wormsów czy czegoś takiego na GMClanie, i tam było niszczenie terenu, ale już nie pamiętam ani jak to działało, ani gdzie to jest, a teraz warto by było do tegoż właśnie przykładu wrócić.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...