Guest QWERův druhý účet Odesláno: 21. Červenec, 2011 Share Odesláno: 21. Červenec, 2011 Čaute, s veľkou radosťou vám predstavujem môj vlastný ini systém. Volá sa 'qini' ! Download http://solidfiles.com/d/41269/ http://pastebin.com/eChJPRGn Testy rýchlosti cyklus bol nastavený na hodnotu '100' [00] DINI: 4349 [00] QINI: 1039 Funkcie // Vytvorí súbor qini_Create(file[]) // Zmaže súbor qini_Remove(file[]) // Pridá do súboru ďalší riadok ('key=value') qini_Int(key[],value) // Zistí integer zo súboru qini_IntGet(key[]) // Uloží float do súboru qini_Float(key[],Float:value) // Zistí float zo súboru qini_FloatGet(key[]) // Uloží do súboru boolean qini_Bool(key[],value) // Zistí zo súboru boolean qini_BoolGet(key[]) // Otvorí súbor qini_Open(file[]) // Uloží string do súboru qini_Set(key[],value[]) // Zistí string zo súboru qini_Get(key[]) // Zatvorí a ULOŽÍ súbor qini_Close() // Zahashuje string hash(str2[]) // by DracoBlue Ukážkový script new ServerStarted; public OnGameModeInit(){ qini_Create("ServerStats.txt");// Vytvoríme súbor qini_Open("ServerStats.txt"); // Otvoríme súbor ServerStarted = qini_Get("Started"); // uložíme do premeny hodnotu získanú zo súboru qini_Int("Started",ServerStarted+1); // uložíme do súboru novú hodnotu qini_Close(); // zapíšeme a zavreme súbor } Jednoduché nie ? Prosím ľudí typu "použite radšej obyčajné fwrite" nech to nepíšu... Ja viem že to je lepšie... ale ini je komfort... Čoskoro sem dám návod na registráciu a podobné kravinky. S pozdravom QWER Link to comment Share on other sites More sharing options...
KarTooN 1 Odesláno: 22. Červenec, 2011 Share Odesláno: 22. Červenec, 2011 Výborné :rap: asi použiju Link to comment Share on other sites More sharing options...
B8xer 0 Odesláno: 22. Červenec, 2011 Share Odesláno: 22. Červenec, 2011 S pozdravom QWER "lol" ti si QWER?? Ale inač to je super 10/10 Link to comment Share on other sites More sharing options...
Guest QWERův druhý účet Odesláno: 22. Červenec, 2011 Share Odesláno: 22. Červenec, 2011 Ano som to ja... prečo by inač QWER (tj. ja) urobil 333 domov na patchwerkovom (tj. ja) house systéme (zo slotmy áut & skinov & zbraní) Link to comment Share on other sites More sharing options...
KarTooN 1 Odesláno: 22. Červenec, 2011 Share Odesláno: 22. Červenec, 2011 sry za OffTopic, ale proč máš jiný Account? Link to comment Share on other sites More sharing options...
Guest QWERův druhý účet Odesláno: 22. Červenec, 2011 Share Odesláno: 22. Červenec, 2011 na QWER som dostal ban za nadávky (3 vary = 7 dní ban) a tak som sa vrátil k tomuto, ktorý som si založil pred mesiacom a pol... Link to comment Share on other sites More sharing options...
Globální moderátor HighPrint 177 Odesláno: 22. Červenec, 2011 Globální moderátor Share Odesláno: 22. Červenec, 2011 Tvl... [00] DINI: 4349 [00] QINI: 1039 Bravo Boreček teda...Sice nepoužiju, ale ta rychlost je fakt teda ohromujicí donutil mě napsat koment : D Link to comment Share on other sites More sharing options...
Medium 0 Odesláno: 22. Červenec, 2011 Share Odesláno: 22. Červenec, 2011 Pekná robota :thumbup: Link to comment Share on other sites More sharing options...
Angelus 3 Odesláno: 22. Červenec, 2011 Share Odesláno: 22. Červenec, 2011 Začali prázdniny, začala QWERova revolúcia !! tj 10/1 for all Link to comment Share on other sites More sharing options...
Robers 0 Odesláno: 22. Červenec, 2011 Share Odesláno: 22. Červenec, 2011 Velmi dobrá prácička... Link to comment Share on other sites More sharing options...
Guest Odesláno: 27. Červenec, 2011 Share Odesláno: 27. Červenec, 2011 ServerStarted = dini_Get("Started"); // uložíme do premeny hodnotu získanú zo súboru proč dini_get, proč né qini_get ! Využiju ale až budu dělat něco hoodně zátěžovýho (joke) btw 600. příspěvek ! Link to comment Share on other sites More sharing options...
Guest Odesláno: 27. Červenec, 2011 Share Odesláno: 27. Červenec, 2011 ServerStarted = dini_Get("Started"); // uložíme do premeny hodnotu získanú zo súboru proč dini_get, proč né qini_get ! Využiju ale až budu dělat něco hoodně zátěžovýho (joke) btw 600. příspěvek ! Link to comment Share on other sites More sharing options...
Guest QWERův druhý účet Odesláno: 27. Červenec, 2011 Share Odesláno: 27. Červenec, 2011 a nabudúce si pozri SCRIPT a nie názvy funkcií, tie som použil už "zauižívané" aby nebol ťažký prechod z iného ini systému na qini... Link to comment Share on other sites More sharing options...
Guest QWERův druhý účet Odesláno: 27. Červenec, 2011 Share Odesláno: 27. Červenec, 2011 a nabudúce si pozri SCRIPT a nie názvy funkcií, tie som použil už "zauižívané" aby nebol ťažký prechod z iného ini systému na qini... Link to comment Share on other sites More sharing options...
Guest QWERův druhý účet Odesláno: 27. Červenec, 2011 Share Odesláno: 27. Červenec, 2011 prestanem nadávať až keď nebudeš mať dutú lebeňu... najprv sa nauč čo to je ini... ja viem že nepoznáš google, preto tu máš link na wiki http://en.wikipedia.org/wiki/INI_file ... všetky ini systémy sú na rovnakom princípe lebo ten systém ini nebude inakší... btw a aby si VIDEL lebo ty vidíš (hore som už písal čo vidíš) ... tak tu máš rozdiel... (základné rozdiely) qini ukladá hodnoty do premenných čo narozdiel od dini vždy cyklujl... preto tá rýchlosť... stock dini_Set(filename[],key[],value[]) { new File:fohnd, File:fwhnd; new bool:wasset=false; new tmpres[MAX_STRING]; if (key[0]==0) return false; /* If we have no sign in key, it can't be set*/ format(tmpres,sizeof(tmpres),"%s.part",filename); fohnd=fopen(filename,io_read); if (!fohnd) return false; fremove(tmpres); fwhnd=fopen(tmpres,io_write); // if (!fwhnd) return false; while (fread(fohnd,tmpres)) { StripNewLine(tmpres); if ((!wasset)&&(equal(dini_PRIVATE_ExtractKey(tmpres),key,true))) { /* We've got what needs to be replaced! */ format(tmpres,sizeof(tmpres),"%s=%s",key,value); wasset=true; } fwrite(fwhnd,tmpres); fwrite(fwhnd,"\r\n"); } if (!wasset) { format(tmpres,sizeof(tmpres),"%s=%s",key,value); fwrite(fwhnd,tmpres); fwrite(fwhnd,"\r\n"); } fclose(fohnd); fclose(fwhnd); format(tmpres,sizeof(tmpres),"%s.part",filename); if (fcopytextfile(tmpres,filename)) { return fremove(tmpres); } return false; } Vždy keď použieš dini_Set tak sa prečítajú všeky riadky, zmaže súbor, vytvorí nový a zapíše... a ak máš pod sebou 10x použité dini_Set(filename[],key[],value[]); tak 10x zmaže a a vytvorí súbor + prečíta všetky riadky a zapíše do nového... a tu je qini stock qini_Set(key[],value[]){ new qline = -1; new bool:findet = false; while((qline < qLines) && (qline < MAX_LINE)){ qline++; if(!qKey[qline][0]) continue; if(strcmp(key,qKey[qline],false) == 0){ format(qValue[qline],MAX_VALUE,value); // printf("%s | %s | %s | %d | %d",qValue[qline],key,qKey[qline],qline,qLines); findet = true; break; } } if(!findet){ qLines++; format(qKey[qLines],MAX_KEY,key); format(qValue[qLines],MAX_VALUE,value); // printf("!!!!!!!!!!!!!!!!!!!!!!!!!%s=%s!!!!!!!!!!!!!!!!!!!!!!!!!!",qKey[qLines],qValue[qLines]); } } tu uloží do premenej... omfg.... ---- EDIT ---- A pozrime si qini_Get & dini_Get stock dini_Get(filename[],key[]) { new File:fohnd; new tmpres[MAX_STRING]; new tmpres2[MAX_STRING]; tmpres[0]=0; fohnd=fopen(filename,io_read); if (!fohnd) return tmpres; while (fread(fohnd,tmpres)) { StripNewLine(tmpres); if (equal(dini_PRIVATE_ExtractKey(tmpres),key,true)) { /* We've got what we need */ tmpres2[0]=0; strcat(tmpres2,dini_PRIVATE_ExtractValue(tmpres)); fclose(fohnd); return tmpres2; } } fclose(fohnd); return tmpres; } Zase otvára súbor a cyklý a qini stock qini_Get(key[]){ new qline = -1; while((qline < qLines) && (qline < MAX_LINE)){ qline++; if(!strcmp(key,qKey[qline],false)){ return qValue[qline]; } } return qValue[0]; } vidíš ten rozdiel ? Link to comment Share on other sites More sharing options...
Guest QWERův druhý účet Odesláno: 27. Červenec, 2011 Share Odesláno: 27. Červenec, 2011 prestanem nadávať až keď nebudeš mať dutú lebeňu... najprv sa nauč čo to je ini... ja viem že nepoznáš google, preto tu máš link na wiki http://en.wikipedia.org/wiki/INI_file ... všetky ini systémy sú na rovnakom princípe lebo ten systém ini nebude inakší... btw a aby si VIDEL lebo ty vidíš (hore som už písal čo vidíš) ... tak tu máš rozdiel... (základné rozdiely) qini ukladá hodnoty do premenných čo narozdiel od dini vždy cyklujl... preto tá rýchlosť... stock dini_Set(filename[],key[],value[]) { new File:fohnd, File:fwhnd; new bool:wasset=false; new tmpres[MAX_STRING]; if (key[0]==0) return false; /* If we have no sign in key, it can't be set*/ format(tmpres,sizeof(tmpres),"%s.part",filename); fohnd=fopen(filename,io_read); if (!fohnd) return false; fremove(tmpres); fwhnd=fopen(tmpres,io_write); // if (!fwhnd) return false; while (fread(fohnd,tmpres)) { StripNewLine(tmpres); if ((!wasset)&&(equal(dini_PRIVATE_ExtractKey(tmpres),key,true))) { /* We've got what needs to be replaced! */ format(tmpres,sizeof(tmpres),"%s=%s",key,value); wasset=true; } fwrite(fwhnd,tmpres); fwrite(fwhnd,"\r\n"); } if (!wasset) { format(tmpres,sizeof(tmpres),"%s=%s",key,value); fwrite(fwhnd,tmpres); fwrite(fwhnd,"\r\n"); } fclose(fohnd); fclose(fwhnd); format(tmpres,sizeof(tmpres),"%s.part",filename); if (fcopytextfile(tmpres,filename)) { return fremove(tmpres); } return false; } Vždy keď použieš dini_Set tak sa prečítajú všeky riadky, zmaže súbor, vytvorí nový a zapíše... a ak máš pod sebou 10x použité dini_Set(filename[],key[],value[]); tak 10x zmaže a a vytvorí súbor + prečíta všetky riadky a zapíše do nového... a tu je qini stock qini_Set(key[],value[]){ new qline = -1; new bool:findet = false; while((qline < qLines) && (qline < MAX_LINE)){ qline++; if(!qKey[qline][0]) continue; if(strcmp(key,qKey[qline],false) == 0){ format(qValue[qline],MAX_VALUE,value); // printf("%s | %s | %s | %d | %d",qValue[qline],key,qKey[qline],qline,qLines); findet = true; break; } } if(!findet){ qLines++; format(qKey[qLines],MAX_KEY,key); format(qValue[qLines],MAX_VALUE,value); // printf("!!!!!!!!!!!!!!!!!!!!!!!!!%s=%s!!!!!!!!!!!!!!!!!!!!!!!!!!",qKey[qLines],qValue[qLines]); } } tu uloží do premenej... omfg.... ---- EDIT ---- A pozrime si qini_Get & dini_Get stock dini_Get(filename[],key[]) { new File:fohnd; new tmpres[MAX_STRING]; new tmpres2[MAX_STRING]; tmpres[0]=0; fohnd=fopen(filename,io_read); if (!fohnd) return tmpres; while (fread(fohnd,tmpres)) { StripNewLine(tmpres); if (equal(dini_PRIVATE_ExtractKey(tmpres),key,true)) { /* We've got what we need */ tmpres2[0]=0; strcat(tmpres2,dini_PRIVATE_ExtractValue(tmpres)); fclose(fohnd); return tmpres2; } } fclose(fohnd); return tmpres; } Zase otvára súbor a cyklý a qini stock qini_Get(key[]){ new qline = -1; while((qline < qLines) && (qline < MAX_LINE)){ qline++; if(!strcmp(key,qKey[qline],false)){ return qValue[qline]; } } return qValue[0]; } vidíš ten rozdiel ? Link to comment Share on other sites More sharing options...
-MR.-cobra 0 Odesláno: 29. Červenec, 2011 Share Odesláno: 29. Červenec, 2011 paci sa mi to asi to vyuzijem hodnotenie == 10/10 Link to comment Share on other sites More sharing options...
-MR.-cobra 0 Odesláno: 29. Červenec, 2011 Share Odesláno: 29. Červenec, 2011 paci sa mi to asi to vyuzijem hodnotenie == 10/10 Link to comment Share on other sites More sharing options...
Guest Odesláno: 29. Červenec, 2011 Share Odesláno: 29. Červenec, 2011 krásny script...s QWERovej dielne 10/10 ALE nevyužijem Link to comment Share on other sites More sharing options...
Guest Odesláno: 29. Červenec, 2011 Share Odesláno: 29. Červenec, 2011 krásny script...s QWERovej dielne 10/10 ALE nevyužijem Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now