Balkan SA:MP

San Andreas Multiplayer - www.sa-mp.com => Tutorijali u vezi SA-MPa => Temu započeo: TarikBrt poslato Mart 24, 2020, 18:34:38 POSLE PODNE

Naslov: Kako najefkasnije odrediti string size
Poruka od: TarikBrt 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.
[pawn]
   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]);
[/pawn]

Sada idemo liniju po liniju. :)

[pawn]static const str[] = "UPDATE `gps` SET `gIme` = '%s' WHERE `gID` = %d"; [/pawn]

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

[pawn]new query[sizeof(str) + 12 + 2];[/pawn]


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.

[pawn]mysql_format(Database, query, sizeof(query), str , GI[id][gIme], GI[id][gID]);[/pawn]

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.
Naslov: Odg: Kako najefkasnije odrediti string size
Poruka od: V01D poslato Mart 24, 2020, 19:53:12 POSLE PODNE
Fino
Naslov: Odg: Kako najefkasnije odrediti string size
Poruka od: over poslato April 08, 2020, 18:26:18 POSLE PODNE
Posoji 100 efikasnijih nacina, ali okej.
Naslov: Odg: Kako najefkasnije odrediti string size
Poruka od: TarikBrt poslato April 08, 2020, 19:23:41 POSLE PODNE
Citat: over poslato April 08, 2020, 18:26:18 POSLE PODNE
Posoji 100 efikasnijih nacina, ali okej.
Jedini efikasnijih nacina je dodati -2 za svaki parametar i koristiti character counter i tako odrediti tacnu duzinu. Zaista bih volio cuti ostalih 98  :)
Naslov: Odg: Kako najefkasnije odrediti string size
Poruka od: algorhitmically poslato April 08, 2020, 20:23:51 POSLE PODNE
Ili jednostavno koristiti dinamicne stringove.
Naslov: Odg: Kako najefkasnije odrediti string size
Poruka od: // lestra poslato April 08, 2020, 20:28:06 POSLE PODNE
Fino objasnjeno pohvale  ;)
Naslov: Odg: Kako najefkasnije odrediti string size
Poruka od: TarikBrt poslato April 08, 2020, 20:38:57 POSLE PODNE
Citat: algorhitmically poslato April 08, 2020, 20:23:51 POSLE PODNE
Ili jednostavno koristiti dinamicne stringove.
Da, hvala na savjetu. Svakako da je efikasnije jer je plugin, jos efikasnije bi bilo pakovanje stringova ali kao sto naslov kaze radi se samo o odredjivanju duzine stringa kroz sam "vanilla" pawno.
Naslov: Odg: Kako najefkasnije odrediti string size
Poruka od: Terza Lazarevic poslato April 08, 2020, 22:11:18 POSLE PODNE
Svaki malo bolji code editor ima ugradjenu opciju u sebi za racunanje ukupnog broja selektovanih karaktera.
Ne vidim potrebu pisanja ovoga.
Naslov: Odg: Kako najefkasnije odrediti string size
Poruka od: TarikBrt poslato April 08, 2020, 22:27:16 POSLE PODNE
Citat: Terza Lazarevic poslato April 08, 2020, 22:11:18 POSLE PODNE
Svaki malo bolji code editor ima ugradjenu opciju u sebi za racunanje ukupnog broja selektovanih karaktera.
Ne vidim potrebu pisanja ovoga.
5% ljudi na ovom forumu koriste IDE , a 95% obicni pawno editor tako da ne vidim potrebu za tvojim komentarom. Cilj mog posta je da pojasnim ljudima kako efikasno odrediti duzinu stringa, a ne koji IDE da koriste. :)
Naslov: Odg: Kako najefkasnije odrediti string size
Poruka od: M Ө M Σ N Z I poslato April 08, 2020, 22:36:26 POSLE PODNE
Dzaba njima ovaj tutorijal kad pojedini "skripteri" ne znaju koristiti. Cast izuzecima, ima na ovom forumu i dobrih skriptera.Tebi hvala sto si odvojio vrijeme za ovaj tut. moze nekom pomoci.
Naslov: Odg: Kako najefkasnije odrediti string size
Poruka od: TarikBrt poslato April 08, 2020, 22:39:30 POSLE PODNE
Citat: M Ө M Σ N Z I poslato April 08, 2020, 22:36:26 POSLE PODNE
Dzaba njima ovaj tutorijal kad pojedini "skripteri" ne znaju koristiti. Cast izuzecima, ima na ovom forumu i dobrih skriptera.Tebi hvala sto si odvojio vrijeme za ovaj tut. moze nekom pomoci.
Nekome ko je usao da nauci nesto sigurno hoce za razliku od onih koji su dosli da prosipaju muda sa offtopic komentarima.
Naslov: Odg: Kako najefkasnije odrediti string size
Poruka od: M Ө M Σ N Z I poslato April 08, 2020, 22:42:06 POSLE PODNE
Citat: TarikBrt poslato April 08, 2020, 22:39:30 POSLE PODNE
Nekome ko je usao da nauci nesto sigurno hoce za razliku od onih koji su dosli da prosipaju muda sa offtopic komentarima.
Slazem se s tobom, ali nemoj se opet svadjati, ako imate nesto zavrsite privatno da vas moderatori ne bi dzaba kaznjavali i tjt
Naslov: Odg: Kako najefkasnije odrediti string size
Poruka od: Emmett poslato April 09, 2020, 18:36:01 POSLE PODNE
Citat: TarikBrt poslato April 08, 2020, 22:27:16 POSLE PODNE
5% ljudi na ovom forumu koriste IDE , a 95% obicni pawno editor tako da ne vidim potrebu za tvojim komentarom. Cilj mog posta je da pojasnim ljudima kako efikasno odrediti duzinu stringa, a ne koji IDE da koriste. :)
Polako, precice na ST3, VSC etc za nekih 20 godina ;)
Naslov: Odg: Kako najefkasnije odrediti string size
Poruka od: Teodor poslato April 25, 2020, 10:44:03 PRE PODNE
Nice ;D
Naslov: Odg: Kako najefkasnije odrediti string size
Poruka od: Eldaa poslato April 25, 2020, 12:03:05 POSLE PODNE
Dobro si ti to
Naslov: Odg: Kako najefkasnije odrediti string size
Poruka od: boky. poslato April 25, 2020, 12:33:09 POSLE PODNE
Citat: // lestra poslato April 08, 2020, 20:28:06 POSLE PODNE
Fino objasnjeno pohvale  ;)