Przejdź do treści
Logo

kuling.pl

  • Główna
  • Arkdisk
  • Forum
  • Kontakt

Jesteś tutaj

Start » Forum » MudMaster » Arkdisk Builder

Nowa DLL'ka! Strings.dll

published by Mandrek on pt., 2004-07-30 03:04

ŚCIĄGNIJ Strings.dll

-------------------------- Strings.dll --------------------------

Biblioteka zajmuje sie obróbką stringów. Narazie zaimplementowana jest częściowa obsługa string list oraz jedna funkcja ogólna.

String listy są dobrze znane użytkowniką zMUDów. Są to zwykle lancuchy znakow, ktore logicznie monza podzielic na elementy, oddzielone od siebie znakiem "|":
a|b c|d|e
Powyższa lista zawiera 4 elementy. Drugim elementem jest "b c".

Strings.dll pozwala na obsluge takich list - narazie podstawową:

/calldll Strings AddItem {<zmienna listy>,<nowy element>}
Funkcja ta dodaje do listy nowy element. Jezeli lista jest pusta, zostanie ona zapelniona nowym elementem.
<zmienna listy> to Nazwa Zmienne, zawierajaca liste, ktora chcemy zmienic. Nie uzywamy tutaj znaku "$", lecz jedynie samej nazwy zmiennej.

Należy zwrócić uwagę na sposób podawania parametrów w tej, a także i każdej innej funkcji omawianej biblioteki.
Każdy parametr, dopóku jest jednym słowem (bez spacji) może być zapisany bez cudzysłowa, jednak jeśli chcemy podać zmienną, lub bardziej skomlikowany parametr, należy użyć cudzysłowa. To samo tyczy sie przekazywania przecinka, jako parametru.
Wywołanie procedury nie powinno zawierać żadnych zbędnych spacji, szczególnie pomiedzy parametrami a przecinkami. Oto przykład prawidłowego wywołania procedury:

[code]/calldll Strings AddItem {nowalista,"to jest dodawany element"}[/code]

Pozostałe procedury:
/calldll Strings DelItem {<zmienna listy>,<numer elementu>}
Usuwa z listy, przechowywanej w <zmienna listy> n-ty element. Elementy listy numerowane sa od 1 (tak jak, pierwszy element listy ma numer 1).

/calldll Strings Item {<zmienna wyniku>,<lista>,<numer elementu>}
Zapisuje w <zmienna wyniku> n-ty element listy, przechowywanej w <zmienna listy>. Elementy listy sa numerowane od 1. <zmienna wyniku> jest tylko nazwa zmiennej, natomiast <lista> nie jest zmienna! Jesli chcemy podac zmienna, uzyjemy $zmienna!

/calldll String IsMember {<zmienna wyniku>,<lista>,<tekst>}
Wyszukuje w dane liście <lista> (nie nazwa zmiennej! - należy je rozwijać znakiem "$") element <tekst> i zapisuje jego numer w <zmienna wyniku>. Jeśli <tekst> nie jest elementem listy, <zmienna wyniku> zawiera 0.

Istnieje jeszcze jedna, bardzo przydatna procedura:
/calldll Strings Replace {<zmienna wyniku>,<tekst źródlowy>,<wzorzec>,<nowy tekst>}
Zamienia każde wystąpienie <wzorca> w <tekscie żródlowym> na <nowy tekst>. Jeżeli <nowy tekst> jest stringiem pustym, każde wystąpienie <wzorca> zostanie usunięte.

Zastosowanie znalazło to już w q_druzyna.txt , a na pewno jest jeszcze wiele miejsc, ktore wykorzystają tą dll'ke.

PRZYKŁADOWE SKRYPTY BIBLITOEKI STRINGS.DLL

Narazie to tyle. Niebawem kolejne updaty!

Pozdrawiam.
Mandrek

Forum: 
Arkdisk Builder
  • Odpowiedz
  • 655 odsłon

Nowa DLL'ka! Strings.dll

Adres Submitted by Mandrek on pt., 2004-07-30 11:47.

Nowa procedura w Strings.dll!
Najnowsza wersja do ściągniecia w pierwszej notce, lub razem z Arkdiskiem.

/calldll Strings NumItems {<zmienna wynikowa>,<lista>}
Podlicza elementy w danej liście i zapisuje wynik do <zmienna wynikowa>.

Przyklad:

/var Lista {a|b|c d|e}
/calldll Strings NumItems {ilosc,"$Lista"}
/sh {Ilosc elementow: $ilosc}

Mozna takze napisac:
/calldll Strings NumItems {ilosc,"a|b|c d|e"}
/sh {Ilosc elementow: $ilosc}

Oby dwa przypadki spowodują zapisanie do "ilosc" liczby 4.
  • powtórz

Nowa DLL'ka! Strings.dll

Adres Submitted by Mandrek on pt., 2004-07-30 12:59.

Nowa procedura w Strings.dll!

/callldll Strings Sort {<zmienna wynikowa>,

    }
Sortuje daną liste i zapisuje ja w <zmienna wynikowa>. Sortwanie jest naprawde bardzo wydajne (QSort) wiec z powodzeniem mozna stosowac do wiekszych list.
Jezeli chcemy posortowac liste z zmiennej i zapisac ja w tej samej zmiennej, mozemy pominać drugi parametr (<lista>). Wtedy wartosc zmiennej zostanie automatycznie rozwinieta, posortowana i spowrotem zapisana.

Przykład:

/var lista {c|z|b|a|e|r}
/sh {Lista to: $lista}
/calldll Strings Sort {lista,"$lista"}
/sh {Posortowana lista: $lista}

/calldll Strings Sort {lista,"$lista"} można zapisać jako
/calldll Strings Sort {lista} - zapisy te sa równważne.
  • powtórz

Nowa DLL'ka! Strings.dll

Adres Submitted by Kuling on pt., 2004-07-30 14:43.

Naprawde fajne.

Przydalyby sie tez funkcje do usuwania w listy duplikatow Uniqe.

Byc moze tez funkcja ktora dla listy {a|b|c|d} tworzy ciag zmiennych
/var Zmienna1 {a}
/var Zmienna2 {b}
/var Zmienna3 {c}
...

  • powtórz

Nowa DLL'ka! Strings.dll

Adres Submitted by Mandrek on pt., 2004-07-30 19:16.

Nowe procedury w Strings.dll!

/calldll Strings Unique {<zmienna wynikowa>,<lista>}
Usuwa powtarzające się elementy z <listy>. Jeżeli <lista> zostanie pominięta, to jest ona czytana z <zmienna wynikowa>. Należy się upewnić że <zmienna wynikowa> nie jest pusta, jeżeli nie podajemy <lista>

/var lista {a|b|a|b|c|c|a}
/calldll Strings Unique {lista}
/sh {Lista zawiera: $lista}

/calldll Strings Expand {<nazwa>,<lista>}
Zapisuje każdy element listy <lista> w oddzielnej zmiennej. Zmienne są nazywane: <nazwa>1, <nazwa>2, <nazwa>3.

/var lista {a b|c d|e f}
/calldll Strings Expand {test,"$lista"}
/sh {Zmienna 1: $test1}
/sh {Zmienna 2: $test2}
/sh {Zmienna 3: $test3}

Oprócz tego poprawiony błąd w IsMember, który objawiał sie tym, że nie można było wyszukać ostatniogo elementu....

Pozdrawiam na wychodnym do Tych.
M.

  • powtórz

Nowa DLL'ka! Strings.dll

Adres Submitted by Mandrek on pt., 2004-08-06 23:59.

Update strings.dll

Wszystkie informacje można znaleźć w /calldll Strings Help. Jako parametr można podać nazwe procedury, ktorej informacje chce sie wyswietlic.

--------------------------------------------------------------------------------

Insert {<zmienna>,[orginal],<pozycja>,<tekst>}

Wstawia <tekst> na danej <pozycji> w [orginale] oraz zapisuje uzyskany łańcuch do <zmiennej>
<pozycja> jest liczba wskazujacą po ktorej literce ma zostac wstawiony <tekst>
[orginal] jest parametrem opcjonlanym - jesli nie zostanie podany operacja zostanie dokonana na zawartości <zmiennej>

Przyklad:
/calldll Strings Insert {text,0."}
wstawia spacje na poczatku tekstu"

--------------------------------------------------------------------------------

Pop {<zmienna wynikowa>,<zmienna listy>,[a]}

Zapisuje pierwszy element <listy> w <zmiennej wynikowej> oraz usuwa ten element z <listy>.
Parametr [a] jest opcjonalany - jezeli zostanie pominiety, operacja wykonana zostaje na zawartosci <zmiennej listy>.

Przyklad:
/calldll Strings Pop {element,lista}

--------------------------------------------------------------------------------

Push {<zmienna listy>,[a],<nowy element>}

Wstawia <nowy element> na początek <listy>.
Parametr [a jest opcjonalny] - jezeli zostanie pominiety,operacje zostaje wykonana na zawartosci <zmiennej listy>.

Przyklad:
/calldll Strings Push {lista,"nowy element"}

--------------------------------------------------------------------------------

Proper {<zmienna>,[tekst]}

Formatuje tekst jako zdanie - pierwsza literka jest duza, pozostale sa male.
Parametr [tekst] jest opcjolnalny - jezeli zostanie pominiety, operacja zostanie wykonana na zawartosci <zmiennej>

Przyklad:
/calldll Strings Proper {tekst}

--------------------------------------------------------------------------------

Reverse {<zmienna>,[tekst]}

Zapisuje tekst od tylu, umieszczajac go w <zmiennej>.
Parametr [tekst] jest opcjonalny - jezeli zostanie pominiety, operacja bedzie wykonana na zawartosci <zmiennej>.

-------------------------------------------------------------------------------

Roll {<zmienna>,[tekst],[flaga]}

Przepisuje pierwsza literke <tekstu> na koniec. Jezeli jako ostatni argument, podano niezerową liczbe (opcjonalne) ostatnia literka zostanie umieszczona na początku.
Parametr [tekst] jest opcjonalny - jezeli zostanie pominiety, operacja bedzie wykonana na zawartosci <zmiennej>.

[/][/][/][/]
  • powtórz

Archiwum

  • Kwiecień 2012 (1)
  • Marzec 2012 (1)
  • luty 2012 (1)
  • Styczeń 2012 (7)
  • Grudzień 2011 (2)
  • Listopad 2011 (2)
  • Październik 2011 (2)
  • Wrzesień 2011 (3)
  • Sierpień 2011 (2)
  • Lipiec 2011 (3)
  • Czerwiec 2011 (1)
  • Kwiecień 2011 (4)
  • luty 2011 (1)
  • Styczeń 2011 (2)
  • Listopad 2010 (6)
  • Październik 2010 (5)
  • Sierpień 2010 (10)
  • Lipiec 2010 (3)
  • Czerwiec 2010 (2)
  • Maj 2010 (1)
  • Kwiecień 2010 (2)
  • luty 2010 (4)
  • Styczeń 2010 (5)
  • Grudzień 2009 (5)
  • Listopad 2009 (1)
  • Październik 2009 (4)
  • Wrzesień 2009 (6)
  • Sierpień 2009 (11)
  • Lipiec 2009 (23)
  • Czerwiec 2009 (14)
  • Maj 2009 (23)
  • Kwiecień 2009 (22)
  • Marzec 2009 (14)
  • luty 2009 (20)
  • Styczeń 2009 (14)
  • Grudzień 2008 (17)
  • Listopad 2008 (12)
  • Październik 2008 (10)
  • Wrzesień 2008 (4)
  • Lipiec 2008 (2)
  • Czerwiec 2008 (5)
  • Maj 2008 (5)
  • Kwiecień 2008 (9)
  • Marzec 2008 (9)
  • luty 2008 (30)
  • Styczeń 2008 (22)
  • Grudzień 2007 (15)
  • Listopad 2007 (19)
  • Październik 2007 (10)
  • Wrzesień 2007 (22)
  • Sierpień 2007 (21)
  • Lipiec 2007 (29)
  • Czerwiec 2007 (53)
  • Maj 2007 (61)
  • Kwiecień 2007 (14)
  • Marzec 2007 (5)
  • luty 2007 (4)
  • Styczeń 2007 (16)
  • Grudzień 2006 (69)
  • Listopad 2006 (15)
  • Wrzesień 2006 (25)
  • Sierpień 2006 (20)
  • Lipiec 2006 (10)
  • Czerwiec 2006 (10)
  • Maj 2006 (35)
  • Kwiecień 2006 (5)
  • Marzec 2006 (15)
  • luty 2006 (5)
  • Grudzień 2005 (10)
  • Listopad 2005 (15)
  • Sierpień 2005 (10)
  • Lipiec 2005 (20)
  • Czerwiec 2005 (30)
  • Maj 2005 (30)
  • Kwiecień 2005 (34)
  • Marzec 2005 (14)
  • luty 2005 (10)
  • Grudzień 2004 (30)
  • Listopad 2004 (48)
  • Październik 2004 (25)
  • Sierpień 2004 (18)
  • Lipiec 2004 (30)

Kategorie

  • Angielski (1)
    • FCE (0)
  • Dom (4)
    • Akwarium (3)
    • Kot (2)
  • Gry (11)
    • Counter Strike (8)
  • Informatyka (15)
    • Hardware (15)
      • Mój komputer (14)
    • Linux (0)
    • Programowanie (175)
      • C++ (134)
        • Concurrency (66)
        • Exceptions (14)
        • Templates (21)
      • Narzędzia (10)
        • Visual Studio 2003 (21)
        • Visual Studio 2005 (45)
        • Visual Studio 2008 (33)
        • Visual Studio 2010 (13)
      • PHP (9)
    • Windows (18)
  • Internet (10)
    • Drupal (18)
    • Linki (29)
  • Miejsca (2)
    • Poznań (3)
    • Sieradz (1)
    • Wrocław (12)
    • Zgorzelec (0)
  • Pieniądze (122)
    • Giełda (47)
    • Inwestowanie (66)
    • Mieszkanie (69)
  • Rodzina (14)
    • Magda (1)
  • Rozrywka (66)

Logowanie

  • Utwórz nowe konto
  • Prześlij nowe hasło
Theme provided by Danetsoft under GPL license from Danang Probo Sayekti