środa, 22 września 2010

Walidacja danych w ASP.NET

Poniżej najpopularniejsze symbole używane w wyrażeniach regularnych.

Symbol Opis działania
. Dowolny znak, oprócz ‘\n’
[ ] Dowolny znak ze zbioru znajdującego się wewnątrz nawiasów. Przedziały znaków oznacza się ze znakiem ‘–‘ np. [a-zA-Z]. Wewnątrz nawiasów ‘\b’ wyjątkowo oznacza backspace.
[^ ] Dowolny znak nie należący do podanego zbioru np. [^0-9] – nie cyfra.
^ Dopasowanie musi zaczynać się na początku wiersza.
$ Dopasowanie musi kończyć się z końcem wiersza.
( ) Grupowanie wyrażeń. Ciąg dopasowany do wyrażenia wewnątrz nawiasów zostanie zapamiętany i będzie potem dostępny.
(?<nazwa>) Grupa nazwana. Umożliwia dostęp do grupy bez podawania jej numeru.
| Lub – alternatywa znaków, lub zbiorów.
* Zero lub więcej razy
+ Jeden lub więcej razy
? Zero lub jeden raz
{n} Dokładnie n razy
{n,m} Od n do m razy
{n,} n lub więcej
*? Leniwy kwalifikator * - próbuje dopasować jak najmniej elementów, analogicznie +?, ??, ...
\t, \r, \n, \v Jak zawsze: tab, powrót karetki, nowa linia, pionowy tab
\znak_specjalny Po prostu ten znak np. \$ - oznacza $; \^ - oznacza ^ itd.
\b Teoretyczna granica pomiędzy ciągiem alfanumerycznym, a białym znakiem
\w Skrót dla znaku ze zbioru znaków alfanumerycznych
\W Zaprzeczenie \w
\s Dowolny biały znak
\S Zaprzeczenie \s
\d Cyfra
\D Zaprzeczenie \d
\liczba np \1 Odwołanie wsteczne. Oznacza dokładnie ten sam ciąg, jaki został dopasowany do grupy o numerze ‘liczba’.
\k Odwołanie wsteczne do grupy nazwanej

Przykłady wyrażeń regularnych:

Wzór Opis
^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$ Sprawdza poprawność wpisanego maila.
^([0-1][0-9]|[2][0-3]):([0-5][0-9])$ Sprawdza poprawność podanej godziny.
\b(([01]?\d?\d|2[0-4]\d|25[0-5])\.){3}([01]?\d?\d|2[0-4]\d|25[0-5])\b Sprawdza poprawność podanego adresu IP.
^((4\d{3})|(5[1-5]\d{2})|(6011))-?\d{4}-?\d{4}-?\d{4}|3[4,7]\d{13}$ Sprawdza poprawność podanego numeru karty kredytowej.
(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z
0-9\-\._\?\,\'/\\\+&%\$#\=~])*
Sprawdza poprawność wpisanego adresu internetowego

Źródło: http://codeguru.pl/Articles/14375/Comments.aspx

poniedziałek, 6 września 2010

Windows nie wyświetla ukrytych plików

Problem polega na tym, że pomimo zaznaczenia w opcjach folderów, w widoku opcji: Pokaż ukryte pliki, foldery i dyski oraz zatwierdzeniu tej zmiany Windows i tak sam z powrotem odznacza tę opcję.
Czyli dalej nie widzisz ukrytych plików i folderów...

Przede wszystkim najpierw przeskanuj komputer antywirusem.
Dodatkowo polecam instalację programu CCleaner w wersji polskiej, żeby przeskanować rejestr systemu w celu naprawienia jego błędów. Program możesz pobrać stąd: http://www.instalki.pl/programy/download/Windows/narzedzia_systemowe/CCleaner.html

Uruchom Cleanera. Wybierz w menu po lewej Rejestr, zaznacz wszystkie opcje w prawej części okna (kolumna Integralność rejestru) i kliknij przycisk Skanuj, aby znaleźć problemy. Program spyta się czy zrobić kopię zapasową rejestru, zrób kopię. Jak pasek postępu osiągnie już 100% kliknij Napraw zaznaczone problemy..., program będzie prosił o potwierdzenie naprawy, potwierdzaj za każdym razem. Nie zdarzyło mi się nigdy, żeby coś po tym się popsuło :)

Jeśli to zrobiłeś i dalej nie widać ukrytych plików to jest jeszcze jedno rozwiązanie.

Otwórz rejestr systemu.
Wciśnij klawisz Windowsa i R (Win+R). Wpisz w oknie regedit i wciśnij Enter (Rys 1).

Rys. 1 Otwieranie rejestru
Przejdź po drzewie do:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Explorer\Advanced\Folder\Hidden\SHOWALL

Mając zaznaczony folder SHOWALL, po prawej zaznacz wartość CheckedValue (Rys. 2), kliknij na nią prawym klawiszem myszki, wybierz Modyfikuj.

Rys. 2 Odszukanie CheckedValue

W polu Dane wartości wpisz 1 i kliknij OK.
Zamknij rejestr i teraz powinieneś widzieć ukryte pliki :)

piątek, 3 września 2010

Wyłączanie reklam i niepotrzebnych funkcji w GG

Bardzo proste, a służą do tego dwa programiki tego samego autora :)

Sprawdzane dla GG w wersjach 7.7 oraz 10.



Używanie komunikatora bez reklam jest niezgodne z regulaminem jego autorów!



Wersja 7.7 (powinno działać dla starszych wersji)



Jeśli masz włączone gg to je wyłącz.

Wklej do przeglądarki adres: http://bk2.sputnik-sat.info/downloads.php?cat_id=1&download_id=71

Uruchom pobrany plik ggbkiller2v2_97.exe

A teraz wystarczy tylko kliknąć przycisk OK :)

Usunięcie reklam zostanie potwierdzone komunikatem Udało się reklamy zostały usunięte ;)




Wersja 10

Jeśli gg jest włączone, to powinieneś je wyłączyć.
Wklej do przeglądarki adres: http://bk2.sputnik-sat.info/downloads.php?cat_id=4&download_id=72
Uruchom pobrany plik.
Tutaj inaczej niż poprzednio oprócz wyłączenia reklam masz jeszcze szereg innych opcji jak usunięcie panelu bocznego z usługami gg, czy też wyłącznie dodatkowych menu Sklep itd.


Zaznacz opcje, które chcesz wyłączyć.

Jeśli instalowałeś gg w domyślnej lokalizacji wystarczy kliknąć OK.

Program potwierdzi wyłączenie funkcji odpowiednią ikoną słoneczka. Jeśli nie uda się wyłączyć którejś z funkcji przy niej również wyświetli się odpowiednia ikona (ich opisy znajdują się po prawej stronie okna programu).



Zapraszam na stronę autora, gdzie znajdziesz najnowsze wersje plików.

poniedziałek, 23 sierpnia 2010

Przyspieszanie Chrome i Firefoxa

Post na prośbę.


To jest bardzo prosty sposób dzięki, któremu przyspieszy się obie przeglądarki. Być może istnieją jeszcze inne o których nie wiem, ale ten mi na razie wystarcza :)


Chrome


Otwórz Chrome i przejdź na stronę: https://chrome.google.com/extensions/detail/mmffncokckfccddfenhkhnllmlobdahm?hl=pl


Zainstaluj dodatek.
Dalej przejdź do rozszerzeń:
Znajdź pozycję FastestChrome - Browse Faster i kliknij Opcje. Znajdziesz tu kolejne opcje dodatka jak zamienianie tekstu w linki, artykuły Wikipedii do wyszukiwania w Google. Ja akurat wszystko odznaczyłem bo nic z tych rzeczy nie jest mi potrzebne.
Strony powinny już zacząć wczytywać się szybciej.

Firefox

Tutaj też cała sztuka polega na zainstalowaniu dodatku.
Otwórz przeglądarkę Mozilli i przejdź na stronę: https://addons.mozilla.org/en-US/firefox/addon/9825/
Kliknij Add to Firefox w celu zainstalowania dodatka. W górnej części przeglądarki może wyskoczyć komunikat o zablokowanym okienku, kliknij po prawej stronie przycisk Zezwól, aby otworzyć okienko instalacji.
Po zainstalowaniu również w Firefoxie powinny już strony wczytywać się szybciej.

Ale...
Pod pojęciem szybkości rozumiem jeszcze jedną rzecz: blokowanie reklam. 
Wręcz obowiązkowo polecam wykonać poniższe czynności. Strony będą wczytywane szybciej ponieważ przeglądarka pominie pobieranie (wczytywanie) reklam a tym samym zaoszczędzisz kilkadziesiąt kilobajtów.

Chrome

Oczywiście otwórz Chrome i przejdź do adresu:
Zainstaluj dodatek i tak jak poprzednio przejdź do opcji rozszerzeń. Odnajdź wpis 
AdBlock, kliknij Opcje i przejdź do zakładki Fiilter list. Proponuję tutaj zaznaczyć opcję - additional Polish filters, dzięki temu zasubskrybujesz listę blokowanych elementów dla polskich witryn.

Jeśli po otwarciu strony ujrzysz jakąś reklamę wystarczy dodać ją do blokowanych wciskając Cttrl+K i klikając element który chcesz zablokować. Potwierdź klikając Looks good i następnie Block it!.

Firefox

Mniej więcej to samo powtórzymy dla drugiej przeglądarki.
Otwórz Firefoxa i przejdź do strony: https://addons.mozilla.org/en-US/firefox/addon/1865/
Jest do dodatek AdBlock Plus. Jak zainstalować to już wiesz, do opcji dodatka nie będziemy przechodzić.
Jeśli pod Firefoxem ujrzysz niezablokowaną reklamę najedź na nią kursorem i w prawym górnym rogu lub prawym dolnym ujrzysz przezroczysty przycisk Zablokuj. Wystarczy kliknąć, potwierdzić i nigdy więcej nie ujrzysz tej reklamy :)

Można oczywiście przeglądać zablokowane elementy w opcjach i np. w przypadku, gdy zablokujesz nie to co trzeba zaznaczyć, żeby akurat ten konkretny element nie był blokowany.


czwartek, 19 sierpnia 2010

Windows: Przyspieszanie zamykania systemu

Czasem zdarza się, że system zanim się zamknie czeka na zamknięcie uruchomionych aplikacji. Komu chce się na to czekać? Mi na pewno nie.

Oto sposób, na skrócenie czasu zamykania.

Otwórz Rejestr systemu wciskając Win+R i wpisując komendę regedit. (Rys. 1)


Rys. 1 Otwieranie rejestru

Przejdź po drzewie do HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control i odnajdź wpis WaitToKillServiceTimeout. (Rys. 2)
Rys. 2 Rejestr
Kliknij wpis prawym klawiszem i z menu podręcznego wybierz Modyfikuj. Otworzy się okno zwane Edytowanie ciągu.
W drugiej linii tego okna (Dane wartości) zapewne będzie podstawiona domyślna wartość wynosząca 12000. Jest to czas oczekiwania na zamknięcie aplikacji podany w milisekundach. 

Możesz zmienić tę wartość na dowolnie przez siebie podaną (bez szaleństw). Proponuję 3000 milisekund czyli 3 sekundy.
Zawsze jest możliwość, aby ten czas wydłużyć lub skrócić, choć wydaje mi się, że 3 sekundy to czas optymalny.





ASP.NET: Export GridView do Excela

Gotowy kod:


protected void Button1_Click(object sender, EventArgs e)
        {
            //export to excel
            Response.Clear();
            Response.Buffer = true;
            Response.ContentType = "application/vnd.ms-excel";
            Response.Charset = "";
            this.EnableViewState = false;
            System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
            System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
            this.ClearControls(GridView1);
            GridView1.RenderControl(oHtmlTextWriter);
            Response.Write(oStringWriter.ToString());
            Response.End();
        }


        private void ClearControls(Control control)
        {
            for (int i = control.Controls.Count - 1; i >= 0; i--)
            {
                ClearControls(control.Controls[i]);
            }
            if (!(control is TableCell))
            {
                if (control.GetType().GetProperty("SelectedItem") != null)
                {
                    LiteralControl literal = new LiteralControl();
                    control.Parent.Controls.Add(literal);
                    try
                    {
                        literal.Text = (string)control.GetType().GetProperty("SelectedItem").GetValue(control, null);
                    }
                    catch
                    {
                    }
                    control.Parent.Controls.Remove(control);
                }
                else
                    if (control.GetType().GetProperty("Text") != null)
                    {
                        LiteralControl literal = new LiteralControl();
                        control.Parent.Controls.Add(literal);
                        literal.Text = (string)control.GetType().GetProperty("Text").GetValue(control, null);
                        control.Parent.Controls.Remove(control);
                    }
            }
            return;




        }