Pokazywanie postów oznaczonych etykietą CSHARP. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą CSHARP. Pokaż wszystkie posty

Czasopismo pro dialog wszystkie numery w pdf

Witam,

Na stronie www:


można pobrać wszystkie numery pro dialog wydawnictwa pti (polskie towarzystwo informatyczne).


Jak napisać program na zamianę stopni celcjusza na fahrenheita - algorytm w c++

Witam,

W tym post-cie wytłumaczę Wam jak napisać algorytm zamiany stopnie celcjusza na farenhajta.




Źródła - C++ (Program zamiany stopnie celsjusza na fahrenheita):


Opis:

1. - główna funkcja algorytm - wynikiem funkcji jest stopień fahrenheita ze stopnia celsjusza;
2. - program demonstrujący, działanie algorytmu;


Wszystkie pliki z źródłami (w tym exe do uruchomienia): Program zamiany stopnie celsjusza na fahrenheita



Co to jest język C++ i C#.net CSharp definicja języka programowania

Definicja język programowania

Co to jest:

C++ i C# CSharp

Definicja C++

Definicja C# CSharp

Skondensowaną odpowiedź można znaleźć poniżej:

Co to jest:
język C++ - definicja?
C++ - Obiektowa wersja języka programowania C, utworzona przez Bjarne Stroustrup.
C++ stał się popularny, ponieważ łączył tradycyjne programowanie w C z możliwościami technologii obiektowej. Smalltalk i inne języki obiektowe nie posiadają struktur znanych ze zwykłych języków, takich jak C i Pascal. Najbardziej rozpowszechnionym komercyjnym kompilatorem języka programowania C++ dla Windows jest Visual C++ i C++ Builder.
Co to jest:
język C# CSharp - definicja?
C# (CSharp) - Obiektowy język programowania oparty o C++ z elementami języków Basic i Java. Na przykład podobnie do języka programowania Java, C# zapewnia automatyczne usuwanie zbędnych danych z pamięci (nieużytków) - jest to funkcja nie obecna w języku C++. C#, przeznaczony dla platformy .NET_Framework , obsługuje XML i SOAP oraz ma dostęp do biblioteki klas .NET.


Język programowania C++ jest uznawany za jeden z "najlepszych" w szerokim tego słowa znaczeniu na świecie.

Parser Analizator Składniowy ONP wyrażenie arytmetyczne algorytm

Witam,

W tym post-cie wytłumaczę Wam jak napisać algorytm PARSER na wyrażenie arytmetyczne.
PARSER (analizator składniowy) w przypadku naszego programu sprawdza, czy wyrażenie arytmetyczne opierające się na znakach: ["+", "-", "*", "/", "(", ")", "," i wszystkie cyfry] jest poprawne czy nie.
Algorytm wykorzystuje ONP - Odwrotna Notacja Polska.



Analizator składniowy korzystający z algorytmu ONP wykorzystujący Stos:
Więcej tutaj
 


Źródła - C++ (PARSER - analizator składniowy: wyrażenie arytmetyczne):


Opis:

1. - główna funkcja algorytm PARSER, posiłkuje się funkcjami pomocniczymi (w tym funkcją PARSER_REKURENCJA) - wynikiem funkcji jest PRAWA LUB FAŁSZ;
2. - funkcja pomocnicza, odpowiedzialna za nawiasy;
3. - funkcja pomocnicza, pobiera znak po znaku ze string-a (napisu), wprowadzonego przez użytkownika;


Wszystkie pliki z źródłami (w tym exe do uruchomienia): Program sprawdzanie wyrażenie arytmetyczne (ONP)
Sam algorytm: Program (ONP)



ONP - Odwrotna Notacja Polska, algorytm program matematyka

Witam,

W tym post-cie wytłumaczę Wam jak napisać program (algorytm) na Odwrotną Notacje Polską.
Odwrotna Notacja Polska - to zapis wyrażeń arytmetycznych bez nawiasów wraz z kolejnością wykonywania działań.
Jest to przydatne w przypadku gdy w programie komputerowym wpisujemy string (napis) wyrażenia arytmetycznego. Program nie potrafi wyliczyć takiego wyrażenia, gdyż nie zna kolejności wykonywania działań. Dopiero po zamianie na ONP - otrzymany string (napis), program sukcesywnie przetwarza i wylicza wynik.

Przykład:
(2+3)*5 = ONP (2 3 + 5 * ); - program bierze znak "+" i 2 oraz 3, następnie wynik 5, mnoży (drugi znak "*") z 5.
2+2*(3-2) = ONP (2 2 3 2 - * + ); - program pobiera ze stosu char "-" i wykonuje działanie 3-2, następnie pobiera ze stosu char "*" i 3-2=1 mnoży z 2+2 ("+" - ostatni char na stosie).
Uwaga - przed zamianą na ONP program parsuje string-a i sprawdza, czy wyrażenie arytmetyczne jest poprawne.
Dopuszczalne znaki ["+", "-", "*", "/", "(", ")", "," i wszystkie cyfry].


Odwrotna Notacja Polska:
Więcej tutaj

Dynamiczna Struktura Danych - STOS:
Więcej tutaj
 


Źródła - C++ (Odwrotna Notacja Polska - ONP):


Opis:

1. - główna funkcja do ONP, posiłkuje się funkcjami pomocniczymi (w tym funkcją STOS implementującą strukturę dynamiczną STOS) - tworzy ONP;
2. - funkcja pomocnicza, pobiera (cyfry), ze string-a (napisu) wprowadzonego przez użytkownika programu;
3. - funkcja pomocnicza;


Wszystkie pliki z źródłami (w tym exe do uruchomienia): Algorytm z programem
Sam algorytm: Algorytm program



Co to jest biblioteka DLL dynamiczna i statyczna, program biblioteki DLL Delphi

Co to jest biblioteka DLL?

DLL (Dynamic Link Library) - Wykonywalny moduł programu (pod program), pełniący określone funkcje. Biblioteki DLL są powszechnie wykorzystywane w systemie Windows. Nie są one wywoływane bezpośrednio przez użytkowników, lecz przez aktualnie uruchomione programy (program). Biblioteka DLL rozszerza funkcjonalność programu. Mogą one być dość proste - tak, jak biblioteka pozwalająca narysować trójwymiarową ramkę wokół okna dialogowego (CTL3DV2.DLL) lub bardzo złożone, jak na przykład w pełni rozbudowany interpreter języka Visual Basic (VBRUN400.DLL).
Biblioteka DLL projektowana jest zazwyczaj w ten sposób, żeby z zawartej w niej funkcji mogło korzystać kilka programów naraz (np. kod wielobieżny). System Windows zawiera wiele bibliotek DLL wykorzystywanych przez aplikację (wystarczy poszukać w folderze \WINDOWS\SYSTEM plików z rozszerzeniami .DLL). Aplikacje mogą też mieć własne biblioteki, przechowywane w folderze instalacyjnym danego programu lub w folderze \WINDOWS\SYSTEM.
W systemie DOS nigdy nie istniał żaden oficjalny mechanizm pozwalający na dynamiczne łączenie (dynamiczna DLL) i współdzielenie zasobów w czasie rzeczywistym. Co prawda tworzono w tym celu programy ISR i TSR, ale takie działania nie były nigdy popierane przez Microsoft i często doprowadzały do konfliktów programowych. Niestety również w świecie bibliotek DLL pojawiają się konflikty.


Tworzymy komplet bibliotek DLL (statyczna DLL i dynamiczna) w Delphi 2010.



Opis:
1. DllF - program z którego uruchamiamy wszystkie 3 bliblioteki DLL.
  a) - funkcja SayHello, pobrana statycznie z pierwszej biblioteki DLL o nazwie DllFull.dll
  b) - funkcja DoSomethingReallyCool, pobierana statycznie również z pierwszej biblioteki DLL o nazwie DllFull.dll
  c) - funkcja ShowForm, pobrana w sposób statyczny z trzeciej biblioteki DLL o nazwie DllFull3.dll

  d)

- Na skutek naciśnięcia przycisku BitBtn3, ładuje się DYNAMICZNIE biblioteka DllFull2.dll (DLL dynamiczna) z funkcją SayHelloDyn
  - - załadowanie biblioteki dynamicznie
  - - sprawdzenie czy biblioteka się załadowała
  - - pobranie z załadowanej biblioteki funkcji SayHelloDyn
  - - jeśli załadowane wykonaj funkcje
  - - zwolni bibliotekę załadowaną dynamicznie z pamięci.


Przykładowa biblioteka DLL jej konstrukcja, jest przedstawiona poniżej - biblioteka DllFull2.dll:

Każda biblioteka DLL zaczyna się od:
library i jej nazwy.

Na samym końcu mamy:
exports, w którym podajemy jakie funkcje biblioteka DLL ma przekazać na zewnątrz do innych programów.


Różnica między biblioteką ładowaną w sposób statyczny (statyczna DLL) a dynamiczny (dynamiczna DLL), polega na tym, że biblioteka DLL dynamiczna ładujemy do pamięci program-u wtedy gdy zaistnieje taka potrzeba, zaś statyczna DLL jest już ładowana przy kompilacji program-u!



Wszystkich zainteresowanych chcących pogłębić wiedzę o bibliotekach DLL, np. o stworzenie jednej biblioteki DLL, która jest wykorzystywana zarówno przez Delphi jak i C++ Builder zapraszam do:

Międzyplatformowe dynamiczne biblioteki DLL



Pliki do pobrania:
1. Źródła i exe:
-pobierz
2. EXE:
-pobierz



Rysowanie wykresu wielomianu, ONP funkcja wielomianowa - program C++

Witam,

Jeżeli jesteś doświadczonym programistą zacznij od paru akapitów dalej, pomiń wstęp.

Jeżeli chodzisz do gimnazjum lub liceum (przygotowujesz się do matury) i Pani nauczycielka prosi Was o rysowanie wykresu wielomianu za pomocą metod (funkcja wielomianowa), które przewiduje program nauczania. - ZRÓB TO, UCZ SIĘ
Jednak gdy to zrobisz a Pan nauczyciel poprosi Ciebie o narysowanie takiej funkcji, której nie ma w książkach - niestety nie będziesz wiedział czy praca domowa jest wykonana właściwie, czy dobrze stosujesz rysowanie wykresu wielomianu (funkcja wielomianowa).
Nie martw się - uruchom mój program, wpisz funkcję wielomianową (funkcja wielomianowa), o którą Pani/Pan nauczycielka prosiła abyś narysował i sprawdź, czy Twoja praca domowa jest wykonana poprawnie.
Pamiętaj, że ten program tylko rysuje wykres wielomianu - program C++.

W tym post-cie wytłumaczę Wam jak napisać program na rysowanie wykresu wielomianu z użyciem ONP.


Odwrotna Notacja Polska - ONP:


Odwrotna Notacja Polska - ONP
 



Poniżej gotowy program wykresu wielomianu - do uruchomienia funkcja wielomianowa:
Program - Rysowanie wielomianu, funkcja wielomianowa
(to jest główne miejsce dla gimnazjalistów i licealistów), jak i również dla studentów i programistów. A poniższa część już tylko dla programistów i studentów informatyki ONP



Źródła - C++ - Uwaga: Ze względu na ograniczoność miejsca post-a, należy korzystać z plików źródłowych w których są wszystkie inne funkcje oraz funkcje pomocnicze do poniższych funkcji.
1. ONP:

Źródła - C++
2. Analizator Składniowy:

Opis:

1. - główna funkcja do ONP, posiłkuje się funkcjami pomocniczymi;
2. - główna funkcja do Analizowanie poprawności string-a pod względem semantyki wyrażenia matematycznego, korzysta z pomocniczych funkcji;
3. - pierwsza funkcja pomocnicza do Analizatora Składniowego;
4. - pierwsza funkcja pomocnicza do ONP;
5. - druga f- pomocna do ONP;
6. - trzecia f- pomocna do ONP;
7. - czwarta f- do ONP;
8. - piąta f- do ONP;
9. - główna część do rysowania;
10. - druga główna część do rysowania;
11. Struktury Dynamiczne:






Wszystkie pliki z źródłami: Program - Wykres wielomianu w C++



Kody Kreskowe UPC-E Barcode Generator

W tym post-cie opiszę jak napisać program i algorytm, który generuje kod kreskowy (+zapis do pliku graficznego i wydruk) w standardzie UPC-E 1D.
Program i algorytm wykonany jest w języku: C# dla platformy NET Framework.

Co to jest kod kreskowy i co to jest kod kreskowy UPC-E 1D?


Opis: patrz tutaj
i
tutaj
oraz
tutaj.
 


KOD ŹRÓDŁOWY ALGORYTMU DO ZAMIANY KODU UPC-E 1D NA KOD UPC-A 1D, wykorzystywany przez generator kodu UPC-E 1D (do wydruku i do zdjęcia) W C# NET:
[Generator: NBarCodes.dll (strona www twórców).]

Opis:

1. private string konwerter_na_UPCA(string upce):string; - ALGORYTM;
2. NBarCodes.dll (strona www twórców) - darmowa do użytku komercyjnego biblioteka do wyrysowania kod kreskowego UPC-E 1D - wyrysowany kod zapisujemy do pliku lub drukujemy;
3. BusinessRefinery.Barcode.Win.dll; - płatna biblioteka do wyrysowania kod kreskowego UPC-E 1D - wyrysowany kod zapisujemy do pliku lub drukujemy.



Uwaga: aplikacja wymaga .NET Framework w wersji 4.0, gdyż korzysta z najnowszych technologii do generowania kodu UPC-E 1D wraz z zapisem do pliku i drukowaniem.
Link do pobrania: tutaj
Pliki do pobrania:
1. Źródła i exe - C# NET (exe i kody źródłowe programu i algorytmu)
-pobierz
2. Exe - C# NET (exe - działający program bez źródeł)
-pobierz




Miłej zabawy!


SVN Visual Studio konfiguracja i instalacja

W tym post-cie opiszę jak korzystać z SVN [Subversion] (systemu kontroli wersji) w Visual Studio: 2008, 2010 i 2012.


Więcej o SVN [Subversion]:
tutaj
Więcej o systemie kontroli wersji:
tutaj
 


Aby używać SVN [Subversion] w Visual Studio należy zainstalować: AnkhSVN, które pobieramy z adresu WWW: pobierz
Instrukcja jak korzystać z AnkhSVN (a tym samym z SVN [Subversion]) jest tutaj: patrz

Do składowania swoich repozytoriów SVN [Subversion] korzystamy z darmowego do zastosowań komercyjnych serwisu internetowego: CODEBASEHG [Patrz tutaj].

Po utworzeniu repozytorium na codebasehg.com, możemy łączyć się z nim poprzez Nasze Visual Studio na dwa sposoby:
1. Zwyczajnie poprzez https. Przy probie łączenia się ze zdalnym repozytorium zostaniemy poproszeni o login i hasło do naszego konta codebasehg.com.
Lub
2. Poprzez ssh. Aby łączyć się poprzez ssh należy wygenerować klucz prywatny i publiczny na Swoim komputerze przy pomocy programu PuTTYgen - pobierz [trwa to kilka minut]

Klucz publiczny należy dołączyć do serwisu: codebasehg.com na Naszym koncie:



Przed łączeniem się Visual Studio z codebasehg.com poprzez ssh, należy uruchomić program Pageant (stąd go można pobrać: pobierz), aby przy każdym połączeniu nie podawać go od nowa.

Niestety serwis codebasehg.com, umożliwia wybór ssh tylko w wersji płatnej. W wersji darmowej do zastosowań komercyjnych jesteśmy skazani na https.
Uwaga - Co więcej konkurencja: GITHUB i BITBUCKET - W OGÓLE NIE WSPIERA SVN !!!

W serwisie codebasehg.com, wybór łączenia podajemy w tym miejscu:



A tak wygląda okno Visual Studio z SVN [Subversion] :


Uwaga - Należy pamiętać, że po zainstalowaniu: AnkhSVN, należy te narzędzie uaktywnić w: "Tools->Options->Source Control->Plug-in Selecion->Current source control plug-in:"


SVN [Subversion] - Przykład mojego użycia
Patrz tutaj


Miłej zabawy!




GIT Visual Studio konfiguracja i instalacja

W tym post-cie opiszę jak korzystać z GIT (systemu kontroli wersji) w Visual Studio: 2008, 2010 i 2012.


Więcej o GIT:
tutaj
Więcej o systemie kontroli wersji:
tutaj
 


Aby używać GIT w Visual Studio należy zainstalować: GitExtensions, które pobieramy z adresu WWW: pobierz
Instrukcja jak korzystać z GitExtensions (a tym samym z GIT) jest tutaj: patrz
Uwaga- Instalacja ta umożliwia też korzystanie z natywnego GIT w linii komend w oknie konsoli GIT.

Do składowania swoich repozytoriów GIT korzystamy z darmowego do zastosowań komercyjnych serwisu internetowego: GITHUB [Patrz tutaj].

Po utworzeniu repozytorium na github.com, możemy łączyć się z nim poprzez Nasze Visual Studio na dwa sposoby:
1. Zwyczajnie poprzez https. Przy probie łączenia się ze zdalnym repozytorium zostaniemy poproszeni o login i hasło do naszego konta github.com.
Lub
2. Poprzez ssh. Aby łączyć się poprzez ssh należy wygenerować klucz prywatny i publiczny na Swoim komputerze przy pomocy programu PuTTYgen - pobierz [trwa to kilka minut]
Klucz publiczny należy dołączyć do serwisu: github.com na Naszym koncie (zgodnie z instrukcją: Patrz - Step 4: Add your SSH key to GitHub).
Przy łączeniu się Visual Studio z github.com poprzez ssh, zostaniemy poproszeni o załadowanie klucza prywatnego do programu SSH Pageant (dzieje się to automatycznie), aby przy każdym połączeniu nie podawać go od nowa.


W serwisie github.com, wybór łączenia podajemy w tym miejscu:



A tak wygląda okno Visual Studio z GIT [GitExtensions]:



GITHUB - Przykład mojego użycia
Patrz tutaj


Miłej zabawy!




DLL z Visual Studio do Delphi 7 i C++

W tym post-cie opiszę jak napisać bibliotekę DLL w Visual Studio: 2008 i 2010, a następnie używać ją natywnie w Delphi i C++ Builder.
W zasadzie dzięki mojemu sposobowi bibliotekę DLL można używać w każdym narzędziu programistycznym tak jakby była to biblioteka DLL napisana w tym właśnie narzędziu programistycznym.

Do tworzenia między platformowej biblioteki DLL wykorzystam bibliotekę Unmanaged Exports.



Zaczynamy od kodu dla VISUAL STUDIO 2008 (jest to przykład dla szablonu [templates]):

Plik szablonu (nierozpakowany w wersji zip) umieszczamy w katalogu:
C:\Users[Użytkownicy]\Nazwa użytkownika\Documents\Visual Studio 2008\Templates\ProjectTemplates\Visual C#\tutaj

Natomiast szablon pobieramy z adresu WWW:
pobierz

Teraz możemy w Visual Studio 2008 wybrać:
File->New->Project->Visual C#->My Templates->UnmanagedExportLibrary
 



KODY BIBLIOTEKI DLL Z WYKORZYSTANIEM SZABLONU:  


KODY BIBLIOTEKI DLL Z WYKORZYSTANIEM PACKAGE MANAGER CONSOLE: [Instrukcja jak zainstalować PACKAGE MANAGER CONSOLE - tutaj]


Przykład użycia C++ BUILDER 2010:


Przykład użycia DELPHI 7:


Uwaga - jak używasz Visual Studio 2008 i mojego sposobu, biblioteka DLL po kompilacji będzie osobno dla wersji 32 bitowej i 64 bitowej w odpowiednich katalogach i tylko z nich ją należy pobierać.

Uwaga2 - jak używasz Visual Studio 2010 i mojego sposobu, biblioteka DLL po kompilacji będzie zawsze jedna w wersji zależnej od ustawień dla projektu biblioteki DLL [PATRZ TUTAJ].

Pamiętaj VISUAL STUDIO umożliwia pisanie natywnego kodu 32 i 64 bitowego.
Jednak moje dema w Delphi 7 i nawet w C++ Builder 2010 umożliwiają pisanie natywnych aplikacji tylko 32 bitowych.
Dlatego należy dla nich używać tylko 32 bitowej biblioteki DLL.
Dopiero od RAD Studio XE (C++ Builder XE) możliwe jest pisanie natywnego kodu 64 bitowego.
Ale o tym innym razem w innym post-cie (poświęconym tylko opisaniu produktów firm: Borland, CodeGear i Embarcadero).



Pliki do pobrania:
1. Źródła - C# (VISUAL STUDIO 2008) (kody źródłowe DLL)
-pobierz
2. Źródła - C# (VISUAL STUDIO 2010) (kody źródłowe DLL)
-pobierz
3. DEMO - C++ Builder 2010 (z DLL od VS 2008)
-pobierz
4. DEMO - C++ Builder 2010 (z DLL od VS 2010)
-pobierz
5. DEMO - DELPHI 7 (z DLL od VS 2008)
-pobierz
6. DEMO - DELPHI 7 (z DLL od VS 2010)
-pobierz



GITHUB - ŹRÓDŁA WSZYSTKICH PLIKÓW:
Patrz tutaj



Notepad notatnik z szyfrowaniem kompresją ZIP i zapisem WORD PDF

Uczymy się programować w Visual Studio 11 (2012), na przykładzie poniższej komercyjnej aplikacji, wraz z kodami źródłowymi.

Udostępniam do Waszej dyspozycji tak jak wszystko na moim blogu [darmowe do zastosowań komercyjnych] program NotePadPlus, - zaawansowany notatnik z szyfrowaniem, kompresją ZIP i zapisem do TXT, RTF, HTML, WORD 2003 (doc), WORD 2007 (docx) i PDF. Program jest wraz z kodami źródłowymi i można go dowolnie wykorzystywać. Jest doskonałą nauką jak tworzyć swoją pierwszą komercyjną aplikację.

Pliki do pobrania:
1. Moja Pierwsza Komercyjna Aplikacja (exe)
-pobierz
2a. Moja Pierwsza Komercyjna Aplikacja (kody źródłowe - Visual Studio 2008/2010)
-pobierz
2b. Moja Pierwsza Komercyjna Aplikacja (kody źródłowe - Visual Studio 2012 [ver. 11])
-pobierz
3. Moja Pierwsza Komercyjna Aplikacja (exe - Instalator)
-pobierz


Technologia: .NET;
Język: C#.

Miłej zabawy.

W następnym post-cie przedstawię i opiszę bibliotekę [narzędzie WiX], która służy do tworzenia wersji instalacyjnych programów pisanych w środowisku Visual Studio. Opis, będzie bazował na kodzie instalatora, który jest w programie NotePadPlus i w zasadzie opisywał wyczerpująco tę bibliotekę [narzędzie], z pominięciem tworzenia instalacji baz danych.

Uwaga - Jak otworzysz kody źródłowe, ta pamiętaj, że jak nie masz zainstalowanego WiX w Visual Studio, wtedy tworzenie instalki się nie powiedzie, ta część solucji będzie niedostępna, ale oczywiście program się będzie kompilował i działał.

WiX do pobrania dla:
Visual Studio 2005-2010 - Patrz tutaj (język ang.)
Visual Studio 2012 (ver. 11) - Patrz tutaj (język ang.)


Solucja składa się z trzech projektów:
1. notepadplus - główny projekt;
2. MarkupConverter - biblioteka do konwersji między innymi RTF do HTML [darmowa do zastosowań komercyjnych]:
- Patrz tutaj (język ang.);
3. SetupProject1 - projekt do tworzenia wersji instalacyjnej aplikacji.

Dodatkowo program NotePadPlus korzysta z bibliotek:
a) Microsoft.Office.Interop.Word.dll - Do obsługi WORD-a, jest częścią: NET Framework;
b) myCryptography.dll - Do obsługi szyfrowania (Moja własna);
c) nControls.dll - Nowsza kontrolka RichTextBox (Moja własna);
d) ICSharpCode.SharpZipLib.dll - Do obsługi między innymi kompresji ZIP:
- Patrz tutaj (język ang.).

Powodzenia!!!


Kontrolki C# Invalidate Update Refresh

Opiszę łopatologicznie jakie są różnice między trzema metodami służącymi do odrysowywania dowolnej kontrolki Windows w środowisku: C# .NET Framework i C# .NET CF (Compact Framework):

1. Invalidate();
2. Update();
3. Refresh().

Zaczynamy:

1. Invalidate() - odrysowuje kontrolkę, odbywa się to poprzez dodanie do kolejki komunikatów komunikatu: WM_PAINT. W rezultacie kontrolka nie jest odrysowywany od razu, lecz dopiero po obsłużeniu wszystkich zaległych komunikatów.

2. Update() - zdejmuje oczekujący w kolejce komunikat WM_PAINT, a następnie obsługuje go. W rezultacie kontrolka jest odrysowywana natychmiast. Jeśli w kolejce komunikatów nie został wcześniej umieszczony komunikat WM_PAINT, metoda nic nie robi.

Czyli w kodzie programu, gdy chcemy natychmiast odrysować kontrolkę robimy tak: kontrolka.Invalidate();
kontrolka.Update();

3. Refresh() = Invalidate() + Update().

Podsumowując: W zasadzie prawie zawsze wystarcza metoda Invalidate(), natomiast możemy ją wesprzeć metodą Update() dla natychmiastowego odrysowania, np. gdy chcemy mieć płynność animacji lub gdy wykonujemy instrukcje programistyczne, które blokują przetwarzanie komunikatów. Metoda Refresh() to nic innego jak udogodnienie dla programisty.


Zapis odczyt obiektów w plikach binarnych C# .NET Compact

W tym post-cie przedstawię zapis i odczyt klas-obiektów (rekordów naszej własnej plikowej bazy danych) do plików binarnych. Zapisywane i odczytywane będą klasy-obiekty (rekordy plikowej bazy danych) - instancje obiektów klas, w zasadzie instancja jednego obiektu klasy reprezentującego naszą całą tabele do jednego pliku binarnego. Użyjemy do tego SPECJALNĄ serializację dla .NET Compact Framework (Serializacja klas na urządzenia mobilne) dla urządzeń mobilnych.

Zaczynamy jeszcze raz od wyjaśnienia co to w ogóle jest serializacja.


Serializacja – w programowaniu komputerów proces przekształcania obiektów, tj. instancji określonych klas, do postaci szeregowej, czyli w strumień bajtów, z zachowaniem aktualnego stanu obiektu. Serializowany obiekt może zostać utrwalony w pliku dyskowym, przesłany do innego procesu lub innego komputera poprzez sieć. Procesem odwrotnym do serializacji jest deserializacja. Proces ten polega na odczytaniu wcześniej zapisanego strumienia danych i odtworzeniu na tej podstawie obiektu klasy wraz z jego stanem bezpośrednio sprzed serializacji.
Serializacja służy do zapisu stanu obiektu, a później do odtworzenia jego stanu. Mechanizm ten jest używany między innymi na platformach: .NET, Java, PHP, Python, Ruby.

Źródło
 

Idę tego post-a jest pokazanie jak na urządzeniach mobilnych, np. z systemem operacyjnym Windows CE (Embedded), radzić sobie z zapisem i odczytem rekordów (reprezentowanych przez klasy) do plików binarnych.

Zaczynamy..

Znów skorzystamy z darmowej do zastosowań komercyjnych biblioteki:
(ALE TYM RAZEM JEJ NIE OPISUJE TYLKO WYKORZYSTUJE - opis jest w pierwszym linku w post-cie)
compactformatterplus.
Poniżej link do niej i do jej twórców. [Swoją drogą jest tam dużo użytecznych darmowych do zastosowań komercyjnych bibliotek dla .NET i .NETCF]
Uwaga - aby ja pobrać wystarczy darmowa rejestracja.
https://www.codeproject.com/Articles/21518/CompactFormatterPlus-Generic-Serializer-for-Full-a

Trzeba wiedzieć, że poprzez serializajcję niezależnie czy dla aplikacji desktopowych, czy dla aplikacji mobilnych możliwy jest zapisywać/odczyt tylko pojedynczej klasy/obiektu w jednym pliku binarnym. Nie można zapisać np. 10 instancji tych samych klas (a więc 10 rekordów) w jednym pliku binarnym - w zasadzie to pewnie się da, ale jest to zadanie skomplikowane i co więcej pracochłonne. CZAS TO PIENIĄDZ i ja pokażę jak zapisać to w sposób błyskawiczny. Cała sztuczka polega na tym, że zapisujemy jedną klasę/obiekt, w której mamy kolekcje klas/obiektów - czyli mamy kolekcję rekordów naszej tabeli.


MOJA KLASA DO:
ZAPISU INSTANCJI OBIEKTU DO PLIKU BINARNEGO (zapisu tabeli)
i
ODCZYTU INSTANCJI OBIEKTU Z PLIKU BINARNEGO (odczytu tabeli)



Dodatkowy potrzebny kod:


Użycie:


NO I MAMY OBSŁUGĘ PLIKOWEJ BAZY DANYCH, UFF, POWODZENIA.


Serializacja klas C# .NET Compact urządzenia mobilne

Zaczynamy od wyjaśnienia co to w ogóle jest serializacja.


Serializacja – w programowaniu komputerów proces przekształcania obiektów, tj. instancji określonych klas, do postaci szeregowej, czyli w strumień bajtów, z zachowaniem aktualnego stanu obiektu. Serializowany obiekt może zostać utrwalony w pliku dyskowym, przesłany do innego procesu lub innego komputera poprzez sieć. Procesem odwrotnym do serializacji jest deserializacja. Proces ten polega na odczytaniu wcześniej zapisanego strumienia danych i odtworzeniu na tej podstawie obiektu klasy wraz z jego stanem bezpośrednio sprzed serializacji.
Serializacja służy do zapisu stanu obiektu, a później do odtworzenia jego stanu. Mechanizm ten jest używany między innymi na platformach: .NET, Java, PHP, Python, Ruby.

Źródło
 

Idę tego post-a jest pokazanie jak na urządzeniach mobilnych, np. z systemem operacyjnym Windows CE (Embedded), radzić sobie z serializacją. Wiadomo, że na urządzeniach mobilnych mamy do czynienia z .NET Compact Framework, a nie z pełnym .NET Framework. A właśnie na: .NET Compact Framework, nie mamy dostępu do namespace:
using System.Runtime.Serialization.Formatters.Binary,
które jest niezbędne do korzystania z serializacji. Dokładnie to, aby serializować obiekty (klasy) potrzeba nam między innymi klasy: BinaryFormatter, który właśnie jest w tej przestrzeni.
Więcej czytaj: tutaj.

Można temu zaradzić!, Ufff..

Skorzystamy z darmowej do zastosowań komercyjnych biblioteki: compactformatterplus.
Poniżej link do niej i do jej twórców. [Swoją drogą jest tam dużo użytecznych darmowych do zastosowań komercyjnych bibliotek dla .NET i .NETCF]
Uwaga - aby ja pobrać wystarczy darmowa rejestracja.
https://www.codeproject.com/Articles/21518/CompactFormatterPlus-Generic-Serializer-for-Full-a


Ja teraz dokładnie opiszę i podam przykłady jak jej używać, gdyż Twórcy tej biblioteki dają tylko same źródła bez przykładów, a na stronie WWW też nie ma przykładów.


Biblioteka składa sie z trzech projektów stanowiących integralną całość.
Są to: ADOHelper, ISerial, CompactFormatterPlus.

Każdy z tych projektów należy dołączyć do Swojego głównego projektu dla którego piszemy software na urządzenie mobilne.
Dlaczego - bo oczywiście można by skompilować cały projekt, składający się z: ADOHelper, ISerial, CompactFormatterPlus i po kompilacji otrzymać trzy biblioteki dll - które można by potem dołączyć do Naszego projektu, ale zarówno Twórcy biblioteki [jest o tym wzmianka w linku, który udostępniłem], jak i Microsoft nie zaleca umieszczać bibliotek dll na urządzeniach mobilnych dlatego, że: w większości urządzeń mobilnych one po prostu nie działają, albo mogą powodować niewłaściwe działanie Naszego software.

Czyli dołączyliśmy te trzy projekty do Naszego projektu - warto zrobić sobie osobny folder w Naszym projekcie, np. Extenstions. Teraz wykonujemy Rebuild z wybranym: Set As StartUp Project ustawionym na Nasz główny projekt.
Po tej czynności dodajemy do Naszego głównego projektu w References trzy referencje z zakładki Naszego Projektu: ADOHelper, ISerial, CompactFormatterPlus.


I już mamy prawie koniec.
Teraz pozostał Nam sam kod.


ZAPIS INSTANCJI OBIEKTU DO PLIKU BINARNEGO:
ODCZYT INSTANCJI OBIEKTU Z PLIKU BINARNEGO:
Dodatkowy potrzebny kod:

Myślę, że problem serializacji na urządzenia mobilne został rozwiązany. Rozwiązując ten problem zyskaliśmy możliwość zapisywania do plików binarnych struktur i klas, czyli możemy tworzyć plikowe binarne baz danych.


Przykład użycia program:
( Zapis klas obiektów do plików w C#)
- dla urządzeń mobilnych.