Posty

[PHP] Jak usunąć puste elementy z tablicy?

Najprostszą i raczej najszybszą metodą na usunięcie pustych elementów z tablicy jest użycie funkcji array_filter. Funkcja ta filtruje elementy tablicy funkcją zwrotną. Jeśli funkcja zwrotna nie zostanie podana to z tablicy zostaną porostu usunięte puste wpisy.Przykładowe użycie: $groups = [0 => 'EPWA', 1 => '152130Z', 2 => '', 3 => '26006KT']; $groups = array_filter($groups); W powyższym przykładzie z tablicy $groups usunięty zostanie element o ID 2.

[C++] ncurses Unicode / UTF-8 / polskie znaki

Trafiłeś na ten artykuł, ponieważ zapewne masz problem z polskimi znakami diakrytycznymi przy pracy z biblioteką ncurses. Czy jest to do rozwiązania? Oczywiście, ale konieczne jest do instalowanie nakładki ncursesw. Aby zacząć korzystać z ncursesw należy ją doinstalować, dołączyć nagłówek #include <ncursesw/ncurses.h> oraz w funkcji (przed zainicjalizowaniem initscr()) zainicjować funkcję setlocale. Funkcja setlocale powinna zostać zainicjowała z odpowiednim identyfikatorem locale - dla polskich znaków będzie to 'pl_PL.UTF-8'.Instalacja ncurseswInstalacja na: Debian/Ubuntu: apt-get install libncurses5-dev libncursesw5-devFedora 21/CentOS: yum install ncurses-develFedora 22: dnf install ncurses-develPrzykład użycia ncurses z UTF-8#include <clocale> #include <ncursesw/ncurses.h> #include <string.h> int main() { setlocale(LC_ALL, "pl_PL.UTF-8"); int row, col; initscr(); getmaxyx(stdscr,row,col); mvprintw((row - 3) / 2, (col-strlen…

[C++] Piszemy aplikację pogodową, część 1

Kolejny większy materiał poświęcony programowaniu w C++. Tym razem tematyką tej serii postów będzie aplikacja pogodowa.KoncepcjaZadaniem programu będzie pobranie danych pogodowych dla danej lokalizacji ze zdalnego serwisu. Serwis, który wybrałem jako prowidera danych pogodowych to OpenWeatherMap. Dlaczego akurat OpenWeatherMap? Między innymi dlatego, że serwis ten ma bardzo intuicyjne API i oferuje darmowy plan dostępu do danych. Do pobierania danych użyta będzie biblioteka cURL. Format danych, które będzie przetwarzał program to JSON, a jako bibliotekę do operowania na tych danych wybrałem nlohmann_json.Program po uruchomiu ma sprawdzić czy istnieje plik konfiguracyjny i pobrać z niego ustawienia, a jeśli plik nie istnieje utworzyć go z domyślną zawartością. Następnie program ma oczekiwać na podanie przez użytkownika lokalizacji, dla której mają zostać pobrane dane. Po podaniu lokalizacji program ma wczytać i wyświetlić takie dane: nazwa lokalizacji, temperatura, ciśnienie, wilgotnoś…

[C++] Piszemy grę, część 3

W tym wpisie rozbudujemy program o kolejną pętlę do while, w której będzie właściwy kod gry, czyli losowanie liczb, zliczanie prób, liczenie czasu gry itd. Pętla będzie się powtarzała do momentu trafienia poprawnej liczby lub osiągnięcia limitu prób. Do kodu utworzonego w poprzedniej części dopiszmy następujący fragment:do { /* Zależnie od wybranego przez gracza poziomu trudności, ustawiamy limit prób oraz zakres losowania liczby. */ switch(game_level) { // Poziom 1 case 1: attempts_limit = 25; // limit - 25 prób rand_number = rand() % 10 + 1; // losuj liczbę z zakresu 1-10 break; // Poziom 2 case 2: attempts_limit = 15; // limit - 15 prób rand_number = rand() % 50 + 1; // losuj liczbę z zakresu 1-50 break; // Poziom 3 case 3: attempts_limit = 10; // limit - 10 prób rand_number = rand() % 100 + 1; // losuj liczbę z zakresu 1-100 break; } // Z każdą próbą zwiększa…

[PHP] Jak sprawdzić czy katalog istnieje?

Jeśli zajdzie potrzeba sprawdzenia czy katalog istnieje lub czy nazwa pliku jest katalogiem funkcja is_dir nam o tym powie. Funkcja ta sprawdza czy podana jako jej argument nazwa jest katalogiem. Jeśli podana nazwa jest katalogiem (czyli katalog musi istnieć) zwracana jest wartość TRUE, w przeciwnym wypadku funkcja zwraca FALSE.Przykładowe użycie: $apache_dir = '/etc/apache2'; $hosts_file = '/etc/hosts'; is_dir($apache_dir); // TRUE is_dir($hosts_file); // FALSE

[PHP] Jak ustawić domyślną strefę czasową?

PHP od wersji 5.1.0 pozwala ustawić z poziomu skryptu domyślną strefę czasową, której używają wszystkie funkcje daty. Ustawienie domyślnej strefy czasowej sprowadza się do wywołania funkcji date_default_timezone_set z odpowiednim identyfikatorem strefy czasowej.Ustawienie polskiej strefy czasowejdate_default_timezone_set('Europe/Warsaw');

[PHP] Jak sprawdzić czas ostatniej modyfikacji pliku?

Zdarza się niekiedy konieczność pobrania informacji o czasie modyfikacji pliku np. podczas tworzenia systemu pamięci podręcznej. PHP daje taką możliwość dzięki wbudowanej funkcji filemtime. Funkcja ta zwraca czas ostatniej modyfikacji pliku w formie uniksowego timestampu. Funkcja jako argument przyjmuje ścieżkę do pliku, którego czas modyfikacji chcemy poznać. Przykład: $last_modified = filemtime('readme.md'); echo $last_modified; echo date('H:i d-m-Y', $last_modified);

[PHP] Jak policzyć pliki w katalogu?

Do policzenia plików znajdujących się w danym katalogu można użyć funkcji readdir w połączeniu z pętlą while. Funkcja readdir służy do zwracania zawartości katalogu. Jako argument do funkcji readdir przekazuje się zaczep zwrócony przez funkcję opendir.Liczenie plików w kataloguNapiszemy prostą funkcję liczącą pliki dla podanej ścieżki: <?php function count_files($path) { if($dh = opendir($path)) { $i = 0; while(false !== ($file = readdir($dh))) { if(!in_array($file, array('.', '..'))) { $i++; } } closedir($dh); return $i; } } echo 'W podanym katalogu jest ' . count_files('/logs') . ' plików.';

[PHP] Jak odwrócić kolejność tablicy?

Podczas automatycznego tworzenia tablic nie zawsze wartości ułożone są w takiej kolejności, jaką byśmy chcieli. Zatem czasem może być konieczne odwrócenie kolejności tablicy. W takim przypadku z pomocą przychodzi funkcja array_reverse, która służy właśnie do tego celu. Funkcja ta przyjmuje 2 argumenty, w tym 1 wymagany. Wymaganym argumentem jest jak łatwo się domyślić tablica, której ułożenie wartości ma zostać odwrócone. Drugim argumentem, który można przekazać do funkcji jest (bool) preserve_keys - jeśli zostanie ustawiony na TRUE, klucze numeryczne zostaną zachowane (domyślnie FALSE).Przykład$countries = [0 => 'Polska', 4 => 'Belgia', 6 => 'Francja', 10 => 'Anglia']; $reversed_countries = array_reverse($countries); $reversed_countries = array_reverse($countries, TRUE);

[PHP] Jak połączyć dwie tablice?

Aby w PHP połączyć dwie lub więcej tablic, można użyć funkcji array_merge lub operatora '+'. Różnica między tymi dwiema metodami jest taka, że array_merge przenumeruje klucze, a użycie operatora '+' zachowa kolejność kluczy. Funkcja array_merge zwraca nową tablicę zawierającą wartości tablic podanych jako argumenty.Łączenie tablic za pomocą array_merge$cars_1 = ['Audi', 'Mercedes', 'Volkswagen']; $cars_2 = ['Maserati', 'Ferrari', 'Citroën']; $cars = array_merge($cars_1, $cars_2); Tablice $cars_1 i $cars_2 zostaną połączone w jedną, a jej klucze będą zaczynać się kolejno od 0. Łączenie tablic za pomocą operatora +$colors_1 = [1 => 'black', 2 => 'white', 'Volkswagen']; $colors_2 = [5 => 'red', 8 => 'green', 10 => 'blue']; $colors = $colors_1 + $colors_2; W tym przykładzie po połączeniu tablic $colors_1 i $colors_2 numery kluczy zostaną zachowane.