GTA-Center.com » Forum http://www.gta-center.com/forums/ |
|
[GUIDA] Packed Strings http://www.gta-center.com/forums/viewtopic.php?f=40&t=252 |
Pagina 1 di 1 |
Autore: | Peppe [ 07/11/2010, 17:40 ] |
Oggetto del messaggio: | [GUIDA] Packed Strings |
Packed Strings Una non nota funzionalità del Pawno è quella delle packed strings, ovvero stringhe che possono memorizzare 4 caratteri a cella, a differenza di quelle normali che ne memorizzano uno a cella. Ciò comporta un risparmio di spazio e di memoria usata, che può essere anche notevole. Per creare una packed string bisogna inserire il ! prima delle virgolette (" ") che definiscono il testo della stringa. Inoltre potete mettere char a seguire del numero di celle di questa, quando la create. Ecco degli esempi: Codice: new string[128 char] = !"Questo è un esempio di Packed String, char divide il numero di celle per 4 quindi è come se scrivessimo, al posto di 128 char, 32"; Codice: new string[32 char]; new var = 1; format(string, sizeof(string), !"Questa è la packed string numero %d", var); Però, tuttavia, questo tipo di stringhe non potra essere compatibile con alcune vostre funzioni che devono leggere un singolo carattere per ogni cella della stringa come ad esempio questa funzione: Codice: char_Replace(string[], charsource, chardest) { for(new i; i < strlen(string); i++) { if(string[i] == charsource) string[i] = chardest; } return 1; } Infatti, considerando una cella alla volta di una stringa, che dovrebbe essere un unico carattere, non è compatibile con le packed string, perché considerebbe 4 char per ogni cella. Però si può ovviare a questo problema usando al posto delle parentesi quadre quelle graffe in questo modo: string{i}. Una soluzione quindi è questa: Codice: char_Replace(string[], charsource, chardest) { if(ispacked(string)) { for(new i; i < strlen(string); i++) { if(string{i} == charsource) string{i} = chardest; } } else { for(new i; i < strlen(string); i++) { if(string[i] == charsource) string[i] = chardest; } } return 1; } Quindi le Packed Strings, pur avendo delle limitazioni, sono consigliate, poiché uno dei tanti modi per ottimizzare il vostro script. |
Autore: | Beyond [ 10/11/2010, 20:57 ] |
Oggetto del messaggio: | Re: [GUIDA] Packed Strings |
Utile e chiara, dato che non tutti conoscono questa particolarità. Grazie |
Autore: | Giovanni94m [ 10/11/2010, 21:49 ] |
Oggetto del messaggio: | Re: [GUIDA] Packed Strings |
grande peppe |
Autore: | barletheking [ 10/11/2010, 22:00 ] |
Oggetto del messaggio: | Re: [GUIDA] Packed Strings |
Io sto iniziando a vedere.. noto che usa meno heap |
Pagina 1 di 1 | Tutti gli orari sono UTC + 1 ora [ ora legale ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |