niedziela, 8 sierpnia 2010

mBank i jego CSV

Wyobraźmy sobie taką sytuację (jeśli ktoś niema możliwość sprawdzenia), mamy założony rachunek bankowy w najpopularniejszym banku internetowym, mam oczywiście na myśli mBank. Na rachunek dziennie spływa nam po 50 różnych przelewów od klientów za sprzedany jakiś towar. Po pewnym nie długim czasie okazuje się że trzeba poszukać przelewu od Zbyszka który robił przelew za zakup z konta swojej cioci :), w takiej sytuacji mamy do przeszukania średnio 100 przelewów żeby znaleźć Zbyszka i potwierdzić zapłatę. Jak wiadomo obsługa rachunku przez stronę internetową nie udostępnia opcji szukania operacji po zadanym tytule, z pomocą przychodzi nam oczywiście opcja eksportu historii operacji do pliku CSV. Wrzucam taki plik do arkusza kalkulacyjnego i szukam Zbyszka w polu tytuł operacji, i tutaj nas mBank - jego (chyba) informatycy (nie)mile zaskoczyli, bo z tego co widać od razu to w pliku CSV z historią jest tylko kolumna z opisem operacji w której jednym ciągiem jest: rodzaj operacji, rachunek, nazwa nadawcy/odbiorcy adres i tytuł operacji. Co w takim razie zrobić jeśli chce się poszukać Zbyszka tylko w tytule operacji? Niestety w przypadku pliku CSV z mBanku pokażą się wszystkie operacje które w nazwie nawet mają Zbyszka, a co teraz jak tych operacji ze Zbyszkiem pokaże z dziesięć albo więcej? Tutaj przechodzę do sedna sprawy, bo na ironie tego wszystkiego pliki PDF z mBanku mają jednak rozdzielone te informacje które wcześniej wymieniłem, są one w poszczególnych polach - miejscach. Najlepiej widać to na drukowanym potwierdzeniu operacji.


Są dwa sposoby rozwiązania problemu który opisałem wyżej. Pierwszy sposób i chyba najprostszy to zgłoszenie tego błędu w mBanku i czekanie aż ekipa poprawi dosłownie jedną linijkę kodu odpowiedzialnego za generowanie plików CSV, poprawka przypomnę miałaby polegać na tym żeby dane takie jak: rodzaj operacji, rachunek, nazwa, tytuł operacji były oddzielone znakiem średnikiem (;).



Drugi sposób to napisanie konwertera takiego potwierdzenia w PDF do CSV, a dlaczego potwierdzenie PDF? Bo jak wcześniej napisałem tam te dane operacji są opisane w osobnych polach.


Napisanie programu konwertującego drukowane potwierdzenia z PDF na CSV zajęło mi dosłownie jeden dzień czasu, program można niżej pobrać i sprawdzić jego działanie. Jest to oczywiście wersja grubo testowa, bo do dyspozycji miałem kilka rodzajów operacji na swoim rachunku w mBanku.


Mam nadzieje też że do czasu aż mBank tego błędu (w eksporcie CSV) nie poprawi to mój program konwerter przyda się w jakiś sposób.

mBank_PDF2CSV.exe

 
Jest 11 grudnia 2010r. i doczekaliśmy się poprawki ze strony mBanku. Teraz już informacje eksportowane z serwisu internetowego w formacie CSV są użyteczne na tyle, że nadają się do interpretacji. 
Wynalazek który zaprezentowałem wyżej powinien nadal działać, ale jest już bezużyteczny. 

Ciekawe kiedy konkretnie wprowadziło tą poprawkę :)

środa, 10 lutego 2010

Radio Amator

Dziś chciałbym zaprezentować moje kolejne żyjątko, jest nim program który ułatwia nagrywanie audycji radiowych. Program nazywa się Radio Amator i jego głównym zadaniem jest uruchamianie sesji nagrywania w ustalonym wcześniej czasie, cały proces nagrywania odbywa się przez darmowy program HarddiskOgg (Version 2.52.0 / 247 [2007/02/07]). Wspomniany program HarddiskOgg, ma kilka cech które sprawiają  jest najlepszy jeśli chodzi o nagrywanie bezpośrednio do formatu OGG Vorbis oraz możliwość sterowania nim z lini komend itd..
Radio Amator jest programem darmowym tak jak HarddiskOgg, przez co możesz go używać ile tylko będzie na to ochota i to w zupełności za darmo.


No to zacznijmy od zainstalowania tego cuda :


1. Ściągnięcie programu ze strony chomikowej tutaj




2. Uruchamiamy setup






Klikamy na przycisk dalej aż  pojawi się przycisk zakończ. Właśnie na końcu instalacji zostanie uruchomiony nasz program.



  1. Tu jak widać na zdjęciu jest zegar, umieściłem go w tym miejscu w celach informacyjnych. Zegar ten można oczywiście wyłączyć lub też zmienić na elektroniczny. 
  2. Wyświetla katalog do którego będą zapisywane audycje, katalog ten można zmienić w ustawieniach (np. D:\Audycje)
  3. Wyświetlenie tzw miksera systemowego, wyświetlenie tego miksera odbywa się po przez opcje programu HarddiskOgg i jeśli się zdarzy że mikser systemowy się nie wyświetli to najprawdopodobniej jest to spowodowane jakimiś nie standardowymi sterownikami karty muzycznej.
  4. Wyświetlenie okna programu HarddiskOgg, można w nim ręcznie uruchomić zapis jak i zatrzymać, oraz zdefiniować formaty pliku w jakiś chcemy aby przyszłe audycje zapisywały. Odpowiednio dobraną konfigurację formatu pliku należy zapisać do katalogu HDP w katalogu gdzie został zainstalowany Radio Amator.
  5. Opcja ta uruchamia natychmiastowy zapis, niestety w aktualnej wersji jeszcze ona nie działa więc natychmiastowe nagrywanie można uruchomić tylko przez program HarddiskOgg.
  6. Natychmiastowe zatrzymanie aktualnie trwającej sesji, również kliknięcie w tą opcje wyłącza auto zapis.
  7. Nożyczki służą do dzielenia zapisu sesji, po kliknięciu następuje zapis do kolejnego pliku ze zmienionym numerem części na końcu nazwy pliku.
  8. Przycisk ten wciśnięty uruchamia zapis według harmonogramu zapisu sesji tzw auto zapis. Auto zapis powinien być praktycznie non stop wciśnięty.
  9. Słupki informujące z jaką mniej więcej głośnością będziemy zapisywać audycje, średni poziom zapisu powinien się wahać w połowie. Aby słupki nie podskakiwały można je wyłączyć odhaczając. Tutaj jest ważna kwestia związana z zapisem otóż aby być pewnym że zapisze się nam odpowiednio audycja słupki te muszą wykazywać jakąś aktywność w przeciwnym wypadku zapisze się nam cisza. W celu dobrania odpowiednich ustawień zapisu to najlepiej można tego dokonać przy pomocy wspomnianego miksera systemowego uruchamianego w sposób wcześniej opisany.
  10. Ikonka ta jest od programu HarddiskOgg, jeśli świeci się ona na kolor ciemny czerwony tzn że aktualnie nic się nie zapisuje, jeśli natomiast świeci na kolor jasny czerwony oznacza to że odbywa się zapis.
  11. To jest ikonka programu Radio Amator, podwójne kliknięcie spowoduje wyświetlenie okna programu (jeśli był wcześniej zminimalizowany). jeśli ikona miga oznacza to że aktualnie trwa sesja.


Do pełni szczęścia przydałoby się dodać jakąś próbną sesję do harmonogramu.


  1. Pierwszą czynnością jest kliknięcie w Dodaj sesję... Pojawi się nam z prawej strony okna panel z parametrami sesji.
  2. Tutaj zaznaczmy jaki rodzaj sesji chcemy uruchomić, do wyboru są: codzienne, cotygodniowe oraz jednorazowe.

    • jednorazowe to takie które mają sprecyzowany dokładnie dzień i godzinę o której sesja ma się rozpocząć i zakończyć
    • w cotygodniowych wybieramy dzień tygodnia i przedział czasowy danego dnia w którym ma się uruchomić sesja
    • codzienna sesja uruchamia się co dzień o ustalonej godzinie, jest też możliwość wyjątku odhaczając wybrany dzień tygodnia w których sesja się nie uruchomi
  3. Ustawienie przedziału czasowego, w każdym rodzaju trochę inaczej.
  4. Nazwa sesji, tutaj wpisujemy jak audycja się nazywa (min 3 litery), nazwy audycji mogą się powtarzać,   dozwolone znaki są takie same jakie system pozwala użyć w nazwie pliku, jeśli zastosujemy cudzysłów np to może to doprowadzić do dziwnych zachowań programu, czyli trzymajmy się głównie literek i cyferek. 
  5. W tym polu wpisujemy informacje o sesji np autor audycji, pole to jest tylko w celach informacyjnych i podczas edycji nazwy pliku sesji można zawartość wstawić poprzez zmienną %autor%.
  6. Tutaj możemy ręcznie lub wybrać z listy nazwę rozgłośni radiowej z której zapisujemy audycje, pole to jest tylko w celach informacyjnych. Listę rozgłośni można stworzyć w ustawieniach natomiast grafikę np z logo radio należy zapisać do katalogu \Gfx\Radio gdzie został zainstalowany Radio Amator. Nazwa grafiki musi być taka sama jak radio wpisane w polu podczas dodawania sesji.
  7. Format w jakim ma zostać zapisana audycja, do wyboru są domyślnie zainstalowane konfiguracje ale jeśli chcemy dodać inny format to należy to zrobić przez program HarddiskOgg i zapisać tą konfiguracje do katalogu HDP w katalogu gdzie został zainstalowany Radio Amator.
  8. Jeśli przedział czasowy jest prawidłowy czyli nie zazębia się z inną sesją albo nie kończy się wcześniej niż zaczyna to można kliknąć dodaj. Od tego czasu sesja czeka na swoją kolej.
Tak wygląda okno ze zdefiniowaną jedną sesją jednorazową.




Teraz pozostaje poczekać na odpowiednią godzinę i sesja powinna się rozpocząć.


Opisałem podstawowe opcje programu które z założenia są jego głównym zadaniem, czyli planowanie sesji kiedy co i jak ma się nagrywać, po drodze jest jeszcze dużo opcji które jednym mogą się przydać i a innym użytkownikom są zbędne najważniejsze jest to co się zapisało, a może to być np audycja która jest regularnie nadawana w Trójce o 2 godzinie w nocy z piątku na sobotę :) cała lekkość programu polega na tym że przy minimum konfigurowania można zacząć archiwizować ulubione audycje.


Wymagania programu:
- Windows XP lub nowszy.
- miejsce na dysku na zapisane audycje
- karta muzyczna


I to byłoby na tyle, w następnym wpisie dotyczącym Radio Amatora zapewne opiszę kolejną ciekawą opcje.

niedziela, 7 czerwca 2009

ShowWindow i TWebBrowser

Taki ostatnio problemik mnie irytował. Na formularz główny wstawiam TWebBrowser, i chciałbym żeby podczas uruchomienia programu główny formularz się nie wyświetlał. Oczywiście rozwiązaniem jest dodać w pliku projektu taką linijkę kodu:

Application.ShowMainForm:=false;

Wszystko ładnie pięknie działa Forma się nie pokazuje, ale jest problem - bo wspomniany wcześniej WebBrowser się dopiero do końca zainicjuje jak nasza główna forma z nim się wyświetli. Można pokazać na chwilę Formę i odrazu zrobić ją niewidoczną, ale wtedy nam się zaktywuje okienko które nie chcemy i do tego mrugnie. Problem rozwiązałem w ten sposób że kiedy wszystko się zainicjuje w naszym programie to na końcu wstawiłem taki kawałek programu i powiedzmy że problem rozwiązany.

IF NOT Application.ShowMainForm THEN
BEGIN
Top := Screen.Height + 10;
visible := True;
ShowWinNoAnimate(Handle, SW_SHOWNOACTIVATE);
visible := False;
END;

Użyłem tutaj funkcji z biblioteki JvJCLUtils, jak narazie działa to na WinXP Home, niewiem jak na innych wynalazkach Mikosoftu...