Easeful Opublikowano 9 Stycznia 2010 Udostępnij Opublikowano 9 Stycznia 2010 Napisałem sobie na szybko skrypt który ma wyłaniać z podanego tekstu funkcję i argument, czyli że podam "funkcjos arugmentos" to ma mi wlulić do zmiennej fun="funkcjos" a do arg="argumentos" niby banał, ale z tymi chorymi gm'owskimi skryptami do operacji na stringach zawsze mam jakiś problem: GML get=<tekst_podany> if string_count(" ",get) //jezeli w tekscie jest przerwa, czyli sprawdza czy "funkcja" albo "funkcja arg" { sps=string_pos(get," "); //pozycja pierwszej przerwy fun=string_copy(get,1,sps); //fun = od pozycji 1 do pozycji sps arg=string_copy(get,sps,string_length(get)); //arg = od pozycji sps do konca } else fun=get; //jezeli w tekscie nie ma przerwy (czyli tekst="funkcja") to funkcja=get</span> No i gdy dam np. jako tekst "funkcja argumentos" to funkcja = niewiemco a argument = "funkcja argumentos", ogółem jakiś total syf. Co w tym kodzie naprawić? Albo swoje podajcie propozycje jak to zrobić. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 9 Stycznia 2010 Udostępnij Opublikowano 9 Stycznia 2010 z tego co pamietam kidys zrobiles skrypt string_explode(), jak nie Ty to poszukaj na forum Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Slash (Pental) Opublikowano 9 Stycznia 2010 Udostępnij Opublikowano 9 Stycznia 2010 Easeful, bądź hardcorem i używaj metody mechanicznej, tzn. string_char_at. Kiedyś takie coś zrobiłem: https://forum.gmclan.org/index.php?showtopic=15111&hl= Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Easeful Opublikowano 9 Stycznia 2010 Autor Udostępnij Opublikowano 9 Stycznia 2010 ano tak zaraz sproboje edit: Ok mam GML fun=""; arg=""; if string_count(" ",get) { et=1; for(i=1; i<=string_length(get); i+=1) { ch=string_char_at(get,i); if et=1 { if ch=" " { et=2; } else { fun+=ch; } } else { arg+=ch; } } } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Shockah Opublikowano 9 Stycznia 2010 Udostępnij Opublikowano 9 Stycznia 2010 GML /* explode(str,delimiter,id); str: tekst delimiter: czesc tekstu rozdzielajaca elementy id: element do zwrocenia */ var t, i, v; t = argument0; v = 0; i = 0; while (t != "") { i += 1; if (string_pos(argument1,t)) { v = string_copy(t,1,string_pos(argument1,t)-1); t = string_delete(t,1,string_pos(argument1,t)+string_length(argument1)-1); } else { v = t; t = ""; } } if (i >= argument2) { return v[argument2]; } else return ""; Niedawno pisałem na własne potrzeby. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi