Skocz do zawartości

Problem z rozdzielaniem textu na array


Pieter

Rekomendowane odpowiedzi

Witam odwiedzających ten temat i prosze o pomoc.

Nie potrafie wytłumaczyć mojego problemu w słowach więc pokaże go na przykładzie.

 

to jest scrypt cons_pressenter:

tmp = argument0+' ';

 

command = string_copy(tmp,0,string_pos(' ',tmp)-1);

tmp = string_replace(tmp,command+' ','');

 

for (i=0; i < string_count(' ',tmp)-1; i+=1)

{

    tmp2 = string_copy(tmp,0,string_pos(' ',tmp)-1);

    arg = tmp2;

    tmp = string_replace(tmp,tmp+' ','');

}

argument0 to załużmy taki text

"\msg argument_array_0 argument_array_1 argument_array_2"

 

po użyciu tej funkcji zmienna i array powinny wyglądać tak

command = "\msg"

arg[0] = "argument_array_0"

arg[1] = "argument_array_1"

arg[2] = "argument_array_2"

 

a wygląda tak

command = "\msg"

arg[0] = "argument_array_0"

arg[1] = "argument_array_0"

arg[2] = "argument_array_0"

 

Gdzie popełniłem błąd???

 

Play Station :] Im szybciej mi pomożecie z tym tym szybciej ukończe dodatek GM Console :)

Play Station2 :] Kiedyś miałem z neta takie coś ale po formacie przepadło i nie moge tego znaleść więc pisze swoje :)

Play Station3 :] Chyba że podacie mi jakiś inny sposób na rozdzielenie stringu na array.

Odnośnik do komentarza
Udostępnij na innych stronach

po użyciu tej funkcji zmienna i array powinny wyglądać tak

command = "\msg"

arg[0] = "argument_array_0"

arg[1] = "argument_array_1"

arg[2] = "argument_array_2"

 

a wygląda tak

command = "\msg"

arg[0] = "argument_array_0"

arg[1] = "argument_array_0"

arg[2] = "argument_array_0"

 

tu jest błąd

Odnośnik do komentarza
Udostępnij na innych stronach

Nie, już poprawiłem :

tmp = argument0+' ';

command = string_copy(tmp,0,string_pos(' ',tmp)-1);
tmp = string_replace(tmp,command+' ','');

for (i=0; i < string_count(' ',tmp)-1; i+=1)
{
   tmp2 = string_copy(tmp,0,string_pos(' ',tmp)-1);
   arg[i] = tmp2;
   tmp = string_replace_all(tmp,tmp2+' ','');
}

Błąd był tu :

tmp = string_replace_all(tmp,tmp+' ','');
chyba wiesz dlaczego.

 

 

EDIT

Kolejny error ale dało się go łatwo poprawić :

tmp = argument0+' ';
ile = (string_count(' ',tmp)-1);

command = string_copy(tmp,0,string_pos(' ',tmp)-1);
tmp = string_replace(tmp,command+' ','');

for (i=0; i < ile; i+=1)
{
 tmp2 = string_copy(tmp,0,string_pos(' ',tmp)-1);
 arg[i] = tmp2;
 tmp = string_replace_all(tmp,tmp2+' ','');
}

To już działający w pełni. Błędu ci nie wywali.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

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