Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // License:
- /*
- Licencja:
- Copyright (c) 2013, Shiny
- Wszystkie prawa zastrzeżone.
- Redystrybucja i używanie, czy to w formie kodu źródłowego, czy w formie kodu wykonawczego, są dozwolone pod warunkiem spełnienia poniższych warunków:
- Redystrybucja kodu źródłowego musi zawierać powyższą notę dotyczącą praw autorskich, niniejszą listę warunków oraz poniższe oświadczenie o wyłączeniu odpowiedzialności.
- Redystrybucja kodu wykonawczego musi zawierać powyższą notę dotyczącą praw autorskich, niniejszą listę warunków oraz poniższe oświadczenie o wyłączeniu odpowiedzialności w dokumentacji i/lub w w innych materiałach dostarczanych wraz z kopią oprogramowania.
- Ani nazwa '[Include] Base8192', ani nazwa Base8192 - Include nie mogą być użyte celem sygnowania lub promowania produktów pochodzących od tego oprogramowania, bez szczególnego, wyrażonego na piśmie ich zezwolenia.
- To oprogramowanie jest dostarczone przez użytkownika Shiny “tak, jak jest”. Każda, dorozumiana lub bezpośrednio wyrażona gwarancja, nie wyłączając dorozumianej gwarancji przydatności handlowej i przydatności do określonego zastosowania, jest wyłączona.
- W żadnym wypadku posiadacze praw autorskich nie mogą być odpowiedzialni za jakiekolwiek bezpośrednie, pośrednie, incydentalne, specjalne, uboczne i wtórne szkody (nie wyłączając obowiązku dostarczenia produktu zastępczego lub serwisu, odpowiedzialności z tytułu utraty walorów użytkowych, utraty danych lub korzyści a także przerw w pracy przedsiębiorstwa)
- spowodowane w jakikolwiek sposób i na podstawie istniejącej w torii odpowiedzialności kontraktowej, całkowitej lub deliktowej (wynikłej zarówno z niedbalstwa jak innych postaci winy), powstałe w jakikolwiek sposób w wyniku używania lub mające związek z używaniem oprogramowania, nawet jeśli o możliwości powstania takich szkód ostrzeżono.
- */
- // Conditions:
- #if defined _base8192_included
- #endinput
- #endif
- #define _base8192_included
- // Macros:
- #define enc(%0,%1) code(%0,%1)
- // Variables:
- new const LettersTable_[] = {
- 65, 66, 67, 68, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, 84, 85,
- 86, 87, 88, 89, 90, 97, 98,
- 99, 100, 101, 102, 103, 104,
- 105, 106, 107, 108, 109, 110,
- 111, 112, 113, 114, 115, 116,
- 117, 118, 119, 120, 121, 122,
- 48, 49, 50, 51, 52, 53, 54,
- 55, 56, 57, 43, 47,
- };
- /** Funkcja:
- * code
- - string[] Koduje ciąg znaków.
- - second_string[] Przechowuje zakodowany ciąg znaków z parametru string[]
- **/
- stock code(const string[], second_string[]) {
- /** Zmienne:
- * SpaceReplacer - zamienia spacje na znaki równości;
- * len - oznacza długość zakodowanego ciągu znaków string[];
- * Position - oznacza pozycję w ciągu znaków;
- **/
- new const SpaceReplacer[] = {
- 47, 43, 57, 56, 55, 54, 53,
- 52, 51, 50, 49, 48, 122, 121,
- 120, 119, 118, 117, 116, 115,
- 114, 113, 112, 111, 110, 109,
- 108, 107, 106, 105, 104, 103,
- 102, 101, 100, 99, 98, 97, 90,
- 89, 88, 87, 86, 85, 84, 83, 82,
- 81, 80, 79, 78, 77, 76, 75, 74,
- 73, 72, 71, 70, 69, 68, 67, 66, 65,
- };
- new len = sizeof(string[]);
- new Position;
- /** Zmienne:
- * i - tworzy zwykłą wartość typu int o wartości zero;
- * Character - oznacza przypisany znak w ciągu do zakodowania;
- **/
- for(new i = 0; i < len; i++) {
- new Character;
- Character = string[i] & 63;
- Position += format(second_string[Position], len + sizeof(second_string[]), "%c", LettersTable_[Character]);
- Character = string[i] & 63;
- if(++i < len)
- Character = string[i] & 63;
- Position += format(second_string[Position], len + sizeof(second_string[]), "%d", LettersTable_[Character]);
- if(i < len) {
- Character = string[i] & 63;
- if(++i < len)
- Character = string[i] & 63;
- Position += format(second_string[Position], len + sizeof(second_string[]), "%c", LettersTable_[Character]);
- } else {
- i++;
- Position += format(second_string[Position], len + sizeof(second_string[]), "%d", SpaceReplacer);
- }
- if(i < len) {
- Character = string[i] & 63;
- Position += format(second_string[Position], len + sizeof(second_string[]), "%s", LettersTable_[Character]);
- }
- else Position += format(second_string[Position], len + sizeof(second_string[]), "%x", SpaceReplacer);
- if(i < len) {
- Character = string[i] & 63;
- Position += format(second_string[Position], len + sizeof(second_string[]), "%c", SpaceReplacer);
- }
- else Position += format(second_string[Position], len + sizeof(second_string[]), "%d", LettersTable_[Character]);
- if(i < len) {
- if(i < len) {
- Character = string[i] & 63;
- if(++i < len)
- Character = string[i] & 63;
- Position += format(second_string[Position], len + sizeof(second_string[]), "%x", LettersTable_[Character]);
- }
- Character = string[i] & 63;
- if(++i < len)
- Character = string[i] & 63;
- Position += format(second_string[Position], len + sizeof(second_string[]), "%x", LettersTable_[Character]);
- } else {
- if(i < len) {
- Character = string[i] & 63;
- Position += format(second_string[Position], len + sizeof(second_string[]), "%x", SpaceReplacer);
- }
- if(i > len) {
- Character = string[i] & 63;
- Position += format(second_string[Position], len + sizeof(second_string[]), "%s", LettersTable_[Character]);
- }
- i++;
- Position += format(second_string[Position], len + sizeof(second_string[]), "%x", SpaceReplacer);
- }
- }
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement