[VBA][Excel] Analiza zapisów partii szachowych - elektroda.pl\nmateo786 25 May 2010 11:42 5229 28\n#1 25 May 2010 11:42\nProszę o pomoc w stworzeniu programu w języku VBA. Będzie to makro Excela. Program ten będzie częścią mojej pracy licencjackiej. Program będzie analizował zapisy partii szachowych w formacie pgn. Na początku musi zaimportować z pliku/plików tekstowych zapisy partii. Następnie będzie analizował dane pod różnymi aspektami, to znaczy:\npoliczy liczbę zwycięstw, porażek remisów. Może jakiś wykres stworzy względem czasu. Posortuje partie według otwarć szachowych, pokaże jakie otwarcia stosowane są najczęściej przez użytkownika i z jakim skutkiem.\nNa początku chciałbym się zająć importowaniem plików. Udało mi się stworzyć polecenie które importuje jeden plik. Chciałbym żeby importował kilka plików naraz do różnych arkuszy ale w jednym pliku. Powinien nazywać arkusze według nazwy pliku (ewentualnie z numerem jeśli już taka występuje). Zależy mi żeby końcowy kod być czytelny, czyli w razie potrzeby podzielony na funkcje.\nTo jest kod który stworzyłem, umieszczam też plik excel.\nPrivate Sub CommandButtonImportujPlik_Click()\nDim Arkusz, Sciezka, wyraz, Plik As String\n.Title = "Otwórz"\n.Filters.Add "Pliki tekstowe", "*.txt"\n.Filters.Add "Pliki Portable Game Notation", "*.pgn"\nSciezka = varFile\nMsgBox "Wcisnąłeś Cancel"\nPlik = Dir(Sciezka)\nSelection.NumberFormat = "####-##-##"\nwyraz = CzytajCiagZnakow\nIf wyraz = "Event" Then\nRange("A1").Offset(i, j) = wyraz\nMsgBox ("Zakończono importowanie pliku")\nFunction CzytajCiagZnakow() As String\nDim CiagZnakow, Znak, Znak1 As String\nCiagZnakow = ""\nDo Until Znak1 = " " Or Znak1 = Chr(13) Or EOF(1) = True\nZnak = Input(1, #1)\nZnak1 = Znak\nIf Znak = "[" Or Znak = "]" Or Znak = Chr(34) Or Znak = Chr(13) Or Znak = " " Or Znak = Chr(10) Or Znak = "." Then\nCiagZnakow = CiagZnakow & Znak\nCzytajCiagZnakow = CiagZnakow\nFunction createNewSheet(nazwa As String) As Worksheet\nDim Skoroszyt As Workbook\nSet Skoroszyt = Application.Workbooks.Add()\nFor Each Arkusz In Skoroszyt.Worksheets\nIf Arkusz.Name = "Arkusz1" Then\nArkusz.Name = nazwa\nSet createNewSheet = Skoroszyt.Worksheets(nazwa)\nProszę o jakieś poprawki, sugestie jak dalej tworzyć ten program. W razie potrzeby podam więcej szczegółów. Dołączam też przykładowy plik z zapisem partii.\nPliki.rar Download (409.21 KB)\n#2 25 May 2010 12:50\nJeżeli oczekuje kolega jakiejkolwiek pomocy, to proszę usunąć pobieranie punktów za zamieszczony plik.\n#3 25 May 2010 14:11\nPopieram mojego poprzednika. To trochę dziwne podejście to tematu "Oczekuję od was pomocy ale mi za nią zapłaćcie".\nJeżeli zaś chodzi o otwieranie\nNa początku chciałbym się zająć importowaniem plików. Udało mi się stworzyć polecenie które importuje jeden plik. Chciałbym żeby importował kilka plików naraz do różnych arkuszy ale w jednym pliku.\nsugeruję rezygnację z dialogu i otwieranie plików w pętli za pomocą:\n#4 25 May 2010 16:01\nPrzepraszam nie dopatrzyłem z tymi punktami. Rozumiem że jeśli chodzi o otwieranie wielu plików z fDialog będzie problem, jeśli skorzystam z Workbooks.Open FileName:="" to będę musiał podawać ścieżki do plików. Pytanie jak będzie wygodniej dla użytkownika? Będzie otwierane co najwyżej kilka plików.\n#5 25 May 2010 16:25\nHej, skoro ta ma być praca licencjacka, to ja bym zaczął od:\nApplication.ScreenUpdating = False (na początku)\ni Application.ScreenUpdating = True (na końcu i przed każdym Exit Sub)\nApplication.Calculation = xlCalculationManual (na początku)\ni Application.Calculation = xlCalculationAutomatic (na końcu i przed każdym Exit Sub)\nPrzyspieszy pracę i użytkownikowi nie będzie "migać" przed oczami.\nOprócz tego dodałbym jakąś obsługę błędów: proste\nOn Error goto myErr (na początku)\ni przed End Sub coś w stylu:\nMsgBox Err.Description, vbCritical, "Błąd podczas obliczeń"\nIf Application.Calculation <> xlCalculationAutomatic Then Application.Calculation = xlCalculationAutomatic\nżeby jak Ci się program wywali w czasie prezentacji użytkownik dostał ładny komunikat a nie wszedł w tryb debugowania.\nZwróć też uwagę na przejrzystość kodu - prawdopodobnie Twój promotor będzie chciał go przeanalizować.\nWarto rozdzielać kod, np. nową funkcję, pojedynczym enterem, kod będzie czytelniejszy. Kwestią własnego stylu jest też rozdzielanie pojedynczym enterem poszczególnych sekcji kodu, ja np. jeżeli w funkcji mam 5 linijek wykonujących razem jakąś "akcję" rozdzielam ten blok enterem przed i po (z komentarzem co on robi), ale to jak mówię zależy od tego czy Ci z tym wygodnie...\n#6 25 May 2010 19:38\nUporałem się z importowaniem plików. Wstępnie wygląda to tak:\nDim Sciezka() As String\nReDim Preserve Sciezka(i)\nSciezka(i) = varFile\nPlik = Dir(Sciezka(j))\nMsgBox ("Zakończono importowanie pliku/ów")\nSub ImportujPlik(Plik As String)\nSub UtworzArkusz(Nazwa As String)\nNowaNazwa = Nazwa\nDo While Worksheet_Exists(NowaNazwa) = True\nNowaNazwa = Nazwa + Str(i)\nActiveSheet.Name = NowaNazwa\nFunction Worksheet_Exists(WorksheetName) As Boolean\nSet x = Worksheets(WorksheetName)\nWorksheet_Exists = True\nWorksheet_Exists = False\nProszę o jakieś sugestie, co można uprościć w kodzie lub czego brakuje.\nW załączniku nowy plik źródłowy\nPliki.rar Download (367.61 KB)\n#7 25 May 2010 21:57\nTak na szybko co mi się w oczy rzuciło:\n- jeszcze przed MsgBox "Wcisnąłeś Cancel" gdy wychodzisz z procedury warto przywrócić odświeżanie i automatyczne kalkulacje. Może warto je wrzucić do osobnej procedury, albo nie wychodzić Exit Sub, tylko ustawić np. zmienną boolowską "jest = False", a fragment kodu poniżej End With i komunikat "Wcisnąłeś cancel" uzależnić od jej stanu?\n- Jeżeli chodzi o uproszczenie - skoro chcesz wczytywać kilka plików jednocześnie może zamiast kombinowania z tablicą plików warto od razu odpalać funkcję importu pliku? Tablicy i tak później nie wykorzystujesz:\nGdyby Ci "wisiało" okno dialogowe, daj DoEvents po if .Show\n-polecenie Cell.Select coś nie działa - albo zrób ActiveSheet.Cells.Select albo, jeszcze lepiej, po utworzeniu nowego arkusza ustaw na niego zmienną:np. Set wsnowy = ThisWorkbook.Worksheets(nazwa), i dalej rób: wsnowy.Cells.Select\n- unikaj zbędnych .Select, tak jak w przykładzie wyżej: zamiast pisać\nColumns("F:F").NumberFormat = "####-##-##"\nBędzie szybciej i poprawniej\n#8 26 May 2010 09:36\nPo sugerowanych poprawkach kod wygląda następująco:\nKoniecOperacji ("Zakończono importowanie")\nKoniecOperacji ("Anulowano importowanie")\nActiveSheet.Columns("F:F").NumberFormat = "####-##-##"\nDo While WorksheetExists(NowaNazwa) = True\nFunction WorksheetExists(WorksheetName) As Boolean\nFunction KoniecOperacji(Komunikat As String)\nProszę o ewentualne jeszcze poprawki.\nJak stworzę coś więcej to napiszę.\nPliki.rar Download (1.35 MB)\n#9 26 May 2010 09:58\nmożna zbić w jedną linijkę. Unikaj robienia SELECT kiedy nie musisz, poczytaj o tym tutaj, #TIP5: Link\nDomyślnie nagrywając makro excel wstawia wszędzie ten select, robi Range(xxx).Select a dopiero później robi Selection.<akcja>, w praktyce 90% z nich można uniknąć i połączyć w Range(xxx).<akcja>\nFunkcja WorksheetExists działa, ale w zasadzie powoduje wystąpienie błędu (wyjątku) i na tej podstawia ustala czy arkusz jest otwarty... Niby dobrze, ale tak jakoś nieprogramistycznie\nW dodatku ustawiasz zmianną x = Set ..., ale jej potem nie zwalniasz z pamięci: Set x = Nothing.\nif ws.Name = WorksheetName then\nPS. MsgBox może wyglądać ładniej\n, z własnego doświadczenia powiem że - przynajmniej na uczelni - 50% wpływu na ocenę programu ma ładny interfejs ;P\nMsgBox "Obliczenia zakończone", vbInformation, "Koniec"\n#10 26 May 2010 11:46\nDziękuję za uwagi, oto wersja po poprawkach. Moje pytanie.\nCzy po każdym wywołaniu rozkazu Set należało zwolnić pamięć?\nCzy w tym wypadku też:\nA oto kod źródłowy:\nRange("A1").Columns("F:F").NumberFormat = "####-##-##"\nFunction WorksheetExists(WorksheetName As String) As Boolean\nMsgBox Komunikat, vbInformation, "Koniec"\nMam problem z funkcją która będzie zwracała tablicę z nazwami arkuszy.\nFunction CzytajArkusze() As Variant\nCzytajArkusze = Array(i)\nReDim Preserve CzytajArkusze(i)\nCzytajArkusze(i) = ws.Name\nPróbuje na różne sposoby ale zawsze jakiś błąd zgłasza.\nJeszcze jedno pytanie. Czy funkcje które nie zwracają wartości np.\nNależało by przekształcić na procedury Sub?\n#11 26 May 2010 12:12\nPrawdę powiedziawszy nie jestem do końca pewien, może ktoś inny wie lepiej:)\nWg źródeł na necie, np. tego lub tego - ustawienie Set x = nothing zwalnia zasoby i pamięć przydzieloną do obiektu. Ja w praktyce rzadko to stosuję, jedynie do niektórych obiektów używanych więcej niż raz, dla FileDialog może bym i nie stosował bo wywołujesz go tylko raz w całym kodzie, ale już przypisanie Set x = Worksheets(WorksheetName) wykonujesz wielokrotnie w pętli, tam, przy większe ilości arkuszy - jeżeli faktycznie pamięć nie jest zwalniania - może to być problemem, więc lepiej nie ryzykować ;P\nJeżeli chodzi o drugie, to operacja rozszerzenia tablicy na pewno jest bardziej czasochłonna niż utworzenie tablicy raz. W końcu znasz ilość arkuszy. Spróbuj coś takiego:\nReDim tabl(1 To ThisWorkbook.Worksheets.Count)   'ustalasz tablicę jeden raz\ntabl(i) = ws.Name\nCzytajArkusze = tabl\nMoesz też zadeklarować tablicę: Private tabl() as String na początku całego kodu, wtedy działasz na zmiennej widocznej w całym zakresie i nie musisz niczego przekazywać jako wyniku funkcji, wtedy możesz zmienić ją na procedurę.\nI tak, funkcje które nie zwracają wartości należało by przekształcić na procedury Sub.\n#12 28 May 2010 16:39\nWitam. Udało mi się stworzyć część analizującą dane. Na razie na pewno zawiera jeszcze dużo błędów. Roboczo dodałem pytanie o ilość analizowanych debiutów ponieważ strasznie długo to trwa. Analiza wszystkich pewnie potrwała by koło godziny. Proszę o dalsze sugestie, poprawki. Oto kod:\nRange("A1").Columns("F:F").NumberFormat = "####-##-##" 'nie działa na całą kolumnę\nDim CiagZnakow As String, Znak As String, Znak1 As String\nSub KoniecOperacji(Komunikat As String)\nPrivate Sub CommandButtonAnalizuj_Click()\nDim NazwaArkusza As String\nDim nowa(5) As Variant\ni = CzytajArkusze(0)\nMsgBox CzytajArkusze(j + 1)\nIf WorksheetExists(CzytajArkusze(j + 1) + " Analiza") = False Then\nUtworzArkusz (CzytajArkusze(j + 1) + " Analiza")\nStatystyka (CzytajArkusze(j + 1))\nNazwaArkusza = CzytajArkusze(j + 1)\nFor k = 0 To InputBox("Podaj liczbę debiutów do analizy")\nnowa(l) = AnalizujDebiut(k, NazwaArkusza)(l)\nSheets(NazwaArkusza + " Analiza").Activate\nIf nowa(0) <> Empty Then\nRange("A1").Offset(m + 2, 0) = nowa(0)\nRange("A1").Offset(m + 2, 1) = nowa(1) + nowa(2) + nowa(3)\nRange("A1").Offset(m + 2, 2) = nowa(1)\nRange("A1").Offset(m + 2, 3) = nowa(2)\nRange("A1").Offset(m + 2, 4) = nowa(3)\nRange("A1").Offset(m + 2, 5) = (nowa(1) * 100) / (nowa(1) + nowa(2) + nowa(3))\nRange("A1").Offset(m + 2, 6) = nowa(4) / (nowa(1) + nowa(2) + nowa(3))\nRange("A1").Offset(m + 2, 7) = nowa(5) / (nowa(1) + nowa(2) + nowa(3))\n'For l = 0 To 5\n'If nowa(0) <> Empty Then\n'Range("A1").Offset(m + 2, l) = nowa(l)\nReDim tabl(0 To ThisWorkbook.Worksheets.Count)\nIf ws.Name <> "OtwarciaSzachowe" Then\nIf Right(ws.Name, 7) <> "Analiza" Then\ntabl(0) = Str(i - 2)\nFunction AnalizujDebiut(NumerDebiutu As Integer, NazwaArkusza As String) As Variant\nDim i As Byte, j As Long, k As Long, m As Integer, l As Integer\nDim Debiut(45) As String\nDim Partia(5) As Variant\nDim Gracz As String\nDo Until Range("A1").Offset(NumerDebiutu, i) = Empty\nDebiut(i) = Range("A1").Offset(NumerDebiutu, i)\n'j - ilość niepustych wierszy w arkuszu\nIf Not IsEmpty(ActiveSheet.Cells(j, 1)) Then\nActiveSheet.Cells(j, 1) = j\nGracz = Left(NazwaArkusza, Len(NazwaArkusza) - 4)\nFor l = 0 To i - 2\nIf Range("A1").Offset(k, l + 22) = Debiut(l + 2) Then\nIf m = i - 2 Then\nPartia(0) = Debiut(1)\nIf Range("A1").Offset(k, 13) = "1-0" Then\nIf Range("A1").Offset(k, 9) = Gracz Then\nPartia(1) = Partia(1) + 1\nPartia(2) = Partia(2) + 1\nIf Range("A1").Offset(k, 13) = "0-1" Then\nPartia(3) = Partia(3) + 1\nPartia(4) = Partia(4) + Val(Range("A1").Offset(k, 15))\nPartia(5) = Partia(5) + Val(Range("A1").Offset(k, 21))\nPartia(5) = Partia(5) + Val(Range("A1").Offset(k, 19))\nAnalizujDebiut = Partia\nSub Statystyka(NazwaArkusza As String)\nDim Czas As Long, Elo As Long, Wygrane As Long, Remisy As Long, Porazki As Long\nDo Until Range("A1").Offset(i, 1) = Empty\nCzas = Czas + Val(Range("A1").Offset(i, 15))\nIf Range("A1").Offset(i, 9) = Gracz Then\nElo = Elo + Val(Range("A1").Offset(i, 21))\nIf Range("A1").Offset(i, 13) = "1-0" Then\nWygrane = Wygrane + 1\nIf Range("A1").Offset(i, 13) = "0-1" Then\nPorazki = Porazki + 1\nIf Range("A1").Offset(i, 13) = "1/2-1/2" Then\nRemisy = Remisy + 1\nElo = Elo + Val(Range("A1").Offset(i, 19))\nRange("A1").Offset(0, 0) = "Otwarcie szachowe"\nRange("A1").Offset(1, 0) = "Wszystkie partie"\nRange("A1").Offset(0, 1) = "Rozegrane partie"\nRange("A1").Offset(1, 1) = Wygrane + Remisy + Porazki\nRange("A1").Offset(0, 2) = "Wygrane"\nRange("A1").Offset(1, 2) = Wygrane\nRange("A1").Offset(0, 3) = "Porażki"\nRange("A1").Offset(1, 3) = Porazki\nRange("A1").Offset(0, 4) = "Remisy"\nRange("A1").Offset(1, 4) = Remisy\nRange("A1").Offset(0, 5) = "Procent wygranych"\nRange("A1").Offset(1, 5) = (Wygrane * 100) / (Wygrane + Porazki + Remisy)\nRange("A1").Offset(0, 6) = "Średni czas"\nRange("A1").Offset(1, 6) = Czas / (Wygrane + Porazki + Remisy)\nRange("A1").Offset(0, 7) = "Średnie ELO"\nRange("A1").Offset(1, 7) = Elo / (Wygrane + Porazki + Remisy)\nZałączam też plik źródłowy.\nPliki.rar Download (1.81 MB)\n#13 28 May 2010 18:57\nAnaliza trwa godzinę?? Na pewno kod można zoptymalizować, danych nie ma aż tak dużo. Jak dla mnie kilka minut to już by było za dużo.\nTak na szybko (bo kod za długi żeby cały analizować ;P) parę uwag:\n- w przycisku ANALIZUJ znowu zgubiłeś Application.ScreenUpdating =... i Application.Calculation = ... Przez to na pewno wolniej działa. Wyrób sobie dobry nawyk i zaczynaj pisanie kodu dla nowych przycisków od tych linijek na początku i na końcu. Obsługa błędów też mile widziana...\n- Polecam testowanie fragmentów za pomocą debugera i zegarka ze stoperem\nUstawiasz break przed jakimś fragmentem kodu i po, potem F5 dochodzisz do jednego, uruchamiasz stoper i drugi raz F5 - aż się zatrzyma na drugim braeku. W ten sposób ustalisz "wąskie gardła" które należy zoptymalizować.\n- Unikaj powtarzania wywołań funkcji, np. masz 4 wywołania funkcji CzytajArkusze(j + 1). Jakbyś leciał krok po kroku F8 to byś zobaczył, że w każdym z tych miejsc wywołujesz funkcję robiącą to samo.\nWywołaj ją tam gdzie możesz raz, np. przeczytany_arkusz = CzytajArkusze(j + 1), a w pozostałych 3 miejscach odwołuj się do zmiennej przeczytany_arkusz\n- mów do użytkownika\nJa np. odpaliłem Twój program, zwiesił się i teraz nie wiem czy coś liczy, cyz się zawiesił, czy mam go ubić, jak długo może to potrwać?? Pogooglaj o VBA ProgressBar, albo przynajmniej wykorzystaj możliwość pisania do status bar. Może odrobinę spowolni to aplikację, ale użytkownik zyska feedback.\n'gdzieś w pętli, np. for i = 1 to max_ilosc\nApplication.StatusBar = "Obliczanie: " & i & "/" & max_ilosc\n'po wyjściu z pętli:\n- tu niektórzy mogą się ze mną nie zgodzić, ale NIE RÓB tak: Cells.Select, Range("A1"), Columns("F:F") etc. ZAWSZE podawaj do którego KONKRETNIE arkusza chcesz zastosować akcję. Albo pisz: Sheets("Arkusz1").Cells.Select, albo Sheets(plik).Range("A1") albo - to mój ulubiony sposób - zadeklaruj raz, na początku kodu (lub tam gdzie jest to możliwe) arkusz(e):\nSet wsark1 = ThisWorkbook.Worksheets("Arkusz1")\n'a w kodzie używaj\nRaz że jest to czytelniejsze (od razu wiadomo na którym arkuszu kod działa), to zabezpieczasz się przed przypadkami kiedy aktywując inne arkusz makro zaczyna działać na tym aktywowanym zamiast na starym. O dziwo ;-], magiczne: ActiveSheet.Columns("F:F").NumberFormat = "####-##-##" działa na całą kolumnę...\n- nie podoba mi się fragment czytający plik znak po znaku. Przerób kod tak, żeby zamiast czytać po jednym znaku:\nwczytał całą linijkę:\nInput #1, linia\ni potem działaj na wartości linii wczytanej do pamięci.\nPolecenia które mogą Ci się przydać:\nLen(linia)   'ilość znaków w zmiennej linia\nleft(linia, 3)   'trzy pierwsze znaki zmiennej linia\nright(linia, 5)   '5 ostatnich znaków zmiennej linia\nmid(linia, 3, 2)   'znaki od 3 do 5 zmiennej linia\nInStr(linia, "ala")    'zwraca pozycję wyrazu ala w zmiennej linia lub 0 gdy nie występuje\n- tam gdzie masz wczytane kody ruchów oddzielone spacjami zastosuj "magiczną" funkcję Split(), która potrafi rozbić ciąg znaków na tablice wg określonego delimitera: czary-mary i mamy:\nnapis = "Ala ma kota i psa"\narr = Split(napis)\nMożesz chcieć skakać np. co 3 element w tablicy, wtedy:\nmax_tabl = UBound(arr)   'górny wymiar tablicy\nFor i = 1 to max_tabl Step 3\n- unikaj kilku zmiennych If które sprawdzają po sobie to samo, np. fragment:\nalbo zagnieźdź jedne ify w drugich, albo najlepiej wykorzystaj instrukcję warunkową select:\nSelect Case Range("A1").Offset(i, 13)\nInstrukcji Select możesz też użyć przy czytaniu linii do ustalenia, co za typ danych zawierają (event, round, date etc., wystarczy przeczytać kilka poczatkowych znaków i na nich sprawdzać czy psuja do wzorca).\n- wyrażenia typu nowa(4) / (nowa(1) + nowa(2) + nowa(3)): jak już dzielisz przez coś to upewnij się, że to nie będzie zerem\nSzybkie i pewne? Polecam:\nj = ActiveSheet.Range("B65536").End(xlUp).Row   'w zasadzie wyszukuje ostatnią niepustą komórkę w kolumnie B\nW ogóle tam gdzie tylko przeglądasz zakres unikaj For ... To, zrób to na For Each .. For Each jest naprawdę masakrycznie szybsze\nSporo tego, ale jak przeanalizujesz dokładnie co napisałem i zastosujesz w swoim kodzie, powinno się polepszyć\nWprowadź poprawki tak, żeby kod działał, to ewentualnie poszukamy dalszych ulepszeń...\n#14 31 May 2010 14:23\nZrobiłem kilka poprawek ale zawiesiłem się na kontrolce Progress Bar. Nie wiem jak to ugryźć. Przejrzałem trochę informacji na ten temat ale nie znalazłem rozwiązania. Proszę o jakąś wskazówkę.\nIf WorksheetExists(NazwaArkusza + " Analiza") = False Then\nUtworzArkusz (NazwaArkusza + " Analiza")\nn = InputBox("Podaj liczbę debiutów do analizy")\nProgressBar.ProgressBar1.Max = n\nProgressBar.ProgressBar1.Value = 0\nProgressBar.ProgressBar1.Visible = True\nProgressBar.ProgressBar1.Value = k\nZeszyt1.rar Download (732.12 KB)\n#15 31 May 2010 15:21\nPo pierwsze - musisz jakoś pokazywać formę Chess.\nWstaw sobie np. button, który będzie otwierał tą formę z parametrem vbModeless:\nPo drugie - jak chcesz wyświetlić formę ProgressBar, musisz ją wywołać tak samo:\n- ważny jest parametr, ponieważ zwykłe Show() otwiera formę i czeka z wykonywaniem kodu aż użytkownik ją zamknie. To właśnie się działo u Ciebie.\nDalej: jeżeli robisz DoEvents, nie musisz robić ProgressBar.ProgressBar1.Refresh, zaoszczędzisz trochę czasu przy przerysowywaniu formy. ProgressBar.ProgressBar1.Visible = True jest zbędny.\nkiedy chcesz zamknąć formę z paskiem postępu, wstawiasz (np. przed Exit Sub) Unload ProgressBar (albo ProgressBar.Hide() żeby tylko ukryć).\nSwoją drogą, skoro masz już formę z przyciskami może warto tam wrzucić pasek postępu, po co Ci dodatkowa forma??\nPS. W funkcji CzytajArkusze() miałeś zadeklarowaną tab1 zamiast tabl, przez co się kod wywalał ;P\n#16 01 Jun 2010 09:49\nDodałem pasek postępu narazie tylko do przycisku Analizuj. Mam pytanie odnośnie tego fragmentu kodu:\nRozumiem że funkcja AnalizujDebiut jest wywoływana 5 razy. Zwraca ona tablicę plików. Czy mogę tą tablicę przypisać od razu do zmiennej bez użycia pętli? Czy jedynym wyjściem będzie zadeklarowanie publicznej tablicy?\nDołączam nowy plik źródłowy\nZeszyt1.rar Download (725.73 KB)\n#17 01 Jun 2010 10:28\nzwraca tablicę, to możesz zrobić coś takiego:\nDim nowa as Variant\nnowa = AnalizujDebiut(k, NazwaArkusza)\nWtedy w zmiennej nowa będzie zwrócona tablica\n#18 01 Jun 2010 10:54\nPrzy próbie przypisania w ten sposób:\nCan't assign to array\nDobra rozgryzłem to. Cały czas miałem zmienną nowa zadeklarowaną jako tablice. Program teraz przyspieszył znacząco:)\n#19 02 Jun 2010 16:12\nPopracowałem trochę nad programem. Działa już znacznie szybciej. Mam problem chcę aby program wypisywał do TextBox'a komunikaty, za każdym razem do nowej linii. Część komunikatów będzie jednak odświeżana np komunikat o postępie.\nKod obecnie wygląda następująco:\nTextBox1.Text = TextBox1.Text & vbCrLf & Komunikat\nTextBox1.Text = TextBox1.Text & "Rozpoczęto analizę" & vbCrLf\nDim NazwaArkusza As Variant\nDim i As Integer, j As Integer, k As Long, l As Byte, m As Integer\nNazwaArkusza = CzytajArkusze\ni = NazwaArkusza(0)\nIf WorksheetExists(NazwaArkusza(j + 1) + " Analiza") = False Then\nUtworzArkusz (NazwaArkusza(j + 1) + " Analiza")\nStatystyka (NazwaArkusza(j + 1))\nProgressBar1.Max = 2725\nFor k = 0 To 2725\nTextBox1.Text = TextBox1.Text & "Twra analizowanie pliku " + NazwaArkusza(j + 1) + ". Ukończono " + Str(Int(k / 27.25)) + " %"\nnowa = AnalizujDebiut(k, NazwaArkusza(j + 1))\nSheets(NazwaArkusza(j + 1) + " Analiza").Activate\nIf (nowa(1) + nowa(2) + nowa(3)) > 0 Then\nRange("A1").Offset(m + 2, 5) = Int((nowa(1) * 100) / (nowa(1) + nowa(2) + nowa(3)))\nRange("A1").Offset(m + 2, 6) = Int(nowa(4) / (nowa(1) + nowa(2) + nowa(3)))\nRange("A1").Offset(m + 2, 7) = Int(nowa(5) / (nowa(1) + nowa(2) + nowa(3)))\nLabel1 = Empty\nKoniecOperacji ("Zakończono analizę arkusza " + NazwaArkusza(j + 1))\nFunction AnalizujDebiut(NumerDebiutu As Long, NazwaArkusza As Variant) As Variant\nDim Partia(6) As Variant\ni = Range("A1").Offset(NumerDebiutu, 45).End(xlToLeft).Column\nDebiut(l) = Range("A1").Offset(NumerDebiutu, l)\nj = ActiveSheet.Range("A65536").End(xlUp).Row\nFor l = 0 To i - 3\nSelect Case Range("A1").Offset(k, 13)\nDim Partia(4) As Long\nPartia(3) = Partia(3) + Val(Range("A1").Offset(i, 15))\nPartia(4) = Partia(4) + Val(Range("A1").Offset(i, 21))\nPartia(0) = Partia(0) + 1\nPartia(4) = Partia(4) + Val(Range("A1").Offset(i, 19))\nRange("A1").Offset(1, 1) = Partia(0) + Partia(2) + Partia(1)\nRange("A1").Offset(1, 2) = Partia(0)\nRange("A1").Offset(1, 3) = Partia(1)\nRange("A1").Offset(1, 4) = Partia(2)\nIf Partia(0) + Partia(1) + Partia(2) > 0 Then\nRange("A1").Offset(1, 5) = Int((Partia(0) * 100) / (Partia(0) + Partia(1) + Partia(2)))\nRange("A1").Offset(1, 6) = Int(Partia(3) / (Partia(0) + Partia(1) + Partia(2)))\nRange("A1").Offset(1, 7) = Int(Partia(4) / (Partia(0) + Partia(1) + Partia(2)))\nDołączam plik źródłowy\nZeszyt1.rar Download (742.02 KB)\n#20 02 Jun 2010 18:18\nNo to korepetycji ciąg dalszy\n1. Tak mi się jeszcze rzuciło w oczy: polecenie\nto Range("A1") z przodu chyba niepotrzebne?\n2. Pewnie zauważyłeś, że w pętli po każdym DoEvents denerwująco miga kursor (z klepsydry na moment zmienia się w normalny i po chwili z powrotem)? Możesz przed wejściem do pętli ustawić go na stałe poleceniem:\n, a po wyjściu z pętli przywrócić go do normalnej postaci poleceniem\nZłe wieści to takie, że jeżeli aplikacja np. wyrzuci błąd albo wyjdziesz z niej przed przywróceniem normalnego kursora, pozostanie klepsydra - więc w każdym miejscu kodu do którego może wyjść pętla należałoby wstawić to przywracanie.\n3. Powyższego problemu unikniesz, jeśli zamiast DoEvents będziesz stosował Repaint, jednak wtedy forma pozostanie "głucha" na wszelkie próby jej zamknięcia, przesunięcia etc.\n4. Moim zdaniem robisz DoEvents stanowczo za często, pętle która zajmuje 2725x wykonuje to polecenia tyleż samo. Moja propozycja rozwiązania tego problemu (+opisanego przez Ciebie) jest następująca:\nDim tekst_poczatkowy As String\nDim postep_procent As Integer\nDim poprzedni_procent As Integer\ntekst_poczatkowy = TextBox1.Text   'przed wejściem w pętlę zapisujemy bieżący stan textboxa\npostep_procent = k / 27.25\nIf postep_procent <> poprzedni_procent Then\npoprzedni_procent = postep_procent\nTextBox1.Text = tekst_poczatkowy & "Trwa analizowanie pliku " & NazwaArkusza(j + 1) & ". Ukończono " & CStr(postep_procent) & " %"\nCzyli wykonujesz analizę dla każdego k z pętli, jednak update textboxa robisz jedynie wtedy kiedy jest konieczny (przy zmianie procentu na nowy). Mignie kursora jest mniej denerwujące a i program niepotrzebnie nie przepisuje tej samej treści co kilka razy (to samo dotyczy update'u progressbara)\n5. Wskazówka: nie rób czegoś takiego:\nWykonujesz to kilkaset razy w ciągu pętli, a polecenie Activate jest dosyć czasochłonne.\n'przed wejściem w pętlę For k = 0 To 2725\nSet wstmp = ThisWorkbook.Worksheets(CStr(NazwaArkusza(j + 1) & " Analiza"))\n'i przed każdym Range(".....) zrób coś podobnego:\nwstmp.Range("A1").Offset(m + 2, 0) = nowa(0)\nI nie stosuj jak nie musisz tego Offset(...). Jeżeli chcesz coś zapisać do arkusza do komórki w wierszu 5, w kolumnie 10, piszesz:\nCells(5, 10) = ...\nJeżeli do komórki w wierszy m+2, w kolumnie 1 arkusza wstmp:\nwstmp.Cells(m+2, 1) =\nStosując offset excel musi każdorazowo dodatkowo "w tle" przeliczyć przesunięcie względem komórki pierwotnej (w Twoim przypadku A1) o x wierszy w lewo i y kolumn w prawo. Na pewno zajmuje mu to więcej czasu, niż kiedy od razu mu podasz, w którą komórkę chcesz coś wpisać / odczytać używając Cells().\n#21 02 Jun 2010 23:39\nKolego mateo786, proszę nie wklejać po 10 razy tego samego kodu do postu. Wystarczy załącznik plus ewentualnie opis/ilustracja zmian lub pokolorowany diff.\n#22 04 Jun 2010 12:14\nMam problem z procedurą CzytajCiagZnakow.\nFunction CzytajCiagZnakow() As Variant\nDim Wyraz As Variant\nDim TabLinia As Variant\nDim TabWyrazy() As String\nWyraz = ""\nTabLinia = Split(Linia)\nFor Each Wyraz In TabLinia\nTabWyrazy(i) = Wyraz\n'usuwanie znaków ".\nReDim Preserve TabWyrazy(j + 1)\nCzytajCiagZnakow = TabWyrazy\nPróbuję przerobić tą procedurę według podanych wskazówek. Ale mam problem.\nNie działa mi chyba warunek EOF(1)=true.\nDruga sprawa do nie wiem jak najlepiej będzie usuwać pewne znaki z wyrazu.\nZałączam plik źródłowy.\nZeszyt1.rar Download (750.67 KB)\nZeszyt1.rar Download (743.12 KB)\n#23 04 Jun 2010 15:25\nPomyliłem załączniki. Dołączam prawidłowy plik.\nZ pierwszym problemem sobie poradziłem. Zostało tylko usuwanie znaków z wyrazów.\n#24 04 Jun 2010 17:21\nOd usuwania znaków jest funkcja Replace(), np.\nwynik = Replace("Ala ma kota", "kota", "psa")\nda wynik = "Ala ma psa". Użyj dwa razy zamieniając [ i ] na pusty ciąg.\nJeżeli chcesz zastąpić tylko we fragmencie, to funkcja ma opcjonalne parametry "start od pozycji..." oraz "ilość zastąpień". W razie czego wygooglaj szcegóły.\n#25 05 Jun 2010 13:27\nPo proponowanych zmianach program wygląda tak. Proszę o ewentualne wskazówki dotyczące funkcjonalności, poprawności kodu. Zastanawiam się jeszcze nad funkcją która automatycznie dopasowywała by szerokość komórek w arkuszu, tylko nie wiem w jaki sposób najlepiej to rozwiązać.\nW załączniku plik źródłowy.\nZeszyt1.rar Download (277.59 KB)\n#26 05 Jun 2010 15:44\n- Ja bym jeszcze dodał polecenie\nJeżeli wystąpi błąd w trakcie wczytywania, excel lubi zostawić zablokowany plik tekstowy, skutkiem czego kolejna próba wczytania się nie powiedzie. Próba zamknięcia przed otwarciem zapobiegnie temu.\nFor Each Wyraz In TabWyrazow\nWsTmp.Cells(i, j) = TabWyrazow(k)\nniepotrzebnie używasz k i TabWyrazow(k). Skoro robisz For Each Wyraz ... , to zamiast pisać TabWyrazow(k) pisz: Wyraz. Właśnie do tego służy ta pętla, żeby się potem nie odwoływać do tablicy po indeksie\n- Ja używam Excela 2003 z obsługą 255 kolumn, a Ty widzę masz wersję 2007, i wywala mi błąd gdyż funkcja importu rozbija na więcej niż 255 kolumn (np. 3 zapis w pliku mateo...). Jeżeli nie jest to przeszkodą, to OK. W przeciwnym razie musiałbyś pomyśleć o innej metodzie analizy danych (może wpisywać po 2-3 ruchy do każdej komórki?), a szkoda bo już masz spory kawałek kodu na tym oparty...\n- Przyczepił bym się jednak jeszcze do tego algorytmu\nPopatrz: każdy ruch zapisujesz w 3 komórkach (oznaczyłem je ), np. \t[e4]\t[g6]\nPrzypuszczam że 1 - to kolejny ruch, e4 - pozycja początkowa figury, g6 - pozycja końcowa. Czemu nie zapisać tego w w jednej komórce? np. [1 e4 g6], a może wprost: [1e4g6]\nCo więcej - ten fragment kodu analizy:\nIf WsTmp.Cells(k, l + 23) = Debiut(l + 2) Then\nPrzypuszczam że to on odpowiada za to, że program tak długo liczy.\nKręcisz się po tych pętlach wielokrotnie, dokonujesz mnóstwa niepotrzebnych porównań.\nPopatrz, chcesz analizować otwarcia, czyli pierwszych x ruchów. Gdybyś zmienił formę zapisu i zapisał każde otwarcie jako ciąg znaków w jednej komórce albo - tylko jeden raz - przepisał je jako połączone wyrazy do tablicy stringów złączając je w zmiennej typu string znaczkiem &, wtedy de facto interesuje Cię tylko porównywanie x znaków od lewej strony.\nŻebyś mnie dobrze zrozumiał: jeżeli zapiszesz, np. w tablicy, partię jako pojedynczy ciąg znaków (zwykły for... po kolumnach i złączanie znaczkiem &):\ntabl_partii(1) = "1 e4 g6 2 d4 Bg7 3 e5 h6 4 Nf3 e6 5 Bc4 c6 6 Nc3 Ne7 7 Be3 O-O 8 Qd2 g5 9 h4 Nf5 10 hxg5 Nxe3 11 Qxe3 hxg5 12 Nxg5 d5 13 Qh3 Re8"\ni tak dla wszystkich np. 572 rozegrań,\na otwarcia zapiszesz analogicznie do drugiej tablicy, np. trójwymiarowej stringów:\nDim tabl_otwarc(1 To 2726, 1 to 3) as String\ntabl_otwarc(1, 1) = "A00"\ntabl_otwarc(1, 2) = "Polish Gambit, Anderssen's Opening"\ntabl_otwarc(1, 3)  = "1 a3 a5 2 b4"\nto potem wykonujesz porównanie obu tablic tylko jeden raz, konkretnie: tablicy otwarc i x pierwszych znaków w tablicy partii, czyli:\nmax_arr = UBound(tabl_otwarc)\nfor w = 1 to max_arr\ndlugosc = len(tabl_otwarc(w, 3))\nfor each partia in tabl_partii\nif (len(partia) >= dlugosc) And (left(partia, dlugosc) = tabl_otwarc(w, 3)) then    'porównujesz tylko początek partii, może warto len(partia) wyliczyć raz i zapisać jako drugi wymiar tablicy?\n'tu robisz coś, np. zwiększasz o jeden jakiś licznik rozpoczętych tak partii\nSpróbuj wdrożyć tą ostatnią poprawkę a zobaczysz, że program przyspieszy niemiłosiernie\n#27 06 Jun 2010 10:38\nWyjaśniam trochę kwestii.\nKorzystam z Office 2010. I raczej nie zależy mi na kompatybilności.\nPopatrz: każdy ruch zapisujesz w 3 komórkach (oznaczyłem je ), np.  [e4] [g6]\nNiestety to są dwa ruchy, ruch białych i czarnych. Nie ma pozycji początkowej jest tylko pozycja końcowa. Ruch wynika z sytuacji na szachownicy. Musi być to rozdzielone gdyż czasami analizowany jest tylko pierwszy ruch. Lepszym rozwiązaniem będzie proponowane na końcu postu.\nJak dla mnie to program już działa w miarę szybko, analiza jednego arkusza trwa około minuty. Czas jest więc już do przyjęcia.\nJeśli chodzi o podany fragment to zmienię nazwy zmiennych i , j. Bo właściwie to ilość kolumn albo wierszy. Powinno być to wtedy bardziej czytelne.\nOstatnie proponowane rozwiązanie powinno znacznie przyspieszyć wykonywanie kodu. Zapisanie wszystkich ruchów w jednej komórce może być problemem ze względu na ilość znaków. Natomiast przepisanie znaków do jednej tablicy będzie chyba dobrym rozwiązaniem.\nDzięki za sugestie. Po poprawieniu napiszę jakie rezultaty dały te zmiany.\n#28 14 Jun 2010 19:06\nMoim zdaniem dobrym nawykiem jest pomijanie jakichkolwiek nazw zmiennych po next\nzamiast "next i" piszemy next.\n#29 14 Jun 2010 19:16\nAkurat z tym się nie zgodzę ze względu na czytelność kodu. Bardziej czytelne jest pisanie wg mnie "Next i", ponieważ jeden rzut oka na kod i od razu wiadomo jaką zmienną inkrementujemy. Widać to zwłaszcza przy kilku zagnieżdżonych For'ach oraz przy długim kodzie, gdzie łatwo ustalić koniec pętli Next <zmienna> właśnie...\nSimilar topics to [VBA][Excel] Analiza zapisów partii szachowych\nWitam serdecznie, Próbuje sie uporać z pewnym problemem i nie mogę sobie dać rady, dlatego że nigdy wcześniej nie miałem styczności z MaKRAMI w Exc... (1)


Budowanie parków rozrywki | Park Trampolin\nStrona główna . Oferta . Budowanie parków rozrywki\nWersja graficzna oferty\nWybierz rodzaj strefy, która Cię interesuje aby uzyskać więcej informacji o samych atrakcjach, które mogą się w niej znajdować. Możesz też przejść do wersji opisowej oferty, klikając obok.\n340,87 KB OWG 270,06 KB TABELA EPG\nPrzyszłość parków rozrywki, to również interakcja. Atrakcje dające możliwość rywalizacji z wykorzystaniem technologii.\nStrefa sal zabaw\nStrefy dla najmłodszych przede wszystkim zwiększają bezpieczeństwo, poprzez dostosowanie atrakcji do wieku i możliwości fizycznych Klienta.\nStrefa zjazdów i podbiegów\nRóżnego rodzaju zjazdy, ślizgi czy podbiegi to jedne z najbardziej atrakcyjnych stref w każdym parku rozrywki.\nTrampoliny to niezwykła atrakcja naszych czasów. Wciąż daje dużo możliwości i masę zabawy.\nStrefa basenów i poduszek powietrznych\nStrefa bezpiecznego lądowania to jedna z kluczowych i za razem wrażliwszych pod kątem bezpieczeństwa atrakcji w obiektach.\nStrefa sportowa, gimnastyka i akrobatyka\nStrefy sportowe są profesjonalną stroną atrakcji w biznesie.\nStrefa torów przeszkód, konstrukcji workout\nStrefy różnorodnych torów przeszkód o zróżnicowanym stopniu trudności.\nStrefa treningowa, fitness i sporty walki\nStrefa do treningu czy zajęć indywidualnych.\nWersja opisowa oferty\nCardio Wall Trampoline Points Duo\nInteraktywny zestaw dwóch trampolin ze ścianką na której montowane są czujniki dotykowe oraz tablica wskazująca wyniki, która jest również dotykowym panelem sterującym. Wbudowane 12 różnych gier, umożliwia zabawę dla jednego gracza, dwóch lub całej drużyny. Bardzo dużym atutem całego sprzętu jest brak okablowania co oznacza, że czujniki działają bezprzewodowo i możemy zamontować je na przestrzeni do 5m od siebie w każdą stronę co daje bardzo dużo ciekawych możliwości wykorzystania samego kompletu.\ndostępna wersja do zastosowań wewnętrznych tj. obiekcie zamkniętym jak i zewnętrznych tj. odporna na warunki atmosferyczne\n10x czujnik dotykowy + 1x tablica wyników wraz z panelem sterującym\noptymalne wymiary przestrzeni 5m x 2,5m x wys. 4m\nCardio Climbing Wall Points Duo\nInteraktywny zestaw ścianki wspinaczkowej na której montowane są czujniki dotykowe oraz tablica wskazująca wyniki, która jest również dotykowym panelem sterującym. Wbudowane 12 różnych gier, umożliwia zabawę dla jednego gracza, dwóch lub całej drużyny. Bardzo dużym atutem całego sprzętu jest brak okablowania co oznacza, że czujniki działają bezprzewodowo i możemy zamontować je na przestrzeni do 5m od siebie w każdą stronę co daje bardzo dużo ciekawych możliwości wykorzystania samego kompletu.\noptymalne wymiary przestrzeni 5m x 3m x wys. 4m\nTubbing Slide - Zjeżdżalnia Pontonowa\nZjeżdżalnia pontonowa to jedna z ciekawszych atrakcji dla dzieci. Dmuchany ponton do którego wsiadamy daje poczucie bezpieczeństwa i komfortu podczas zjazdu. Dedykowane do obiektów o większych gabarytach ze względu na dość dużą powierzchnię jaką potrzebują. Zjeżdżalnie mogą być zakończone płaskim hamowaniem lub wyskocznią np. na poduszkę powietrzną.\nminimalne wymagania to 4m wysokości w lokalu\nminimalna szerokość zjeżdżalni (jeden tor) to 3m\nlądowanie z wyhamowaniem to ok. 4-6m powierzchni zakończonej miękkim zderzaczem lub poduszką typu airbag\nTyrolka - zjazd na linie\nZewnętrzna konstrukcja tyrolki tj. zjazdu na linie z uchwytem i siedziskiem. Wymagania co do terenu nie są bardzo restrykcyjne. Teren może mieć spadek o nachyleniu do 20% lub może być płaski.\nDługość zjazdu do 30m.\nWysokość konstrukcji to ok. 3,5m od poziomu powierzchni ziemi.\nStrefa torów przeszkód, konstrukcji workouta\nTor przeszkód Ninja (NOC – Ninja Obstacle Course)\nOd pewnego czasu wraz z nadejściem programów telewizyjnych typu Ninja Warrior oraz wzmagającą się popularnością plenerowych biegów z przeszkodami, obiekty sportowe i rekreacyjne, zaczęły inwestować w atrakcje tego typu. Aby sprostać oczekiwaniom swoich Klienów, zaczęto stawiać konstrukcje uniwersalne – najczęściej z kratownic aluminiowych – które dawały możliwość częstej modyfikacji podwieszanych atrakcji. Początkowo stawiano konstrukcje nad basenami z gąbkami czy poduszkami powietrznymi, obecnie coraz częściej wykorzystuje się strefy miękkich materacy jako asekuracyjne wykończenie strefy. Największe wyzwanie z jakim się spotkano, to nieprawidłowe wykonania konstrukcji, ze względu na brak doświadczeń niektórych firm produkcyjnych w tematyce sportu. Zaczęto stawiać konstrukcje sceniczne kratownic aluminowych lub stali czarnej, które wydawało by się, że skoro potrafią wytrzymać duże obciążenia w branży filmowej czy koncertowej, to sprawdzą się również w branży rozrywkowej. Skutkowało to często niestabilnymi konstrukcjami podczas zabawy czy treningu nawet 1 czy 2 osób na atrakcji. Kluczowym aspektem w takich konstrukcjach jest wzięcie pod uwagę sił dynamicznych, związanych również z ruchem wahadłowym – tj. często atrakcje po prostu się bujają lub powodują drgania – stąd konstrukcje wychodzące spod Naszych skrzydeł, mimo iż przypominają te sceniczne, mają kluczowe zmiany wprowadzone w swojej budowie aby zachować pełną stabilność również podczas dynamicznej pracy.\nkonstrukcja specjalnych kratownic aluminiowych wraz z zabezpieczeniem miękkim każdej z nóg konstrukcji\nrury jako przęsła wraz z obejmami obrotowymi mocującymi do kratownicy\nobejmy z karabińczykami do mocowania atrakcji na przęsłach\nzestawy różnych podwieszanych atrakcji\nasekuracja pod konstrukcją atrakcji do wyboru: materace asekuracyjne, poduszka powietrzna typu airbag, basen z gąbkami\nwybrane zestawy atrakcji spośród dostępnych\nStrefa treningowa, fitness i sportów walki\nZabezpieczenia miękkie ścian stref sportowych\nZabezpieczenia realizujemy z wysokiej jakości, bardzo wytrzymałych materiałów, które posiadają certyfikaty. Dzięki wieloletniemu doświadczeniu, jesteśmy w stanie poradzić sobie również z trudniejszymi przestrzeniami tj. filary nośne budynku, wystające rury lub kaloryfery. Najczęściej realizowane projekty to wykończenia miękkie stref sportowych klubów fitness, judo, MMA ale również sal sportowych czy parków zabaw.\nZabezpieczenia miękkie podłoży\nŚcieżki komunikacji, strefy wokół atrakcji czy podesty wejść na atrakcje, często ze względów bezpieczeństwa bądź estetycznych wymagają dodatkowego miękkiego wykończenia. Stosujemy wtedy najczęściej 2 cm warstwę specjalnej certyfikowanej pianki oraz wierzchnią warstwę wykończenia z materiałów trudnopalnych PVC lub specjalnych wykładzin.\nKształtki miękkie i materace\nStrefy gimnastyczne lub sportowe, często potrzebują dodatkowego sprzętu, dzięki któremu będzie możliwe przeprowadzenie efektywnego treningu indywidualnego, nauczenie podstaw do prawidłowego korzystania z pozostałych atrakcji, zrealizowanie porządnej rozgrzewki czy przeprowadzenie lekcji WF. Dla tego typu potrzeb mamy kilka gotowych sprawdzonych produktów, ale produkujemy również na zamówienie.\nDla treningu fitness przygotowaliśmy kilka gotowych i sprawdzonych produktów, które z powodzeniem mogą stanowić uzupełnienie każdego klubu fitness czy obiektu nastawionego na rekreację czy sport.\nTrampoliny Fitness PRO\nDouble Trampoline Box\nSprzęt i akcesoria do profesjonalnego treningu\nZarówno sport jak i rekreacja wymaga wykorzystania sprzętu pozwalającego na profesjonalny trening z zachowaniem norm bezpieczeństwa i standardów jakości. Trampoliny sportowe cechują się znaczną siłą wybicia co umożliwia wykonywanie powietrznych ewolucji. Nasza oferta skierowana jest do osób, które uprawiają sport lub luźną formę bardzo popularnego treningu wyczynowego typu freestyle, freerun, jump trick i wielu podobnych. Dla zwiększenie komfortu i otwarcia drogi dla osób początkujących proponujemy również warianty trampolin pół-sportowych, które oprócz dobrej siły wybicia zapewniają mniejszą dynamikę treningu. Trampoliny semi-sport doskonale sprawdzają się w treningu gimnastycznym i zgłębianiu podstaw elementów akrobatyki dla osób nie będących zawodnikami sportowymi.\nKształtki gimnastyczne i materace asekuracyjne\nDo prowadzenia zajęć grupowych i treningów indywidualnych bardzo pomocnym rozwiązaniem jest zastosowanie dodatkowej pomocy w formie kształtek i materaców. Profesjonalny trening z wykorzystaniem takich przyrządów zwiększa bezpieczeństwo i ułatwia wypracowanie prawidłowych nawyków praktycznie w każdym aspekcie sportu czy rekreacji. Trenerzy, instruktorzy i nauczyciele od wielu pokoleń korzystają z takich rozwiązań właśnie ze względu na komfort treningu i bardzo ważny aspekt bezpieczeństwa. W ofercie proponujemy nie tylko materace sportowe i asekuracyjne, ale również maty i poduszki. Często produkujemy kształtki pod indywidualne wymagania. Nasze produkty doceniły już domy kultury, szkoły, kluby sportowe i indywidualni klienci, którzy uprawiają np. wspinaczkę w formie bouldering’u.\nBaseny z miękkim wypełnieniem\nKlasyczne baseny wypełniane pianką w postaci niewielkich, miękkich sześcianów są obecnie wizytówką wielu parków trampolin. Takie doły z gąbkami znane były już wcześniej w salach gimnastycznych, gdzie zamiast specjalnych sześcianów używano różnych mniej profesjonalnych wypełnień. Z biegiem czasu takie suche baseny bardzo ciepło zostały przyjęte w świecie rekreacji i animacji. Parki trampolin, kluby gimnastyczne i sale zabaw posiadające taką strefę zapewniają niezapominanie wrażenia zarówno dzieciom jak i dorosłym. Wypełnienie piankowe bardzo dobrze spełnia swoją rolę w przy klastycznych strefach zabawowych, torach przeszkód Ninja lub strefach gladiatorów.\nBasen z amortyzacją w postaci maty trampolinowej\nPrzy budowaniu strefy trampolin sportowych połączonej z basenem ze względu na większą siłę wybicia batutów olimpijskich i siatek gimnastycznych zaleca się zbudowanie głębszych basenów. Takie głębokie doły oprócz miękkiego wypełnienia w postaci sześcianów posiadają wbudowaną matę trampolinową, której zadaniem jest amortyzacja i absorbowanie siły dynamicznej powstałej w wyniku lądowania. Takie rozwiązanie skierowane jest dla obiektów, które chcą w atrakcyjny i bezpieczny sposób oferować możliwość trenowania sportów ekstremalnych takich jak akrobatyka, freerun, trick jump czy jump freestyle.\nPoduszki powietrzne są obecnie uznawane za uniwersalne rozwiązanie zarówno dla osób zaawansowanych jak i tych początkujących. Wypełnienie basenu taką poduszką pozwala na bezpieczną zabawę i trening różnych dyscyplin. Poduszki budowane są w strefach klasycznych trampolin, ramp, trampolin sportowych, trapezach, torach Ninja. Bardzo ważnym aspektem przy budowaniu basenu z poduszką jest poprawne dobranie poduszki, która jest sprzętem specjalistycznym i musi posiadać odpowiednią budowę, spełniać wymagane normy, które nierozłącznie związane są z bezpieczeństwem użytkowników.\nTakie profesjonalne wypełnienie umożliwi wykorzystanie strefy do szerokiego wachlarza wyczynów typowych dla dyscyplin snowboardingu, skateboardingu, wakeboardingu i podobnych. Tak zabezpieczony basen można również zbudować przed rampami jako zakończenie zjazdu pontonowego, rowerowego i rolkowego.\nBezpieczne strefy zabaw i animacji\nW salach zabaw, bawialniach i obiektach aktywnej rozrywki strefy przeznaczone dla młodszych dzieci są bardzo ważną częścią proponowanych przez obiekt atrakcji. Takie miejsca muszą być bezpieczne i odpowiednio dopasowane do wieku dziecka i jego możliwości fizycznych. Obecnie na świecie istnieje wiele rodzajów atrakcji, które można spotkać w parkach trampolin, salach zabaw i parkach rozrywki. Oprócz aspektów bezpieczeństwa, które muszą spełniać odpowiednie normy wykonanie takich atrakcji wiąże się z zastosowaniem atestowanych materiałów. Strefa zabaw pełni rolę miejsca, w którym dzieci muszą czuć się bezpiecznie i swobodnie. Do zabezpieczenia konstrukcji takich jak małpie gaje, tory przeszkód, boiska, areny rekomendujemy używanie miękkich obić wykonanych z atestowanych materiałów łatwych do utrzymania w czystości.\nStrefy zabaw w połączeniu z atrakcjami interaktywnymi\nWiększość dostępnych atrakcji w takich strefach można urozmaicić na wiele sposobów. Jednym z najnowszych trendów docenionych przez dzieci i rodziców są interaktywne dodatki, które oprócz samej zabawy wspierają prawidłowy rozwój dzieci pod względem motoryki, koordynacji i orientacji. Magiczne dywany w strefie malucha, rzutniki interaktywne przy mini ściankach wspinaczkowych, interaktywne punkty umieszczone w torach przeszkód oraz proste gry logiczne są bardzo ciekawą propozycją aktywnego spędzania czasu w odpowiednio zabezpieczonej strefie.\nStrefa płaskich trampolin\nParki trampolin od początku swojej obecności na rynku proponują w swojej ofercie wielostanowiskowe konstrukcje trampolinowe w formie otwartej strefy, z której korzystać można na wiele sposobów. Najczęściej takie strefy umieszczone są w centrum obiektu i składają się z płaskich trampolin o różnych wymiarach.\nUrozmaiceniem strefy centralnej mogą być trampoliny ustawione pod skosem. Przy dopasowaniu takiego rozwiązania ważne jest odpowiednie dobranie wysokości i kąta nachylenia konstrukcji tak, aby spełniała rolę dodatkowej batuty użytkowej. Niestety często w obiektach możemy spotkać niepraktyczne ułożenie takich trampolin co wiąże się ze zmarnowaniem miejsca mogącego być dodatkową atrakcją. Trampoliny skośne mogą być doskonałym uzupełnieniem do ścieżek trampolinowych lub formą zamknięcia areny do gier zespołowych. Przy odpowiednim ustawieniu trampolin skośnych można zbudować ciekawe mniejsze strefy takie jak infinity czy jump basketball.\nArena trampolinowa do gier zespołowych\nTrampoliny ułożone w arenę lub boisko otwierają możliwości prowadzenia gier zespołowych w nowoczesnej formie. Trampolinowa wersja siatkówki lub zbijaka jest ciepło przyjętą formą zabawy zarówno dla dzieci jak i dorosłych.\nTrampoliny klasyczne w połączeniu z innymi atrakcjami\nProjektowanie stref trampolinowych wymaga doświadczenia i znajomości schematów, które sprawdzają się w obiektach mających za zadanie dostarczenie Klientom miejsca do aktywnego, bezpiecznego i atrakcyjnego spędzania czasu. Połączenie klasycznych trampolin z basenami, torami przeszkód, ścianami nabiegowymi oraz sprzętem interaktywnym zapewnia nowoczesną formę rozrywki, do której chętnie wracają Klienci.\nManufacturer of trampoline parks\nSpecjalnością naszej firmy jest tworzenie wyjątkowych konstrukcji, które zapewniają świetną zabawę ich użytkownikom. Wierzymy bowiem, że poprzez sport można rozwijać swoje pasje, a przy tym poprawić kondycję i stan zdrowia. Zajmujemy się budowaniem parków rozrywki stanowiących doskonałe miejsca do spędzania czasu wolnego zarówno przez dzieci, jak i dorosłych. Sale zabaw, tory przeszkód dla dzieci, tubing slide i wiele więcej — budowa tego typu atrakcji to nie tylko nasza praca, ale również ogromna pasja. Właśnie dlatego realizowane przez nas konstrukcje stalowe, tory przeszkód na place zabaw oraz innego rodzaju wyposażenie parków rozrywki cechuje najwyższa jakość, trwałość i przemyślany projekt.\nSale zabaw, tor tubingowy, ścianki wspinaczkowe — producent\nNasze działania wspierają rozwój pasji do sportu, pracę nad kondycją oraz koordynacją ruchową. Ćwiczenia w formie zabawy to doskonały sposób na zachęcenie do aktywności fizycznej nawet tych osób, które nie są jej zwolennikami. Budowanie parków rozrywki to nasza specjalność, dlatego możesz mieć pewność, że współpracując z nami, wybierasz to, co najlepsze. Jako producent parku trampolin tworzymy trampoliny dla dzieci i dorosłych, zjeżdżalnie donat slide, tor przeszkód ninja warrior, kratownice aluminiowe, a także dostarczamy wyposażenie małpiego gaju, sal zabaw, siłowni, klubów sportowych oraz innych obiektów.\nKonstrukcja zabawowa dla dzieci, tor przeszkód ninja warrior i nie tylko\nW naszej firmie tworzymy najwyższej klasy konstrukcje cechujące się wytrzymałością, solidnym wykonaniem, a przede wszystkim bezpieczeństwem użytkowania, co ma szczególnie duże znaczenie w przypadku trampolin, torów przeszkód czy innych konstrukcji zabawowych przeznaczonych dla dzieci. Przestrzegamy wszelkich standardów, a stosowane przez nas materiały posiadają niezbędne atesty i certyfikaty. Zapewniamy kompleksową obsługę inwestycji, a także szkolenia trenerów oraz opiekunów. Zapraszamy do współpracy Klientów zainteresowanych budową parków rozrywki!


Spadkobiercy ustawowi | LexVin\nDla domu Prawo spadkowe\tSpadkobiercy ustawowi\nKrąg spadkobierców ustawowych wyznacza ustawa z dnia 23 kwietnia 1964 r. Kodeks cywilny (Dz. U. z 1964 r. Nr 16, poz. 93 z późn. zm.). Krąg ten określony jest przez związki rodzinne.\nDo kręgu spadkobierców ustawowych należą: małżonek spadkodawcy, jego zstępni, rodzice spadkodawcy, jego rodzeństwo, a także zstępni rodzeństwa.\nNależy podkreślić, iż dziedziczenie krewnych nie ma charakteru wzajemnego. Wynika to z faktu, iż np. wnuki dziedziczą po swoim dziadku, natomiast dziadek nie dziedziczy po swoich wnukach. Kodeks cywilny wyłączył od dziedziczenia ustawowego dalszych wstępnych niż rodzice spadkodawcy (art. 932 § 1 k.c.).\nMałżonek spadkodawcy jako spadkobierca ustawowy\nMałżonek spadkodawcy jest spadkobiercą ustawowym, pod warunkiem, że w chwili otwarcia spadku był w związku małżeńskim ze spadkodawcą. Podkreślić należy, iż separacja faktyczna nie powoduje ustania małżeństwa. Natomiast małżonek będzie wyłączony od dziedziczenia z ustawy w przypadku, gdy w chwili otwarcia spadku istniało prawomocne orzeczenie sądu rozwiązujące małżeństwo lub je unieważniające. Ponadto nie można dziedziczyć z ustawy na podstawie związku uznawanego za niezawarty z powodu niespełnienia przesłanek małżeństwa określonych w art. 1 ustawy z dnia 25 lutego 1964 r. Kodeks rodzinny i opiekuńczy (Dz. U. z 1964, Nr 9, poz. 59 z późn. zm.). Małżeństwo takie określane jest mianem małżeństwa nieistniejącego (matrimonium non existens).\nJeżeli chodzi natomiast o związek małżeński, który został zawarty pomimo istnienia przeszkód określonych w Kodeksie rodzinnym i opiekuńczym co do zasady małżeństwo takie nie może być unieważnione po jego ustaniu, a więc po śmierci jednego z małżonków. W konsekwencji małżonek, który pozostał przy życiu będzie dziedziczył z ustawy. Od zasady tej ustawodawca przewidział jednak dwa wyjątki:\njeżeli małżeństwo zawarli krewni w linii prostej;\njeżeli małżeństwo zawarła osoba pozostająca w innym związku małżeńskim.\nWe wskazanych wyżej przypadkach ustawa dopuszcza możliwość unieważnienia małżeństwa po jego ustaniu. Jeżeli powództwo zostanie wytoczone, a sąd orzeknie zgodnie z żądaniem pozwu to spowoduje to wyłączenie „małżonka” z kręgu spadkobierców ustawowych.\nW sytuacji, gdy powództwo o unieważnienie małżeństwo zostało wytoczone za życia spadkodawcy to możliwe jest wydanie wyroku unieważniającego także po jego śmierci (art. 19 § 1 k.r. i o.). W razie śmierci małżonka, który wytoczył powództwo o unieważnienie małżeństwa, unieważnienia mogą dochodzić jego zstępni. Natomiast w razie śmierci pozwanego małżonka na jego miejsce w procesie wstępuje kurator ustanowiony przez sąd.\nUnieważnienie małżeństwa powoduje wyłączenie od dziedziczenia małżonka, który pozostał przy życiu.\nJeżeli w chwili śmierci spadkodawcy toczył się proces o rozwód to podlega on umorzeniu (art. 446 ustawy z dnia 17 listopada 1964 r. Kodeks postępowania cywilnego, Dz. U. z 1965, Nr 43, poz. 296 z późn. zm.). Małżonek jest jednak wyłączony od dziedziczenia, jeżeli spadkodawca wystąpił o orzeczenie rozwodu lub separacji z jego winy, a żądanie to było uzasadnione. Wyłączenie małżonka od dziedziczenia następuje na mocy orzeczenia sądu. Wyłączenia może żądać każdy z pozostałych spadkobierców ustawowych powołanych do dziedziczenia w zbiegu z małżonkiem. Termin do wytoczenia powództwa wynosi sześć miesięcy od dnia, w którym spadkobierca dowiedział się o otwarciu spadku, nie więcej jednak niż jeden rok od otwarcia spadku (art. 940 k.c.).\nWystąpieniem o rozwód z winy małżonka w rozumieniu przepisu art. 940 § 1 k.c. jest również wyrażenie przez spadkodawcę - pozwanego w sprawie o rozwód - zgody na rozwód z winy powoda (Uchwała SN z dnia 19 sierpnia 1983 r., III CZP 38/83).\nPonadto w Kodeksie cywilnym expressis verbis wskazano, iż przepisów o powołaniu do dziedziczenia z ustawy nie stosuje się do małżonka spadkodawcy pozostającego w separacji (art. 9351 k.c.).\nZstępni jako spadkobiercy ustawowi\nZarówno dzieci pochodzące ze związku małżeńskiego, jak i dzieci pozamałżeńskie dziedziczą po swoich rodzicach. Na uprawnienie to nie ma wpływu także fakt w jaki sposób nastąpiło ustalenie ojcostwa dziecka pozamałżeńskiego. Podobne zasady stosuje się do dziedziczenia rodziców po swoich dzieciach. Dziedziczą oni niezależnie od tego, czy kiedykolwiek byli ze sobą w związku małżeńskim.\nOsoby przysposobione jako spadkobiercy ustawowi\nSytuacja osób przysposobionych kształtuje się odmiennie w zależności od tego, czy miało miejsce przysposobienie pełne, czy niepełne. Zasady dziedziczenia przy przysposobieniu pełnym są następujące:\nprzysposobiony dziedziczy po przysposabiającym i jego krewnych tak, jak by był dzieckiem przysposabiającego, a przysposabiający i jego krewni dziedziczą po przysposobionym tak, jak by przysposabiający był rodzicem przysposobionego;\nprzysposobiony nie dziedziczy po swoich wstępnych naturalnych i ich krewnych, a osoby te nie dziedziczą po nim;\nw wypadku, gdy jeden z małżonków przysposobił dziecko drugiego małżonka, nie stosuje się względem tego małżonka i jego krewnych przepisu art. 936 § 2 k.c., a jeżeli takie przysposobienie nastąpiło po śmierci drugiego z rodziców przysposobionego, także względem krewnych zmarłego, których prawa i obowiązki wynikające z pokrewieństwa zostały w orzeczeniu o przysposobienie utrzymane.\nNatomiast jeżeli skutki przysposobienia polegają wyłącznie na powstaniu stosunku między przysposabiającym a przysposobionym, stosuje się następujące reguły:\nTagi: spadek, spadkobiercy, prawo spadkowe


… | komix blog\n15 kwietnia 2005 komix 125 komentarzy\nNapisane przez wlochaty-tampon około 13 rok (lata) temu. Odpowiedz\na kiedy nowy image bedzie\nNapisane przez O. około 13 rok (lata) temu. Odpowiedz\na gdzie w tytule „duperelle endo i belle”? dlaczego taka nagła i drastyczna zmiana?\nczy ktos zechce mi wytlumaczyc o co tu chodzi?\nna czym polega endo?, a moze szukam aluzji tam gdzie jej nie ma. (kilka znalazlem, ale tu nie widze zadnej)\nps. mam TO COS, czekam na mejle\nNapisane przez plastikowy około 13 rok (lata) temu. Odpowiedz\nNapisane przez Cristiano około 13 rok (lata) temu. Odpowiedz\nGostei da ilustração do seu blog, mas não entendi absolutamente nada do que estava escrito. De qualquer forma, deixo aqui este recado na esperança de que minhas palavras lhe sejam tão obscuras quanto as suas são para mim. Posso escrever páginas e páginas de texto e tudo lhe parecerá completamente ininteligível. Acho isso divertido.\nNapisane przez bonduelle około 13 rok (lata) temu. Odpowiedz\ncoz za „utopijny” kolor, taki meski czerwony…\nNapisane przez ; około 13 rok (lata) temu. Odpowiedz\nktoś umie przetłumaczyć tego dwa piętra pode mną?\nNapisane przez kokz około 13 rok (lata) temu. Odpowiedz\nja moge przetlumaczyc, tlumaczyc?\nNapisane przez endo około 13 rok (lata) temu. Odpowiedz\nNapisane przez ver około 13 rok (lata) temu. Odpowiedz\nI tak po dwóch latach poglądania Cię, nauczenia się na pamięć każdej kreski, każdego koloru, każdego słowa, każdego przesłania, rozmawiania o Tobie z Marti – w końcu dać o sobie znać. Wstyd, wiem.\nTrzymaj się cieplutko, Ag. Wszyscy Cię tu widzę maltretują, chcą Ciebie mieć w każdej chwili, chcą nowego obrazka na zawołanie. Umarłabym już chyba na Twoim miejscu.\nNapisane przez lolaboo około 13 rok (lata) temu. Odpowiedz\nhi dear endo\ni’m in london now\nyou are very english today\nstwierdzilam ze bycie takim jak oni sa w zyciu codziennym\nformalni twardzi choc uprzejmi\nto bardzo ego jest naprawde zdrowe tutaj smieje sie z siebie\ni nie roztkliwiam nad soba\ndziubek twoja lola\nNapisane przez htj około 13 rok (lata) temu. Odpowiedz\na ędo widze ze juz powrot do polskiej warszawki;D i jak bylo:>\nNapisane przez :dsi: około 13 rok (lata) temu. Odpowiedz\no . cześć ędo , czesc amatorzy .\nja tylko powiedziec chcialem slowa dwa : tralala\ncodzien nowa porcja zła A !\nver – dziękuję. i: można się przyzwyczaić ;-*\nloloo – londyn najlepszy, baw dobrze tam i nasiąkaj brytyjskim humorem\nhatoja – było bardzo surrealnie. i super.\nps. tadziu, przestan się tutaj tak nachalnie reklamowac, to nie tablica ogloszeń.\nNapisane przez rachelka około 13 rok (lata) temu. Odpowiedz\nale tu dziwacznie, a fe… milszym jest mi pantofelek… milszym jest mi pantofelek…\nNapisane przez dabyl około 13 rok (lata) temu. Odpowiedz\nlewy górny róg mehehe\nNapisane przez ArthurBigBoss około 13 rok (lata) temu. Odpowiedz\nno, pasuje do mnie teraz to ” u mnie dobrze, ale pracuje nad tym” jak niewiem co!!\nNapisane przez K.B. około 13 rok (lata) temu. Odpowiedz\n3 eurocenty Wam wpadły (nno, w tej chwili 6), bo skomentowałam komiks z krzyżem. Chcecie, to przeczytajcie.\nAha, pod adres mailowy można (ale nie trzeba)puszczać maile z wyzwiskami, bądź gratulacjami, zależnie od wyznawanych poglądów. Młodzież Wszechpolska niech się nie fatyguje wysyłaniem jakichkolwiek propozycji. Tak się składa, że jestem agnostyczką.\nNapisane przez jarma około 13 rok (lata) temu. Odpowiedz\nNapisane przez brt około 13 rok (lata) temu. Odpowiedz\nno no no jestem pełen podziwu!\nNapisane przez bombonierka około 13 rok (lata) temu. Odpowiedz\nto tak jak u mnie …\nNapisane przez Ćoćajadźa około 13 rok (lata) temu. Odpowiedz\nChyba najpierw skomentuję,bo jak zacznę czytać ,to się połamię…to chyba chodzi o nieprzemyślane „gotowce” towarzyskie…”co tam?u ćę?”…tekst typu”wszystko dobrze”-znaczy:odnoszę sukces,radzę sobie,jestem szczęśliwa itd…drugi-”pracuję nad tym”tooo:nie spocznę na laurach,jestem coraz wyżej,jest(będzie)coraz lepiej,rozwijam się nieustannie…taki nasz dzisiejszy świat,a połączenie tych dwóch tekstów(które się wzajemnie ścierają) genialnie oddaje atmosferę naszego zadufania(zagubienia,nadąsania;)…a obrazek jak zwykle…\nNapisane przez crak około 12 rok (lata) temu. Odpowiedz\nNapisane przez Ambroży około 12 rok (lata) temu. Odpowiedz\nNapisane przez radziej około 10 rok (lata) temu. Odpowiedz\ngit obrazek aaa. dalej to powiem tak: gdy mam co chce wtedy więce j chce. to jest wyscig szczurow kazdy sie z kims porownuje


Czarem i smokiem. Pogodnik trzeciej kategorii. Tom 1 - Romuald Pawlak (4663) - Lubimyczytać.pl\nWydawnictwo: Fabryka Słów\t5,54\n(268 ocen\ti\t21 opinii)\nMożna traktować to poważnie, jeśli chcecie, ale dlaczego nie z przymrużeniem oka, jak Romek...\nRycerze może następnym razem. źródło opisu: www.fabryka.pl\nostatnia dodana przez Norka_93, 2 tygodnie temu, w grupie Gry i zabawy\t569\nwiejskifilozof | 2015-03-13\nPrzeczytane\tZachciało mi się czytać jakoś polską fantasty, spodziewałem się czegoś wybitnego.Mam za swoje. Nie wiem jakim cudem to skończyłem,nudna i brak akcji, to najważniejsze mankamenty twej książki.Czystego fantasty, to tu niewiele jest.\nOd smok i długo, długo nic.Nie wiele też magii.\nNo cóż przeczytam jeszcze dwa tomy.Może będą lepsze.\t48\nPrzeczytane, Fantastyka\tMało fantastki w fantastyce. A poza tym lekka historia.\t10\nadora-belle | 2015-05-15\nPrzeczytane, Posiadam\tStraszne nudy...Nawet nie mam ochoty sięgać po kolejne tomy, nawet z ciekawości, żeby sprawdzić, czy są tak samo słabe. A osoba odpowiadająca za opis na tylnej okładce powinna się zapaść pod ziemię ze wstydu za tak ewidentne kłamstwo: duch Monty Pythona unosiłby się nad tą książką tylko wtedy, gdyby któryś z członów zszedł podczas jej czytania i to bynajmniej nie na atak śmiechu...\t5\nCasey_Jones | 2014-05-06\n05 maja 2014\tPierwszy tom o przygodach Rosselina, to tak na prawdę kilka luźno ze sobą powiązanych historii bez konkretnej fabuły. Rosselin jest magiem, a dokładniej pogodnikiem trzeciej kategorii, który do asów w swym fachu nie należy. Niezły natomiast jest w kombinowaniu i stwarzaniu pozorów. Los rzuca go co i rusz w inne miejsca, w których ten musi się odnaleźć. I tak dowiemy się dlaczego magowie nie lubią morza oraz jak żyje się w dworskich pałacach, lub w kopalni soli. Poznamy też smoka, który talentem do kombinatorstwa wcale nie ustępuje Rosselinowi. Książka napisana jest językiem prostym i przyjemnym, przez co czyta się ją błyskawicznie. Jej zadaniem jest dostarczyć rozrywkę i to zadanie spełnia. A i uśmiech na twarzy powinien zagościć w trakcie czytania. ;)\t4\nIrm | 2012-03-28\n2006 rok\tOpinia zaznaczona jako spoiler. Pokaż ją.\nPowieść Romualda Pawlaka „Czarem i smokiem” rozpoczyna się wyrzuceniem głównego bohatera (Rosselina, pogodnika trzeciej kategorii) z pracy, który to, w poszukiwaniu dalszego zarobku, zaciąga się na statek, by kolejno wylądować na królewskim dworze, zostać z niego wygnanym, następnie zesłanym na głęboko prowincję, by potem… Takie wyliczanie kolejnych przygód Rosselina można ciągnąć aż do streszczenia ostatnich stron książki. W powieści bowiem brak głównej osi fabularnej. Fabuła, tak jak główny bohater, błąka się, mętnie meandruje, skręcając to tu, to tam, nie podążając przy tym w żadnym konkretnym kierunku. Nie zakotwiczają tej wędrówki liczne przygody, jakie spotykają maga – zbyt łatwo i zbyt szybko wychodzi z nich obronną ręką, by mogły mieć znacznie dla przebiegu akcji i by czytelnik mógł się nimi przejąć. Przygody, a właściwie „przygódki”, które przytrafiają się Rosselinowi, nie tworzą fabularnej całości, nie zazębiają się – są jak korale nanizane na nitce – obok siebie, ale...\tprzeczytaj całą opinię »\nPowieść Romualda Pawlaka „Czarem i smokiem” rozpoczyna się wyrzuceniem głównego bohatera (Rosselina, pogodnika trzeciej kategorii) z pracy, który to, w poszukiwaniu dalszego zarobku, zaciąga się na statek, by kolejno wylądować na królewskim dworze, zostać z niego wygnanym, następnie zesłanym na głęboko prowincję, by potem… Takie wyliczanie kolejnych przygód Rosselina można ciągnąć aż do streszczenia ostatnich stron książki. W powieści bowiem brak głównej osi fabularnej. Fabuła, tak jak główny bohater, błąka się, mętnie meandruje, skręcając to tu, to tam, nie podążając przy tym w żadnym konkretnym kierunku. Nie zakotwiczają tej wędrówki liczne przygody, jakie spotykają maga – zbyt łatwo i zbyt szybko wychodzi z nich obronną ręką, by mogły mieć znacznie dla przebiegu akcji i by czytelnik mógł się nimi przejąć. Przygody, a właściwie „przygódki”, które przytrafiają się Rosselinowi, nie tworzą fabularnej całości, nie zazębiają się – są jak korale nanizane na nitce – obok siebie, ale osobno. Często również z tych zdarzeń (jak np. ze spotkania pogodnika ze śnieżną panterą) nic nie wynika, nie mają one skutków dalszych w powieści, nie wiadomo więc, w jakim celu się w niej znalazły.\nRównie słabo skonstruowany został motor napędzający całą opowieść, czyli Rosselinowa chęć zemsty. Jest ona spowodowana zbyt błahymi wydarzeniami (m.in. wyrzuceniem [słusznym] z pracy czy chęcią odpłacenia się za dworską intrygę), by czytelnik mógł zrozumieć jej sens czy utożsamić się z uczuciami lub postawą bohatera. Tak samo nie pomaga fabule potraktowany po macoszemu wątek miłosny – ukochana Rosselina, na którą pogodnik po prostu wpada i z którą li tylko i wyłącznie sypia, jest jedynie słabo zarysowanym elementem drugiego planu. Pozostali bohaterowie książki (piękna dama dworu Zejfa d’Argilach, cesarzowa Joanna, karzeł Garzful czy liczni arystokraci i artyści) są równie szkicowo i nieciekawie zarysowani. Oprócz dziwnych, docelowo zabawnych nazwisk (jak niezbyt rozgarniętego majtka Nemmo, hrabiego czy też barona Brunhilda vel Didloga lub pierwszej damy dworu Pimpy si Traumengold) nie ma w tych postaciach niczego interesującego. O ich cechach charakteru głównie się mówi, przez co bohaterowie ci są jednowymiarowi, płascy i bezbarwni. Nie dziwi więc, że nie wywołują żywszych odczuć.\nW stosunku do Rosselina czytelnik także może co najwyżej żywić letnie uczucia – ma on bowiem zbyt mało wdzięku osobistego, by przymknąć oko na jego liczne szachrajstwa, kłamstewka, mydlenia oczu i ciągłe złorzeczenie innym (wielokrotnie spowodowane jego własną głupotą). Dodatkowo złe wrażenie robi mało uczciwe, a czasami nawet bezzasadnie okrutne zachowanie maga, który jednocześnie zbyt nachalnie puszcza oko do czytelnika: „Ty też tak robisz, prawda?”. Zabieg ten zamiast wzmocnić więź czytelnika z bohaterem (lub go rozbawić), przede wszystkim irytuje.\nZ rozbawieniem czytelnika autor również ma problem. Stopień absurdalności świata przedstawionego jest zbyt niski, aby mógł wywołać gromki śmiech. Mistrzem gromadzenia i spiętrzania aż do granic możliwości sytuacji dziwnych, nieprawdopodobnych i absurdalnych, wśród pisarzy fantasty, jest niewątpliwie Terry Pratchett. Romualdowi Pawlakowi sporo jeszcze do niego brakuje. Polski pisarz sprawia bowiem wrażenie, jakby zatrzymał w pół drogi podczas budowania tych absurdalnych konstrukcji. Jakby brakowało mu odwagi, by wykreować rzeczywiście kuriozalne sytuacje. Wywołuje to w czytelniku reakcję: „Fajny autor miał pomysł… szkoda, że nie poszedł dalej”, któremu towarzyszy lekki, na wpół wyrozumiały uśmiech. Oprócz dowcipu zawodzi także, tak ostatnio modna, postmodernistyczna zabawa cytatami, zapożyczeniami, odniesieniami i wszelkiego rodzaju skojarzeniami wewnątrzkulturowymi. Dwa lub trzy sparafrazowane cytaty („Kończ tę komedię, wstydu oszczędź!”, „I ty, Filipponie, przeciwko mnie?”) nie wystarczą, by powieść nabrała głębi, zyskała drugie dno, jako ta, która infiltruje szeroko rozumianą kulturę popularną.\nSłabo poprowadzona fabuła oraz pozbawione wyrazistości postaci powodują, iż książce brak dramatyzmu i napięcia. Braki te miało prawdopodobnie rekompensować zakończenie następujące dokładnie w momencie, gdy smok Filippon (towarzysz Rosselina) zamierza pożreć malarza Astrogoniusza. Jednakże tak skonstruowane zakończenia wywarło na mnie wrażenie, iż nastąpiło ono w momencie, gdy pisarzowi zabrakło weny twórczej, logicznie bowiem rzecz biorąc, nie ma ono żadnego uzasadnienia w przebiegu akcji. Pozostaje mieć nadzieję, iż rozpoczęte wątki, a także przygody umieszczone nie wiadomo w jakim celu, znajdują swoje kontynuacje i uzasadnienie, a postacie nabierają krwistości w kolejnych powieściach („Wojna balonowa” oraz „Trzecie gniazdo”), jako że „Czarem i smokiem” jest pierwszym tomem serii.\t3\nPrzeczytane, Posiadam\tKsiążka z gatunku "lekka,łatwa i przyjemna" - zresztą cały cykl jest taki.\nPrzygody fajtłapowatego maga i jego wrednego jaszczura czyta się w mgnieniu oka.Stworzona przez Pawlaka postać budzi sympatię,a jej perypetie szczery śmiech.Całość napisana z polotem i humorem,który trafi zarówno do dużym,jak i małych czytelników.\nUwielbiam tą trylogię.Sięgałam po nią już wielokrotnie.Może nie jest to literatura najwyższych lotów,ale humor poprawia fantastycznie.\t3\n13 stycznia 2012\tPogodnik - dawna nazwa Instytutu Meteorologii i Gospodarki Wodnej. Indentyczny sposób działania i podobne efekty.\nWięcej na http://niepamietnikfprefecta.blogspot.com/2012/01/pogodny-nie-pogodnik.html\t3\nPrzeczytane, Posiadam\tNa pewno to nie jest moja ulubiona książka. Straszne nudyyy. Smok z całkiem nie smoczymi zdolnościami. Nie polecam\t2\nmarzec 2015\tJeśli będę miała kiedyś okazję okupić się w książki Romualda Pawlaka w wersji tradycyjnej, to znaczy papierowej, na pewno to zrobię. Wszak o swoich ulubionych autorów dbać trzeba.\nZaczynam przewrotnie, ale szczerze. Romuald Pawlak wsadza w usta swoich bohaterów słowa także przewrotne, choć ze szczerością bywa różnie. Najlepsze podejście do życia jest jedno - patrzeć na nie z przymrużeniem oka. I tak właśnie się dzieje.\nCzarem i smokiem to powieść opowiadająca o pogodniku trzeciej kategorii - magu, który powinien panować nad pogodą, gdyby tylko magia słuchała go tak, jak powinna. Po lekturze Rycerza bezkonnego wiedziałam już dobrze, że mag magiem, ale zapewne sama magia ma plany inne. Okazuje się, że moja dedukcja przebiegła słusznym torem. Rosselin ma wszystkie cechy potrzebne do tego, by zostać straconym. Spryt, przebiegłość, poczucie humoru, zawziętą chęć zemszczenia się na wszystkich, który utrudniają mu spokojny żywot, a także...ambicje.\nAkcja powieści rozgrywa się w...\tprzeczytaj całą opinię »\nJeśli będę miała kiedyś okazję okupić się w książki Romualda Pawlaka w wersji tradycyjnej, to znaczy papierowej, na pewno to zrobię. Wszak o swoich ulubionych autorów dbać trzeba.\nAkcja powieści rozgrywa się w Imperium, przestrzeni dość rozległej, by zmieścić w niej nie tylko maga i smoka, ale też piratów, rozbójników, dwory, zamki, dwa karły, interesującą religię, filozofię Sarturusa, a także siedzibę magów znajdującą się w przestrzeni, choć nieco poza czasem. Jest co czytać. Akcja jest wyjątkowo płynna, nie tylko dlatego, że cały czas coś się dzieje, ale też przez to, że dzieje się cały czas tak samo dowcipnie. A jak dowcipnie, to też nieco ironicznie, bo Romuald Pawlak nie szczędzi sobie, choć sposób jego pisania jest niezmiennie lekki i komunikatywny.\nPełna opinia na: http://pannakac-pisze.blogspot.com/2015/03/czarem-i-smokiem-romuald-pawlak.html\t1\nstyczeń 2016\tPozwolę sobie zacząć od końca. Informacja z tylnej okładki, to tani chwyt marketingowy, który nie ma nic wspólnego z treścią książki (niestety w swojej niezgłębionej naiwności się na niego nabrałam).\nGłówny bohater to antypatyczny, zarozumiały cwaniaczek, który nie dopuszcza do świadomości faktu, że jest nieudacznikiem/beztalenciem/dupkiem (można wybrać więcej niż jedną ewentualność). Zamiast tego postanawia się mścić na każdym, kto oczekuje spełnienia warunków zawartej umowy lub nie docenia go tak, jak on by sobie tego życzył. I w zasadzie to jego nieustanne dążenie do zemsty jest jedynym spoiwem całej książki.\t1\nGdyby mógł, zapewne spuściłby mu na głowę nie tylko lawinę, ale wręcz cały łańcuch górski. I jeszcze...\twięcej\nRomuald Pawlak – Czarem i smokiem. Pogodnik trzeciej kategorii. Tom 1\nJak to w swoim kanonicznym (głównie dlatego, że jednym zachowanym w całości) dziele "O rozkoszy byci...\twięcej


Maja Baczyńska: Jeśli Twój pierwszy, wybrany instrument to wiolonczela, to jak pojawiły się kolejne? Dziś jesteś multiinstrumentalistą.\nBart Pałyga: Po wiolonczeli przyszedł czas na sarangi, które zobaczyłem w domu moich znajomych. Stały bardziej jako ozdoba w rogu pokoju i kompletnie nie wiedziałem, co to za instrument i jak się na nim gra. Na szczęście należę do osób, które lubią odkrywać i doświadczać. Był to instrument, który dostali na przechowanie i byli na tyle ufni i uprzejmi, że mi go pożyczyli. Tak się zaczęła moja przygoda z muzyką folkową (ormiańskie kemancze, morin khuur, cała masa instrumentów... ). Lecz dźwięk sarangi do tej pory uważam za najpiękniejszy ze wszystkich.\nM.B.: Co zafascynowało Cię w śpiewie gardłowym i alikwotowym? Czy pamiętasz jak po raz pierwszy się z tymi technikami zetknąłeś? Czy trudno byłoby laikowi się ich nauczyć?\nB.P.: Po raz pierwszy usłyszałem śpiew gardłowy w czasie jam session z udziałem powstającego dopiero zespołu Yerba Mater; śpiewał Maciek Cieliński, a w pokoju panował półmrok. Gdy usłyszałem te kosmiczne brzmienia, zerwałem się i zapaliłem światło, żeby natychmiast zlokalizować źródło niesamowitych dźwięków. Do dziś pamiętam, że Maciek w odpowiedzi na pytanie, jak to robi, odparł: „Musisz się tak napiąć w sobie i tyle”. No to się trochę napiąłem i... trwało to parę lat. Teraz wiem, że przede wszystkim trzeba się rozluźnić i jednocześnie gdzieniegdzie napiąć. Zafascynowała mnie wyjątkowość barwy alikwotów i interwałów w stroju nietemperowanym. Hipnotyczne dwudźwięki brzmiały jak „muzyka sfer”, było w nich coś nadludzkiego. Myślę, że każdy jest laikiem, zanim się zacznie czegoś uczyć. Tak więc także w przypadku śpiewu gardłowego zaczynamy od zera i uważam, że każdy może się go nauczyć niezależnie od płci i wieku. Choć zapewne istotne tu są pewne predyspozycje anatomiczne, które sprawiają, że proces ten jest dłuższy lub krótszy a efekty mniej lub bardziej spektakularne.\nM.B.: W 2013 roku odniosłeś wielki sukces na prestiżowym festiwalu Nowa Tradycja. Czy Nowa Tradycja rzeczywiście spełnia swoją i misję i pomaga upowszechnić twórczość artystom zafascynowanym, ale i reinterpretującym nasze muzyczne korzenie, jak Ty?\nB.P.: Jeśli chodzi o Nową Tradycję, to wystarczy spojrzeć na listę laureatów i uczestników konkursu w ostatnich dwudziestu latach, aby zobaczyć, jak wielką rolę w promowaniu i wspieraniu muzyków eksplorujących sferę muzyki tradycyjnej w nowoczesnym ujęciu pełni festiwal Polskiego Radia. Uważam, że konkursy są potrzebne tak samo, jak mecenasi sztuki, niemniej ważne jest, żeby artyści, którzy nie dostali nagrody w danym roku nie traktowali tego jak wyroku. Konkurs to nie wyrocznia, a każde jury ma swoje założenia, trudności. Często są spory i wynik bywa kompromisem, nie trzeba go brać do siebie. Po prostu warto próbować.\nM.B.: Miałeś też okazję nagrywać muzykę do filmów. Czy lubisz ten rodzaj pracy? Czy pamiętasz jakieś szczególne sytuacje ze studia, z planu?\nB.P.: Muzyka filmowa to dla osoby takiej, jak ja, wielka przyjemność, ponieważ tworząc, improwizuję. Ilustrowanie muzyką jest dla mnie czynnością naturalną, sporo doświadczenia zdobyłem, współpracując z Grupą Studnia O, a tworzenie muzyki do storytellingu to właśnie sztuka ilustracji. Byłem więc gotów, aby wejść do studia filmowego, kiedy Krzesimir Dębski zaprosił mnie do nagrania muzyki do filmu „Stara baśń. Kiedy słońce było Bogiem”. Był to pierwszy film, do którego nagrywałem muzykę. Byłem tym mocno przejęty i pamiętam, jak przy kolejnym take'u Krzesimir powiedział: „Wiesz jak wygląda Małgosia Foremniak?” „No wiem” – odpowiedziałem. A on na to: „To teraz sobie wyobraź, że ona liże klatę Popiela i śpiewaj!”.\nB.P.: Podobno dałem radę!\nM.B.: Co najbardziej Cię fascynuje w interakcji z innymi muzykami?\nB.P.: W interakcji z innymi muzykami najbardziej fascynuje mnie... interakcja właśnie. I fakt, że posługujemy się najbardziej niesamowitym na tej planecie językiem. Muzyka jest jak esperanto, pozwala komunikować się na całym globie, przekazując ogromne ilości danych – również tych, których nie da się zwerbalizować. To przywilej. Ponadto, grając z kimś, zawsze się czegoś uczę. To mi się nigdy nie znudzi.\nM.B.: A jak być muzykiem-improwizatorem w świecie ogarniętym pandemią? Czy znalazłeś na to własny sposób?\nB.P.: Jeśli chodzi o życie muzyka w pandemii, to myślę, że dużo dała mi wszechstronność i elastyczność. Dzięki pandemii musiałem nauczyć się nowych rzeczy; zacząłem nagrywać muzykę w domu i wysyłać ją do zamawiających. Miałem to szczęście, że rozpocząłem przed pandemią współpracę z Adamem Skorupą i Arkiem Reikowskim, którzy komponują muzykę do gier komputerowych, i w okresie pozbawionym koncertów, dostawałem od nich zamówienia. Tak czy inaczej musiałem jednak nauczyć się obsługi odpowiedniego programu i sprzętu. Dzięki pandemii przełamałem się też i napisałem wniosek do Ministerstwa Kultury i Dziedzictwa Narodowego. Okazało się, że to nie takie straszne i że można liczyć na mecenat państwa w realizacji niekoniecznie „mainstreamowych” pomysłów. Efekty do zobaczenia wkrótce. Jednakże miałem wiele szczęścia i bardzo współczuję utalentowanym i twórczym ludziom, którzy zmagają się z obostrzeniami uniemożliwiającymi im pracę i życie. To jest bardzo trudne. Mogę tylko powiedzieć, że ja się nie poddałem, pomimo tego że przez ponad pół roku nie zarobiłem dosłownie ani grosza.\nM.B.: A jakie są Twoje plany artystyczne na 2021/2022? Czego się możemy z Twojej strony spodziewać?B.P.: Nagrywamy płytę z Milo Ensemble. Efektem otrzymanego przeze mnie stypendium będzie program koncertowy w duecie z bardzo utalentowaną Maszą Pawliszcze (z domu Natanson) i audycja edukacyjna. Poza tym szykuje się współpraca na linii śpiew gardłowy–śpiew biały z najlepszymi w tej dziedzinie dziewczynami w kraju, ale póki co nie mogę zdradzić szczegółów. Zdałem też egzamin na studia o profilu etno jazz, z niecierpliwością czekam na oficjalne przyjęcie na uczelnię. Cieszę się, że mogę się dalej rozwijać i że wrócę do mojego pierwszego instrumentu, czyli wiolonczeli – wreszcie w takiej formie, która mi się podoba.\nM.B.: Co daje Ci muzyka, czego nie daje Ci żadna inna dziedzina?\nB.P.: Prawdziwą wolność.\nM.B.: A gdybyś nie był muzykiem?\nB.P.: Byłbym przewodnikiem lub ratownikiem górskim.\nFot. Daria Pawęda.