Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
[ROZWIĄZANE] Łączenie stringów.
#1
Napisano 13.08.2012 21:57
1. Są jakies ograniczenia co do długości stringów?
2. Jak łaczyć stringi do jednej zmiennej? Przykład mam 3 stringi.
new a
new b
new c
new d
i chce aby zmienna "d" miała zawartość w kolejności "abc". Dzięki z góry za pomoc. Szukałem tego ale znalazłem tylko format ale ta opcja jest zawiła... w dephi np. jest, że wystarczy dać +, czy tam kropke nie wiem bo mota mi się trochę z php.
d = a + b +c
O coś takiego mi chodzi z tym, że to mają być stringi a nie integery
#2
Napisano 13.08.2012 22:33
2. Do łączenia stringów możesz wykorzystać "format" albo "formatex". Nie są aż tak strasznie zawiłe jak mówisz, popatrz.
new a[32] = "Nitroexe"
new b[32] = "sie"
new c[32] = "uczy"
new d[128]
formatex(d, charsmax(d), "%s %s %s", a, b, c)
// d w tym miejscu powinno mieć wartość "Nitroexe sie uczy"
Nie testowałem, ale nie mam pojęcia co mogłoby tutaj pójść źle
Użytkownik Maxorq edytował ten post 13.08.2012 22:33
#3
Napisano 13.08.2012 23:18
#4
Napisano 13.08.2012 23:24
I w przykładzie byłoby "Nitroexe sie uczy", tak, ze spacjami ponieważ dałem "%s %s %s", a nie "%s%s%s".
Małe różnice.
#5
Napisano 13.08.2012 23:34
?
#6
Napisano 13.08.2012 23:39
Przy tworzeniu zmiennej:
new d[128]
jest ona kompletnie pusta.
Po wykonaniu tej linijki
formatex(d, charsmax(d), "%s %s %s", a, b, c)
Przyjmie ona wartość dokładnie "Nitroexe sie uczy"
Jeśli wykonasz ją jeszcze raz w takim samym stanie, wartość będzie identyczna.
Ale jeśli dla przykładu wykonasz po niej linijkę
formatex(d, charsmax(d), "%s %s nie %s", a, b, c)
wtedy wartość d będzie równa "Nitroexe sie nie uczy"
Postaraj się powoli przeczytać, to zrozumiesz o co chodzi.
Użytkownik Maxorq edytował ten post 13.08.2012 23:40
#7
Napisano 14.08.2012 00:09
new d[64]
add(d, 63, "a"); //d = a
add(d, 63, "b"); //d = a + b
add(d, 63, "c"); //d = a + b + c
Użytkownik Cypis' edytował ten post 14.08.2012 00:12
#8
Napisano 14.08.2012 08:22
Kolega dał formatex, a ja dam przykład pokazania tego zadania.1. Nie jestem pewien dokładnie, ale na pewno zmieścisz 1024 znaków a nawet więcej, więc tym bym się nie martwił.
2. Do łączenia stringów możesz wykorzystać "format" albo "formatex". Nie są aż tak strasznie zawiłe jak mówisz, popatrz.new a[32] = "Nitroexe"
new b[32] = "sie"
new c[32] = "uczy"
new d[128]
formatex(d, charsmax(d), "%s %s %s", a, b, c)
// d w tym miejscu powinno mieć wartość "Nitroexe sie uczy"
Nie testowałem, ale nie mam pojęcia co mogłoby tutaj pójść źle
client_print(id,3,"%s",d)Wydaje mi się, że w tym przykładzie najlepiej jest użyć formatex, ale wersji cypis'a też jest poprawna
Tak dla ścisłości formatex jest szybsze od format.
If you can dream it, you can do it.
#9
Napisano 14.08.2012 10:58
http://amxx.pl/dokumentacja/f1365/add
new d[64]
add(d, 63, "a"); //d = a
add(d, 63, "b"); //d = a + b
add(d, 63, "c"); //d = a + b + c
Dzięki to najbardziej odpowiednie jest dla mnie.
#10
Napisano 14.08.2012 12:13
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych