Język C# Copyright, 2004 © Adam Czajka.

Slides:



Advertisements
Podobne prezentacje
Java Data Objects.
Advertisements

Jarosław Kuchta Monitory.
Programowanie Wizualne WYKŁAD 5
1 Dzisiejszy wykład Klasa string wersja prosta wersja ze zliczaniem odwołań Wyjątki Specyfikator volatile.
Analiza wywołania i przebiegu przerwań w systemie Linux
Wskaźniki repetytorium Wskaźniki int Y = 1, X = 2; X = 5; int *p = &X; Y X p 4 4 p = &Y; *p = 4; 5.
tworzenie połączeń sieciowych

Java Server Faces Tomasz Nowak.
C++ w Objectivity Marcin Michalak s1744. Pomocne pakiety: Data Definition Language (DDL). Standard Template Library (STL). Active Schema.
Wybrane elementy C#, BCL
Implementacja ekstensji klasy
Java vs C# Michał Prządka Tomasz Nowak
OOPC++ - operatory1 Operatory class complex { private: double re, im; public: complex (double r, double i = 0) { re = r; im = i; } friend complex operator+
GUI Struktury Spotkanie integracyjne Nazwa wydziału: EAIiE Nazwa katedry: Informatyka Miejsce i data prezentacji: Kraków,
Język C# ( 5.0 ) using System; namespace HeWo { class Hello
Instrukcje Instrukcja : definicja obliczenia i określenie sposobu wykonania tego obliczenia. Program : ciąg instrukcji wykonywanych kolejno od pierwszej.
Mirosław Ochodek Sponsorzy: JFace Jak jeszcze szybciej tworzyć interfejsy? ECESIS Eclipse Community Education Project An.
Podstawy informatyki Informatyka stosowana Prowadzący: Grzegorz Smyk
Programowanie w środowiskach zintegrowanych wykład 1 PSZ Programowanie w Środowiskach Zintegrowanych > Systemy i środowiska zintegrowane > Środowisko zintegrowane.
Testowanie oprogramowania metodą badania pokrycia kodu
LINQ - Language Integrated Query Unifikacja dostępu do danych Uproszczone odpytywanie obiektów, daych i XML poprzez integrację zapytań z językiem programownia.
C#, Visual Studio 2010, .NET 4.0 dr inż. Marcin Radom
Język C# ( 4.0 ) using System; namespace HeWo { class Hello { static void Main(string [] args) { Console.WriteLine("Hello World!"); }
Rozdział 10: Item view classes
Łukasz Monkiewicz.
Współprogramy Plan: Motywacja Składnia Scenariusz obiektu współprogramu Przykłady Producent – konsument ( instrukcja attach ) Czytelnik -pisarze ( instukcja.
142 JAVA – sterowanie i wątki public class A20 extends javax.swing.JApplet implements ActionListener { private int licznik = 0; private JTextField t =
Aplikacje sieciowe Obiekty typu Socket. ServerSocket ClientSocket Socket ClientSocket Socket.
Warstwy aplikacji sieciowych
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tworzenie aplikacji sieciowych w języku Java Networking Prezentacja.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tworzenie aplikacji sieciowych w języku Java Objects classes,
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tworzenie aplikacji sieciowych w języku Java Exceptions Prezentacja.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tworzenie aplikacji sieciowych w języku Java Threads Prezentacja.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tworzenie aplikacji sieciowych w języku Java Java – overview.
Język C# Copyright, 2004 © Adam Czajka.
C# Windows Forms Zastosowania Informatyki Wykład 3
MS ASP.NET 2005/2006
Przestrzeń System podstawowe klasy i klasy bazowe.
Podstawy C# Grupa .NET PO.
Monika Rokosik Katarzyna Rola. Wykrywanie kursu akcji poniżej dołka znajdującego się pomiędzy dwoma sąsiednimi górkami, z których późniejsza jest mniejsza.
Java 3 MPDI Programowanie obiektowe W7. import java.io.*; public class X { // kontrukcja throws – określenie jakie wyjątki może dana metoda // sygnalizować
PIO 3_2, Zofia Kruczkiewicz1 Wykład 3 – część druga Iteracyjno-rozwojowy cykl oprogramowania 3.
Krzysztof Manuszewski
Obsługa Systemu Operacyjnego Windows
Zarządzanie magazynem danych - Storage Spaces w Windows Server 2012 oraz w Windows 8 Błażej Miśkiewicz MCTMCP MCSA MCTS MCITP.
Asynchroniczność w Windows 8 Jakub Binkowski. O mnie Jakub Binkowski Lead.NET Developer.
Programowanie Windows na przykładzie C# część 1
db4o Kacper Skory Marcin Talarek
Tablice.
Adam Suwała DIY - DI.
Cz.8 Zdarzenia. Refleksja – przypomnienie Event Programowanie zdarzeniowe Do dzieła!
C# Platforma .NET CZ.3 Kuba Ostrowski.
Warsztaty C# Część 2 Grzegorz Piotrowski Grupa.NET PO
A. Jędryczkowski – 2006 ©. Tablica to struktura danych zawierająca zbiór obiektów tego samego typu i odpowiada matematycznemu pojęciu wektora (tablica.
Pliki elementowe – A. Jędryczkowski © 2007 Turbo Pascal umożliwia wykorzystanie w programach plików elementowych. Pliki takie zawierają informację zakodowaną
Tworzenie Aplikacji Internetowych dr Wojciech M. Gańcza 4.
Instrukcja switch switch (wyrażenie) { case wart_1 : { instr_1; break; } case wart_2 : { instr_2; break; } … case wart_n : { instr_n; break; } default.
Rozdział 3: Bezpieczeństwo w sieci opartej na systemie Windows 2000.
TROCHĘ HISTORII Marek Zając PO CO UŻYWAĆ OPENCL? Marek Zając.
Piotr Czapiewski Wydział Informatyki ZUT.  Extensible Markup Language  Język znaczników  Human-readable and machine-readable  Niezależny od platformy.
Wprowadzenie Przygotował Adam Zawadzki
Wydział Elektroniki Kierunek: AiR Zaawansowane metody programowania Wykład 6.
Wydział Elektroniki Kierunek: AiR Zaawansowane metody programowania Wykład 5.
Podstawy programowania (4)
1 Zagadnienia na egzamin. 2 Język C podsumowanie Struktura programu w języku C Zmienne, Stałe Operacje arytmetyczne Operatory logiczne Priorytety operatorów.
Operator == - przykład using System; class Test { public static void Main() { // Rownosc wartosci: True Console.WriteLine((2 + 2) == 4); // Rownosc referencji:
PHP (wstęp) Personal Home Page Tools (PHP Tools)
Strumienie, Wczytywanie, Zapisywanie, Operacje na plikach
Akademia C# - Lab2 Zmienne, instrukcje warunkowe, pętle, debugger,
Zapis prezentacji:

Język C# Copyright, 2004 © Adam Czajka

Plan Wstęp Przydział pamięci Funkcje - posłańców Tablice Pliki

Copyright, 2004 © Adam Czajka Język C# Zarządzanie pamięcią Obiekty ostatnio alokowane będą najpewniej zwalniane jako pierwsze. Obiekty ostatnio alokowane będą najpewniej zwalniane jako pierwsze. Obiekty, które jak dotąd długo żyły nie będą prawdopodobnie także i w najbliższym czasie zwalniane. Obiekty, które jak dotąd długo żyły nie będą prawdopodobnie także i w najbliższym czasie zwalniane. Obiekty alokowane razem będą najprawdopodobniej razem zwalniane. Obiekty alokowane razem będą najprawdopodobniej razem zwalniane.

Copyright, 2004 © Adam Czajka Język C# Zarządzanie pamięcią Zarządzanie pamięcią (ang. Garbage Collection) jest wielopokoleniowe Zarządzanie pamięcią (ang. Garbage Collection) jest wielopokoleniowe Pokolenie 0 – mała ale szybko dostępna pamięć, mieści się w pamięci podręcznej L2 Pokolenie 0 – mała ale szybko dostępna pamięć, mieści się w pamięci podręcznej L2 Pamięć pokolenia 0 to prosta tablica bajtów Pamięć pokolenia 0 to prosta tablica bajtów

Copyright, 2004 © Adam Czajka Język C# Zarządzanie pamięcią Obiekty pokolenia 0, które przetrwały zbieranie nieużytków są umieszczane w pamięci pokolenia 1 Obiekty pokolenia 0, które przetrwały zbieranie nieużytków są umieszczane w pamięci pokolenia 1 Obiekty pokolenia 1, które przetrwały zbieranie nieużytków są umieszczane w pamięci pokolenia 2 Obiekty pokolenia 1, które przetrwały zbieranie nieużytków są umieszczane w pamięci pokolenia 2

Copyright, 2004 © Adam Czajka Język C# Zarządzanie pamięcią – klasa GC GC.SupressFinalize(this); GC.Collect(); // pełna optymalizacja GC.Collect(0); // optymalizacja na poziomie 0 int genNum = GC.GetGeneration(this)

Copyright, 2004 © Adam Czajka Język C# Zarządzanie pamięcią – metoda Dispose class ResEx : IDisposable { ~ResEx() ~ResEx() { Dispose(false); Dispose(false); } public void Dispose() public void Dispose() { Dispose(true); Dispose(true); }

Copyright, 2004 © Adam Czajka Język C# Zarządzanie pamięcią – metoda Dispose protected void Dispose(bool disposing) protected void Dispose(bool disposing) { if (disposing) if (disposing) { GC.SupressFinalize(this); // Zwolnij obiekty zarządzalne { GC.SupressFinalize(this); // Zwolnij obiekty zarządzalne } // Zwolnij zewnętrzne zasoby // Zwolnij zewnętrzne zasoby } }

Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) funktory funktory obsługa zdarzeń obsługa zdarzeń Funkcje delegacyjne są wykorzystywane jako :

Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) class Sortownica { public delegate bool Kolejnosc(object o1, object o2); public void Sortuj(Array tab, Kolejnosc fun) { int i, j; for (j=0; j<tab.Length-1; j++) for (j=0; j<tab.Length-1; j++) for (i=j+1; j<tab.Length; j++) { if (fun(tab.GetValue(j), tab.GetValue(i)) if (fun(tab.GetValue(j), tab.GetValue(i)) { //zamień kolejność //zamień kolejność } }}

Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) public Sort { bool Porownaj_Int(object o1, object o2) bool Porownaj_Int(object o1, object o2) { int liczba1 = (int)o1; int liczba1 = (int)o1; int liczba2 = (int)o2; int liczba2 = (int)o2; return liczba1 < liczba2; return liczba1 < liczba2; } Funkcja porównująca dwa obiekty typu int

Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) static int [] tab = {9, 8, 3, 1, 4, 7}; static int [] tab = {9, 8, 3, 1, 4, 7}; static void Test() static void Test() { Sortownica s = new Sortownica(); Sortownica s = new Sortownica(); Sortownica.Kolejnosc fun = new Sortownica.Kolejnosc(PorownajInt); Sortownica.Kolejnosc fun = new Sortownica.Kolejnosc(PorownajInt); s.Sortuj(tab, fun); s.Sortuj(tab, fun); }}

Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia Obiektowość - definicja Abstrakcja - proceduralna - danych Hermetyzacja (określenie poziomów dostępu do obiektu) Dziedziczenie Porozumiewanie się poprzez komunikaty

Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia Obiektowość - definicja Abstrakcja - proceduralna - danych Hermetyzacja (określenie poziomów dostępu do obiektu) Dziedziczenie Porozumiewanie się poprzez komunikaty

Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia Upraszczają sposób notyfikacji o zdarzeniach Upraszczają sposób notyfikacji o zdarzeniach Mają ściśle określony model informowania (1 -> wielu) Mają ściśle określony model informowania (1 -> wielu) Zapewniają komunikację jednokierunkową Zapewniają komunikację jednokierunkową Posłańcy obsługujący zdarzenia:

Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia public class MediaEventArgs : EventArgs { public MediaEventArgs(bool _inserted) { inserted = _inserted; } public bool Inserted { get { return inserted; } } bool inserted = false; } Atrybuty komunikatu o zdarzeniu

Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia public class MediaPlayer { public delegate void MediaChangedHandler(object sender, MediaEventArgs eM); public event MediaChangedHandler OnMediaChangedHandler; public void AddHandler(MediaChangedHandler handler) { OnMediaChangedHandler += handler; } protected void OnMediaChanged(MediaEventArgs eM) { if (OnMediaChangedHandler != null) OnMediaChangedHandler(this, eM); } Dopisanie odbiorcy komunikatów

Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia public void TestMedia() { if (inserted) if (inserted) { MediaEventArgs args = new MediaEventArgs(true); OnMediaChanged(args); MediaEventArgs args = new MediaEventArgs(true); OnMediaChanged(args); } else else { MediaEventArgs args = new MediaEventArgs(false); OnMediaChanged(args); MediaEventArgs args = new MediaEventArgs(false); OnMediaChanged(args); } }} Wysłanie komunikatu

Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia class Komputer { MediaPlayer DVD; MediaPlayer DVD; void Start() void Start() { DVD = new MediaPlayer(); DVD = new MediaPlayer(); MediaPlayer.MediaChangedHandler handler = new MediaPlayer.MediaChangedHandler(OnMediaChanged); MediaPlayer.MediaChangedHandler handler = new MediaPlayer.MediaChangedHandler(OnMediaChanged); DVD.AddHandler(handler); DVD.AddHandler(handler); } Zadeklarowanie odbiorcy komunikatów w obiekcie docelowym

Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia public void OnMediaChanged(object sender, MediaEventArgs eM) public void OnMediaChanged(object sender, MediaEventArgs eM) { if (eM.Inserted) if (eM.Inserted) { } else else { } } } //class Komputer Funkcja obsługi zdarzenia – odbiera komunikaty o zdarzeniu

Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia obiekt_1 obiekt_2 obiekt_3 MediaPlayer MediaPlayer Add_Handler

Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia obiekt_1 obiekt_2 obiekt_3 MediaPlayer MediaPlayer Add_Handler

Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia obiekt_1 obiekt_2 obiekt_3 MediaPlayer MediaPlayer Add_Handler

Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia obiekt_1 obiekt_2 obiekt_3 MediaPlayer MediaPlayer Zdarzenie

Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia obiekt_1 obiekt_2 obiekt_3 MediaPlayer MediaPlayer OnMediaChanged

Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia obiekt_1 obiekt_2 obiekt_3 MediaPlayer MediaPlayer OnMediaChanged

Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia obiekt_1 obiekt_2 obiekt_3 MediaPlayer MediaPlayer OnMediaChanged

Copyright, 2004 © Adam Czajka Język C# Tablice int [] liczby = { 1, 3, 2, 9, 5, 6, 7, 8, 4, 10 }; int pierwsza = liczby[1]; int l_elems = liczby.Length; Array.Clear(liczby, 0, liczby.Length); Array.Reverse(liczby); Array.Reverse(liczby, 5, 3); Array.Sort(liczby); 3

Copyright, 2004 © Adam Czajka Język C# Tablice int [] liczby = { 1, 3, 2, 9, 5, 6, 7, 8, 4, 10 }; int pierwsza = liczby[1]; int l_elems = liczby.Length; Array.Clear(liczby, 0, liczby.Length); Array.Reverse(liczby); Array.Reverse(liczby, 5, 3); Array.Sort(liczby); 10 10

Copyright, 2004 © Adam Czajka Język C# Tablice int [] liczby = { 1, 3, 2, 9, 5, 6, 7, 8, 4, 10 }; int pierwsza = liczby[1]; int l_elems = liczby.Length; Array.Clear(liczby, 0, liczby.Length); Array.Reverse(liczby); Array.Reverse(liczby, 5, 3); Array.Sort(liczby); { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }

Copyright, 2004 © Adam Czajka Język C# Tablice int [] liczby = { 1, 3, 2, 9, 5, 6, 7, 8, 4, 10 }; int pierwsza = liczby[1]; int l_elems = liczby.Length; Array.Clear(liczby, 0, liczby.Length); Array.Reverse(liczby); Array.Reverse(liczby, 5, 3); Array.Sort(liczby); { 10, 4, 8, 7, 6, 5, 9, 2, 3, 1 }

Copyright, 2004 © Adam Czajka Język C# Tablice int [] liczby = { 1, 3, 2, 9, 5, 6, 7, 8, 4, 10 }; int pierwsza = liczby[1]; int l_elems = liczby.Length; Array.Clear(liczby, 0, liczby.Length); Array.Reverse(liczby); Array.Reverse(liczby, 5, 3); Array.Sort(liczby); { 1, 3, 2, 9, 5, 8, 7, 6, 4, 10 }

Copyright, 2004 © Adam Czajka Język C# Tablice int [] liczby = { 1, 3, 2, 9, 5, 6, 7, 8, 4, 10 }; int pierwsza = liczby[1]; int l_elems = liczby.Length; Array.Clear(liczby, 0, liczby.Length); Array.Reverse(liczby); Array.Reverse(liczby, 5, 3); Array.Sort(liczby); { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }

Copyright, 2004 © Adam Czajka Język C# class ArrayList { public virtual int Add(object value); public virtual int BinarySearch(object value); public virtual void Clear(); public virtual bool Contains(object item); public virtual int IndexOf(object value); public virtual void Insert(int index, object value); public virtual void Insert(int index, object value); public virtual void Remove(object obj); public virtual void RemoveAt(int index); public virtual void Reverse(); public virtual void Reverse(int index, int count); public virtual void Sort(); } Tablice dynamiczne

Copyright, 2004 © Adam Czajka Język C# Tablice dynamiczne class Tablica_Int { ArrayList tab; ArrayList tab; Tablica_Int() Tablica_Int() { tab = new ArrayList(); tab = new ArrayList(); } void Put(int idx, int val) void Put(int idx, int val) { tab.Insert(idx, val); tab.Insert(idx, val); }

Copyright, 2004 © Adam Czajka Język C# Tablice dynamiczne int Get(int idx) int Get(int idx) { int val = (int)tab[idx]; int val = (int)tab[idx]; return val; return val; } public int this[int idx] { get { return (int)tab[idx]; } set { tab.Insert(idx, value); } public int this[int idx] { get { return (int)tab[idx]; } set { tab.Insert(idx, value); } } }

Copyright, 2004 © Adam Czajka Język C# Tablice dynamiczne int Get(int idx) int Get(int idx) { int val = (int)tab[idx]; int val = (int)tab[idx]; return val; return val; } public int this[int idx] { get { return (int)tab[idx]; } public int this[int idx] { get { return (int)tab[idx]; } } }

Copyright, 2004 © Adam Czajka Język C# Zapis-odczyt plików FileStream FileStream Obsługa zapisu-odczytu plików : Przestrzeń nazw : System.IO

Copyright, 2004 © Adam Czajka Język C# Zapis-odczyt plików class FileStream { public FileStream(string path, FileMode mode); public FileStream(string path, FileMode mode, FileAccess fa); public override void Close(); public override void Flush(); public override int ReadByte(); public override long Seek(long offset, SeekOrigin origin); public override void WriteByte(byte value); public void SetLength(long lSize); public override long Length {get;} public override long Position {get; set;} public override bool CanRead{get;} public override bool CanWrite{get;} public override bool CanSeeek{get;} }

Copyright, 2004 © Adam Czajka Język C# Zapis-odczyt plików public FileStream(string path, FileMode mode, FileAccess fa, FileShare fs); FileMode.CreateNew FileMode.Create FileMode.Open FileMode.OpenOrCreate FileMode.Truncate FileMode.Append FileAccess.Read FileAccess.Write FileAccess.ReadWrite FileShare.None FileShare.Read FileShare.Write FileShare.ReadWrite

Copyright, 2004 © Adam Czajka Język C# Zapis-odczyt plików class FileStream { public override int ReadByte(); public override int Read(byte [] buf, int idx, int num); public override void WriteByte(byte value); public override int Write(byte [] buf, int idx, int num); }

Copyright, 2004 © Adam Czajka Język C# Zapis-odczyt plików void CopyFile(string ScrFileName, string DestFileName) { FileStream fileIn, fileOut; fileIn = new FileStream(ScrFileName, FileMode.Open, FileAccess.Read); fileOut = new FileStream(DestFileName, FileMode.Create, FileAccess.Write); fileIn.Seek(0, SeekOrigin.End); long len = fileIn.Position; fileIn.Seek(0, SeekOrigin.Begin); byte [] buffer = new byte[10000]; FileMode.Append, FileMode.Create, FileMode.CreateNew, FileMode.Open, FileMode.OpenOrCreate FileAccess.Read, FileAccess.Write, FileAccess.ReadWrite

Copyright, 2004 © Adam Czajka Język C# Zapis-odczyt plików try try { while (true) while (true) { int numRead = fileIn.Read(buffer, 0, 10000); int numRead = fileIn.Read(buffer, 0, 10000); if (numRead == 0) break; if (numRead == 0) break; fileOut.Write(buffer, 0, numRead); fileOut.Write(buffer, 0, numRead);} } finally finally { fileIn.Close(); fileIn.Close(); fileOut.Close(); fileOut.Close(); }}

Copyright, 2004 © Adam Czajka Język C# Zapis-odczyt plików BinaryWriter BinaryWriter BinaryReader BinaryReader Obsługa zapisu-odczytu plików binarnych : Przestrzeń nazw : System.IO

Copyright, 2004 © Adam Czajka Język C# class BinaryWriter { public BinaryWriter(Stream input); public virtual void Close(); public virtual void Flush(); public virtual long Seek(int offset, SeekOrigin origin); public virtual void Write(bool); public virtual void Write(byte); public virtual void Write(char); public virtual void Write(int); public virtual void Write(long); public virtual void Write(short); } Pliki binarne

Copyright, 2004 © Adam Czajka Język C# Pliki binarne class BinaryReader { public BinaryReader(Stream input); public virtual void Close(); public virtual byte ReadByte(); public virtual byte ReadBoolean(); public virtual char ReadChar(); public virtual short ReadInt16(); public virtual int ReadInt32(); public virtual long ReadInt64(); public virtual string ReadString(); }

Copyright, 2004 © Adam Czajka Język C# FileStream fileOut; BinaryWriter bw; fileOut = new FileStream(DestFileName, FileMode.Create, FileAccess.Write); bw = new BinaryWriter(fileOut); bw.Write((int)16);bw.Write((long)24);bw.Write(true);bw.Write(Test);bw.Flush();bw.Close() Pliki binarne

Copyright, 2004 © Adam Czajka Język C# FileStream fileIn; BinaryReader br; fileIn = new FileStream(DestFileName, FileMode.Open,FileAccess.Read); br = new BinaryReader(fileIn); int a = br.ReadInt32(); long b = br.ReadInt64(); bool c = br.ReadBoolean(); string s = br.ReadString(); br.Close() Pliki binarne

Copyright, 2004 © Adam Czajka Język C# class First { int licznik; int licznik; string nazwa; string nazwa; public First(int _l, string _n) public First(int _l, string _n) { licznik = _l; nazwa = _n; licznik = _l; nazwa = _n; } public int Licznik public int Licznik { get { return licznik; } get { return licznik; } } Pliki binarne - serializacja

Copyright, 2004 © Adam Czajka Język C#.... public string Nazwa public string Nazwa { get { return nazwa; } get { return nazwa; } } public void Zapisz(BinaryWriter bw) public void Zapisz(BinaryWriter bw) { bw.Write(licznik); bw.Write(licznik); bw.Write(nazwa); bw.Write(nazwa); }.... Pliki binarne - serializacja

Copyright, 2004 © Adam Czajka Język C#.... public void Czytaj(BinaryReader br) public void Czytaj(BinaryReader br) { licznik = br.ReadInt32(); licznik = br.ReadInt32(); nazwa = br.ReadString(); nazwa = br.ReadString(); } public static First Odtworz(BinaryReader br) public static First Odtworz(BinaryReader br) { int l = br.ReadInt32(); int l = br.ReadInt32(); string s = br.ReadString(); string s = br.ReadString(); return new First(l, s); return new First(l, s); }} Pliki binarne - serializacja

Copyright, 2004 © Adam Czajka Język C# FileStream fileOut; BinaryWriter bw; fileOut = new FileStream(DestFileName, FileMode.Create, FileAccess.Write); bw = new BinaryWriter(fileOut); First f = new First(1, Text); f.Zapisz(bw);bw.Close(); Pliki binarne - serializacja

Copyright, 2004 © Adam Czajka Język C# FileStream fileIn; BinaryReader br; fileIn = new FileStream(SrcFileName, FileMode.Open, FileAccess.Read); br = new BinaryReader(fileIn); First f = new First(); f.Czytaj(br);br.Close(); Pliki binarne - serializacja

Copyright, 2004 © Adam Czajka Język C# FileStream fileIn; BinaryReader br; fileIn = new FileStream(SrcFileName, FileMode.Open, FileAccess.Read); br = new BinaryReader(fileIn); First f = First::Odtworz(br); br.Close(); Pliki binarne - serializacja

Copyright, 2004 © Adam Czajka Język C# Zapis-odczyt plików TextWriter (StreamWriter, StringWriter) TextWriter (StreamWriter, StringWriter) TextReader (StreamReader, StringReader) TextReader (StreamReader, StringReader) Obsługa zapisu-odczytu plików tekstowych : Przestrzeń nazw : System.IO

Copyright, 2004 © Adam Czajka Język C# Pliki tekstowe TextWriter StreamWriter StringWriter TextReader StreamReader StringReader

Copyright, 2004 © Adam Czajka Język C# Pliki tekstowe class StreamWriter { StreamWriter(Stream s); StreamWriter(Stream s, bool Append); StreamWriter(Stream s, bool Append, Encoding c); StreamWriter(Stream s, Encoding c); public int Write(....); public string WriteLine (....); public string Flush(....); public string Close(....); }

Copyright, 2004 © Adam Czajka Język C# Pliki tekstowe FileStream fStr = new FileStream(DestFileName, FileMode.Create, FileAccess.Write); StreamWriter fOut = new StreamWriter(fileOut); if (fOut != null) { fOut.Write(To jest); fOut.Write(To jest); fOut.WriteLine(tekst !); fOut.WriteLine(tekst !); fOut.Flush(); fOut.Flush(); fOut.Close(); fOut.Close();}

Copyright, 2004 © Adam Czajka Język C# Pliki tekstowe StreamWriter fOut = File.CreateText(nazwa_pliku); if (fOut != null) { fOut.Write(To jest); fOut.Write(To jest); fOut.WriteLine(tekst !); fOut.WriteLine(tekst !); fOut.Flush(); fOut.Flush(); fOut.Close(); fOut.Close();}

Copyright, 2004 © Adam Czajka Język C# Pliki tekstowe - kodowanie przestrzeń nazw: System.Text Encoding { Default {get; } Unicode {get; } //2-bytes (0xFF, 0xFE) -> 0xFEFF BigEndianUnicode {get; } // 2-bytes (0xFE, 0xFF) -> 0xFEFF UTF8 {get; } //1-6 non-zero bytes RFC 2279 UTF7 {get; } // RFC 2152 ASCII {get; } //bytes 0x00 – 0x7F }

Copyright, 2004 © Adam Czajka Język C# FileStream fStr = new FileStream(DestFileName, FileMode.Create, FileAccess.Write); Encoding enc = new UTF7Encoding(); StreamWriter fOut = new StreamWriter(fileOut, enc); if (fOut != null) { fOut.Write(To jest); fOut.Write(To jest); fOut.WriteLine(tekst !); fOut.WriteLine(tekst !); fOut.Flush(); fOut.Flush(); fOut.Close(); fOut.Close();} Pliki tekstowe - kodowanie

Copyright, 2004 © Adam Czajka Język C# Pliki tekstowe class StreamReader { public StreamReader(Stream s); public StreamReader(Stream s, Encoding e); public StreamReader(Stream s, bool Detect); public StreamReader(Stream s, Encoding e, bool Detect); public int Peek(); public int Read(); public int ReadBlock(char [] buffer, int idx, int count); public string ReadLine (); public string ReadToEnd(); }

Copyright, 2004 © Adam Czajka Język C# Pliki tekstowe FileStream fStr = new FileStream(SrcFileName, FileMode.Open, FileAccess.Read); StreamReader fIn = new StreamReader(fileIn); if (fIn != null) { string buf; string buf; while ((buf = fIn.ReadLine()) != null) while ((buf = fIn.ReadLine()) != null) { Console.WriteLine(buf); Console.WriteLine(buf); } fIn.Close(); fIn.Close();}

Copyright, 2004 © Adam Czajka Język C# FileStream fStr = new FileStream(SrcFileName, FileMode.Open, FileAccess.Read); Encoding enc = new UTF7Encoding; StreamReader fIn = new StreamReader(fileIn, enc); if (fIn != null) { string buf; string buf; while ((buf = fIn.ReadLine()) != null) while ((buf = fIn.ReadLine()) != null) { Console.WriteLine(buf); Console.WriteLine(buf); } fIn.Close(); fIn.Close();} Pliki tekstowe - kodowanie

Copyright, 2004 © Adam Czajka Język C# środowisko class Environment { public static string [] GetLogicalDrives(); public static string GetFolderPath(Environment.SpecialFolder s); public static string SystemDirectory; {get;} public static string CurrentDirectory; {get; set} }

Copyright, 2004 © Adam Czajka Język C# środowisko Environment.SpecialFolder { Programs, //StartMenu - Programs Personal, //Moje Dokumenty Favourites, Startup, SendTo, DesktopDirectory, Cookies, History, System, ProgramFiles, CommonProgramFiles }

Copyright, 2004 © Adam Czajka Język C# środowisko.... string [] dyski = Environment.GetLogicalDrives(); foreach (string s in dyski) { Console.WriteLine(s); Console.WriteLine(s);} Environment.CurrentDirectory = a:\\; string folder = Environment.GetFolderPath(Environment.SpecialFolder.Personal);

Copyright, 2004 © Adam Czajka Język C# Atrybuty plików class DirectoryInfo { public DirectoryInfo(string path); public void Create(); public DirectoryInfo CreateSubdirectory(string path); public void Delete(); public void Delete(bool podkatalogi); void Refresh(); void MoveTo(string path);.....

Copyright, 2004 © Adam Czajka Język C# Atrybuty plików... bool Exists; {get;} string Name; {get;} string FullName; {get;} string Extenstion; {get;} DirectoryInfo Parent; {get;} DirectoryInfo Root; {get;} public DirectoryInfo[] GetDirectories(); public DirectoryInfo[] GetDirectories(string pattern); public FileInfo[] GetFiles(); public FileInfo[] GetFiles(string pattern); }

Copyright, 2004 © Adam Czajka Język C# Atrybuty plików class Directory { public static Exsits(string path); public static DirectoryInfo GetParent(string path); public static string GetDirectoryRoot (string path); public static DirectoryInfo CreateDirectory(string path); public static void Delete(string path); public static void Delete(string path, bool podkatalogi); public static void Move(string src, string dest);...

Copyright, 2004 © Adam Czajka Język C# Atrybuty plików... public static string[] GetDirectories(string path); public static string[] GetDirectories(string path, string pattern); public static string[] GetFiles(string path); public static string[] GetFiles(string path, string pattern); DateTime GetCreationTime(string path); DateTime GetLastAccessTime(string path); DateTime GetLastWriteTime(string path); void SetCreationTime(string path, DateTime dt); void SetLastAccessTime(string path, DateTime dt); void SetLastWriteTime(string path, DateTime dt); }

Copyright, 2004 © Adam Czajka Język C# Atrybuty plików.... string pliki [] = *.*); foreach (string s in pliki) { Console.WriteLine(s); Console.WriteLine(s);}

Copyright, 2004 © Adam Czajka Język C# Atrybuty plików class FileInfo { public FileInfo(string fileName); public bool Exists; {get;} public string Name; {get;} public string FullName; {get;} public string Extension; {get;} public string DirectoryName; {get;} public DirectoryInfo Directory; {get;} public long Length; {get;} public FileAttributes Attributes; {get;set} public DateTime CreationTime; {get;set} public DateTime LastAccessTime; {get;set} public DateTime LastWriteTime; {get;set}.....

Copyright, 2004 © Adam Czajka Język C# Atrybuty plików... public FileInfo CopyTo(string fileName); public FileInfo CopyTo(string fileName, bool overwrite); public void MoveTo(string fileName); public void Delete(); public void Refresh(); public FileStream Create(); public FileStream Open(FileMode fm); public FileStream Open(FileMode fm, FileAccess fa); public FileStream Open(FileMode fm, FileAccess fa, FileShare fs); public FileStream OpenRead(); public FileStream OpenWrite(); public StreamReader OpenText(); public StreamWriter CreateText(); public StreamWriter AppendText(); }

Copyright, 2004 © Adam Czajka Język C# Atrybuty plików class File { public static bool Exists(string fileName); public static FileAttributes GetAttributes(string fileName); public static DateTime GetCreationTime(string fileName); public static DateTime GetLastAccessTime(string fileName); public static DateTime GetLastWriteTime(string fileName); public static void SetAttributes(string fileName, FileAttributes fa); public static void SetCreationTime(string fileName, DateTime dt); public static void SetLastAccessTime(string fileName, DateTime dt); public static void SetLastWriteTime(string fileName, DateTime dt);.....

Copyright, 2004 © Adam Czajka Język C# Atrybuty plików... public static void Copy(string s, string d); public static void Copy(string s, string d, bool overwrite); public static void Move(string s, string d); public static void Delete(string fileName); public static FileStream Create(string fileName); public static FileStream Open(string fileName, FileMode fm); public static FileStream Open(string fileName, FileMode fm, FileAccess fa); public static FileStream Open(string fileName, FileMode fm, FileAccess fa, FileShare fs); public static FileStream OpenRead(string fileName); public static FileStream OpenWrite(string fileName); public static StreamReader OpenText(string fileName); public static StreamWriter CreateText(string fileName); public static StreamWriter AppendText(string fileName); }

Copyright, 2004 © Adam Czajka Język C# Atrybuty plików FileAttributes { Archive, Compressed, Directory, Encrypted, Hidden, Normal, Offline, ReadOnly, System, Temporary }

Copyright, 2004 © Adam Czajka Język C# Atrybuty plików.... string nazwa if (File.Exists(nazwa)) { StreamReader fr = File.OpenText(nazwa); StreamReader fr = File.OpenText(nazwa); string buf; string buf; while ((buf = fr.ReadLine()) != null) while ((buf = fr.ReadLine()) != null) { Console.WriteLine(buf); Console.WriteLine(buf); } fr.Close(); fr.Close();}

Copyright, 2004 © Adam Czajka Język C# Atrybuty plików.... string nazwa if (File.Exists(nazwa)) { FileAttributes atr = File.GetAttributes(nazwa); FileAttributes atr = File.GetAttributes(nazwa); FileAttributes atrNew = atr | FileAttributes.ReadOnly; FileAttributes atrNew = atr | FileAttributes.ReadOnly; File.SetAttributes(nazwa, atrNew); File.SetAttributes(nazwa, atrNew);}

Copyright, 2004 © Adam Czajka Język C#