PARTNERI:
-UPOZORENJE-

Samo registrovani članovi mogu da vide/koriste forum u celini.
Prijavite se ili registrujte nalog na Balkan SA-MP forumu.


Autor Tema: [Tutorial] Kako najefkasnije odrediti string size  (Pročitano 89 puta)

0 članova i 1 gost pregledaju ovu temu.

Van mreže TarikBrt

Kako najefkasnije odrediti string size
« poslato: Mart 24, 2020, 18:34:38 posle podne »
Jedan kratki tutorial o korištenju memorije i određivanju dužine stringa. Često se desi da najčešće početnici lupaju random brojeve za dužinu stringa neznajući da 1 ćelija uzima 4 bajta što i nije toliki problem ukoliko imate neku manju skriptu. Međutim ukoliko jednog dana postignete određeni uspijeh i ne zatvorite svoj server za 7 dana morat ćete da zadovoljite potrebe igrača i blagovremeno odradite određene update. Naravno vremenom će skripta biti sve veća i ruka će vas sve više bolit dok skrolate kroz skriptu , a memorije će biti sve manje. Zato pogledajte kako jednostavno i efikasno koristiti dragocijenu memoriju.
Pawno Code: [Izaberi]
static const str[] = "UPDATE `gps` SET `gIme` = `%e` WHERE `gID` = %d";
new query[sizeof(str) + 12 + 3];
mysql_format(Database, query, sizeof(query), str , GI[id][gIme], GI[id][gID]);

Sada idemo liniju po liniju. :)

Pawno Code: [Izaberi]
static const str[] = "UPDATE `gps` SET `gIme` = `%s` WHERE `gID` = %d";

Ukoliko ste početnik vjerovatno vam je odma za oko zapalo ovo static i const međutim to nije teško za shvatiti.
Static - označava da je varijabla dostupna jedino unutar ovog fajla i da je praktički nemoguće iskoristiti unutar drugog fajla (npr. include)
Const - ikao većina vas zna ali eto opet da pojasnim. Const označava da je varijabla konstanta i da se neće mijenjati nikako ( najčešće slučajno )
U ovom stringu nismo odredili tačnu veličinu što znači da će dužina biti tačno onoliko koliko karaktera ima + \0

Pawno Code: [Izaberi]
new query[sizeof(str) + 12 + 2];

Ovdje deklarišemo novu varijablu po imenu query i njen tip je string. I dajemo joj duzinu od velicine prije definisanog "str" stringa + 12 što predstavlja maximalan broj karaktera varijable gIme + 3 što predstavlja dužinu gID-a. Važno je reći da dužina stringa mora biti konstanta i zato smo ranije deklarisanu varijablu "str" deklarisali kao konstantu. I s ovim smo najefikasnije iskoristili našu memoriju.

Pawno Code: [Izaberi]
mysql_format(Database, query, sizeof(query), str , GI[id][gIme], GI[id][gID]);

I ovdje smo jednostavno iskoristili string. Ovo je ujedno i primjer kako formatirati novi string. Nadam se da vam je ovo makar malo pomoglo i da vam je jasno. Potrudio sam se da što jednostavnije pojasnim i da ne komplikujem više nego što je potrebno.
 
Korisnici koji su se zahvalili: Ljubisa

Van mreže V01D

Odg: Kako najefkasnije odrediti string size
« Odgovor #1 poslato: Mart 24, 2020, 19:53:12 posle podne »
Fino

RADOVI

Y_TIMERS TUT -> KLIKNI ME NEZNO
Duel System FS -> KLIKNI ME NEZNO
Noise RolePlay -> KLIKNI ME NEZNO

Napustio SAMP