; by Ingwar /def -i pid_of = \ /quote -S \ /eval /let pid_czego=`"/@ps -r" %%;\ /if (strstr({pid_czego},{*}) != -1) \ /first %%{pid_czego} %%;\ /endif /def rstart = \ /if ($(/pid_of %{-2})=~NULL) \ /repeat %{1} %{2} %{-2} %;\ /endif /def rstop = \ /kill $(/pid_of %{*}) ; by Koris? /def ustaw_indeksy = \ /for i 1 (rozmiar_tablicy_druzyna) /use_index druzyna $$[{i}]%;\ /for i 1 (rozmiar_tablicy_druzyna_bie) /use_index druzyna_bie $$[{i}] /def rozmiar_tablicy = \ /if ({#} < 1) \ /echo Musisz podac nazwe zmiennej!%;\ /echo Na przyklad : /rozmiar_tablicy druzyna%;\ /return %;\ /endif %;\ /if (if_array_exists({1})) \ /let PomocniczaZmienna=$(/eval /echo %%_array_%{1})%;\ /let tab=$[replace("|", " ", {PomocniczaZmienna})]%;\ /set rozmiar_tablicy_%{1}=$(/policz_tablice %{tab})%;\ /else \ /echo Nie ma takiej zmiennej '%{1}'. %;\ /endif /def use_index = \ /if ({#} != 2) \ /echo You must specify the name of an array, and number of index, which you want to check. %;\ /return %;\ /endif %;\ /if (if_array_exists({1})) \ /let rozmiar_tablicy=$(/policz_tablice $[replace("|", " ", $(/eval /echo %%_array_%{1}))])%;\ /uzyj_indeksu %{2} %{1} $[replace("|", " ", $(/eval /echo %%_array_%{1}))]%;\ /else \ /echo There is no array with name '%{1}'!%;\ /endif /def uzyj_indeksu = \ /let _nr=%{1}%;\ /let _ta=%{2}%;\ /shift %{1}%;\ /shift %;\ /set __%{_ta}_pozycja_%{_nr}=%{1} /if ($(/list mesg) =~ NULL) \ /def mesg = \ /if (!getopts("iw", "")) /return 0%%;/endif %%;\ /if ({opt_i}) \ /test echo(strcat("@{BCgreen}####@{n}", " @{Cyellow}", {*}), "", 1) %%;\ /elseif ({opt_w}) \ /test echo(strcat("@{BCgreen}####@{n}", " @{BCred}", {*}), "", 1) %%;\ /else \ /test echo(strcat("@{BCgreen}####@{n}", " ", {*}), "", 1) %%;\ /endif %;\ /endif /set biblioteka_tablic_wersja=1.1 /set last_update_tablicy=2005-10-04 /def podziel_linie = \ /let string=%{1}%;\ /let dlugosc=%{2}%;\ /if (strlen(str) > {dlugosc}) \ /mesg -w String ma wiecej znakow niz okreslona ich dlugosc. %;\ /return %;\ /endif %;\ /let dlugosc_bez=$[{dlugosc} - strlen(string)]%;\ /let dlugosc_bez_podzial=$[expr({dlugosc_bez} / 2)]%;\ /let string_koncowy=|$[strrep(" ", {dlugosc_bez_podzial})]%{string}$[strrep(" ", {dlugosc_bez_podzial})]|%;\ /echo -p @{Cgreen}%{string_koncowy} /def ?array = /array_help /def array_help = \ /echo -p @{Cgreen}+$[strrep("-", 78)]+ %;\ /test podziel_linie("Biblioteka tablic do TF'a, by volus", 78)%;\ /test podziel_linie(strcat("Version ", biblioteka_tablic_wersja), 78)%;\ /test podziel_linie(strcat("Ostatnia aktualizacja biblioteki: ", last_update_tablicy), 78)%;\ /echo -p @{Cgreen}|$[strrep(" ", 78)]| %;\ /echo -p @{Cgreen}|$[strrep(" ", 78)]| %;\ /echo -p @{Cgreen}| * /add_array nazwa elem1 elem2 elem3 elem4 ... |%;\ /echo -p @{Cgreen}| Tworzy tablice nazwana 'nazwa' z elementow 'elem1 elem2' itp. |%;\ /echo -p @{Cgreen}|$[strrep(" ", 78)]| %;\ /echo -p @{Cgreen}| * /add_index nazwa elem1 elem2 elem4 elem4 ... |%;\ /echo -p @{Cgreen}| Dodaje element(y) do tablicy 'nazwa' |%;\ /echo -p @{Cgreen}|$[strrep(" ", 78)]| %;\ /echo -p @{Cgreen}| * /sizeof_array nazwa |%;\ /echo -p @{Cgreen}| Zwraca ilosc elementow tablicy 'nazwa' |%;\ /echo -p @{Cgreen}|$[strrep(" ", 78)]| %;\ /echo -p @{Cgreen}| * /check_index nazwa nr_indeksu |%;\ /echo -p @{Cgreen}| Zwraca wartosc 'nr_indeksu' z tablicy 'nazwa' |%;\ /echo -p @{Cgreen}|$[strrep(" ", 78)]| %;\ /echo -p @{Cgreen}| * /member_array elem tablica |%;\ /echo -p @{Cgreen}| Sprawdza, czy 'elem' jest elementem tablicy 'tablica' |%;\ /echo -p @{Cgreen}+$[strrep("-", 78)]+ /def if_array_exists = \ /if ($(/listvar -s ogolne_%{*})) \ /result 1%;\ /endif /def add_array = \ /if ({#} < 2) \ /mesg -i Musisz podac nazwe tablicy i przynajmniej jeden jej element %;\ /mesg -i Np: /add_array druzyna jarek marek franek%;\ /return %;\ /endif %;\ /if (regmatch("[()|]", {*})) \ /mesg -i Nazwa tablicy oraz elementy nie moga miec w sobie znakow '(', ')', oraz '|'.%;\ /mesg -w Uwaga! 1 element liczony jest jako 1 wyraz, liczba badz litera!%;\ /mesg -w Wiec spacja liczona jest jako koniec elementu tablicy.%;\ /return %;\ /endif %;\ /set _array_%{1}=$[replace(" ", "|", {-1})]| /def add_index = \ /if ({#} < 2) \ /mesg -i Musisz podac nazwe tablicy i przynajmniej jeden jej element do dodania.%;\ /mesg -i Np: /add_index druzyna krzysztof%;\ /mesg -i Doda 'krzysztof' do tablicy 'druzyna'%;\ /return %;\ /endif %;\ /if (regmatch("[()|]", {*})) \ /mesg -i Nazwa tablicy oraz elementy nie moga miec w sobie znakow '(', ')', oraz '|'.%;\ /return %;\ /endif %;\ /if (if_array_exists({1})) \ /set _array_%{1}=$(/eval /echo %%_array_%{1})$[replace(" ", "|", {-1})]|%;\ /else \ /mesg -w Tablica '%{1}' nie istnieje!%;\ /endif /def sizeof_array = \ /if ({#} < 1) \ /mesg -i Musisz podac nazwe tablicy.%;\ /mesg -i Np: /sizeof_array druzyna%;\ /return %;\ /endif %;\ /if (if_array_exists({1})) \ /let PomocniczaZmienna=$(/eval /echo %%_array_%{1})%;\ /let tab=$[replace("|", " ", {PomocniczaZmienna})]%;\ /let wynik=$(/policz_tablice %{tab})%;\ /mesg -i Tablica '%{1}' ma %{wynik} elementow. %;\ /else \ /mesg -w Nie ma tablicy nazwanej '%{1}'. %;\ /endif /def policz_tablice = \ /let k_z=0%;\ /while ({#}) \ /test ++k_z%;\ /shift %;\ /done %;\ /result %{k_z} /def check_index = \ /if ({#} != 2) \ /mesg -i Musisz podac nazwe tablicy oraz numer indeksu, jaki mam sprawic. %;\ /mesg -i Jesli podasz indeks '0', Wyswietle wszystkie elementy. %;\ /return %;\ /endif %;\ /if (if_array_exists({1})) \ /let rozmiar_tablicy=$(/policz_tablice $[replace("|", " ", $(/eval /echo %%_array_%{1}))])%;\ /if ({2} < 0) \ /mesg -w Indeks musi byc wiekszy od 0. Jesli chcesz abym wyswietlil wszystkie elementy %;\ /mesg -w Podaj 0 jaki drugi argument%;\ /return %;\ /elseif ({2} != 0 & {2} > {rozmiar_tablicy}) \ /mesg -w Indeks wykracza poza tablice! Ta tablica ma %{rozmiar_tablicy} elementow!%;\ /return %;\ /endif%;\ /if ({2} == 0) \ /pokaz_wszystkie_indeksy_tablicy $[replace("|", " ", $(/eval /echo %%_array_%{1}))]%;\ /else \ /pokaz_indeks %{2} %{1} $[replace("|", " ", $(/eval /echo %%_array_%{1}))]%;\ /endif %;\ /else \ /mesg -w Nie ma takiej tablicy '%{1}'!%;\ /endif /def pokaz_wszystkie_indeksy_tablicy = \ /let i_t=0%;\ /while ({#}) \ /test ++i_t%;\ /echo %{i_t}: %{1}%;\ /shift %;\ /done /def pokaz_indeks = \ /let _nr=%{1}%;\ /let _ta=%{2}%;\ /shift %{1}%;\ /shift %;\ /echo %{1} %;\ /echo Index %{_nr} of an array '%{_ta}' is '%{1}' /def member_array = \ /let _ind=%{1}%;\ /let _arr=%{2}%;\ /if (if_array_exists(_arr)) \ /if (regmatch(substr(_ind, "\|"), _arr)) \ /mesg -i %_ind jest elementem tablicy '%_arr'. %;\ /else \ /mesg -w %_ind nie jest elementem tablicy '%_arr'! %;\ /endif %;\ /else \ /mesg -w Tablica '%_arr' nie istnieje!%;\ /endif