Prezentarea se încărcă. Vă rugăm să așteptați

Prezentarea se încărcă. Vă rugăm să așteptați

.NET Framework Limbajul C#.

Prezentări similare


Prezentarea pe tema: ".NET Framework Limbajul C#."— Transcriere de prezentare:

1 .NET Framework Limbajul C#

2 Teme abordate I. Introducere în .NET Framework II. Aplicaţii consolă
III. Introducere în limbajul C# IV. Tipuri de date. Tipuri valoare predefinite V. Citire şi afişare în aplicaţii consolă VI. Constante şi variabile VII. Operatori VIII. Conversii IX. Instrucţiuni X. Tipuri de date definite de utilizator (enumerare, tablou, şir de caractere)

3 I. Introducere în .NET Framework. Ce este platforma .NET?
Arhitectura .NET - componentă software care oferă un mediu de programare și de executare a aplicațiilor .NET Framework este constituit din două entități: Common Language Runtime (CLR) – mediul de executare a programelor: furnizează servicii ca securitatea aplicațiilor, portabilitatea, managementul memoriei, tratarea excepțiilor Base Class Library – codul este precompilat, fiind încapsulat în funcții (metode) care pot fi apelate de programator Caracteristici Independența de procesor și de platformă – aplicațiile pot fi dezvoltate și executate pe diverse sisteme de operare. Portabilitate – aplicațiile pot rula pe orice sistem pe care este instalată platforma (aplicații pentru diferite sisteme de operare, pentru telefoane, MP3 playere, semafoare în trafic etc.) Managementul automat al memoriei - mecanismul garbage collection Interoperabilitatea limbajelor - suportă limbaje de programare diverse (C#, Visual Basic.NET, Managed C++, J# etc.) care folosesc aceleași clase. Componentele aceleiași aplicații pot fi scrise în limbaje diferite. Securitate și mecanism de tratare a excepțiilor

4 I. Introducere în .NET Framework. Componente şi etape
Editarea codului sursă Compilarea – transformarea în limbajul MSIL (Microsoft Intermediate Language – Common language runtime) Rularea – transformarea în limbajul cod maşină corespunzător sistemului pe care va rula aplicaţia (JIT – Just In Time)

5 II. Aplicaţii consolă. Structura unei aplicaţii C#
Termeni specifici: Clasa (class) - principalul element structural şi de organizare, grupând date şi funcţii care prelucrează aceste date. Spaţiul de nume (namespace) – conţine o mulţime de definiţii dintr-o bibliotecă sau program. Clasele deja definite se pot folosi importând spaţiile de nume care conţin definiţiile acestora: directiva using SpatiuDeNume; Un spaţiu de nume poate conţine alte spaţii de nume. Aplicaţia C# este formată din una sau mai multe clase, grupate în spaţii de nume (namespace). Doar una din aceste clase conţine un „punct de intrare” (entry point), şi anume metoda (funcţia) Main.

6 II. Aplicaţii consolă. Creare
Creati pe Desktop un folder cu numele dumneavoastra, in care salvati toate aplicatiile! Mediul de dezvoltare – Microsoft Visual C# 2010 Express Edition Creare aplicaţie: Meniul principal - File->NewProject->ConsoleApplication

7 II. Aplicaţii consolă. Creare
Mediul de dezvoltare – Microsoft Visual C# 2010 Express Edition Se deschide fereastra Solution Explorer (accesibila prin View -> Other Windows ->Solution Explorer) Se generează Program.cs (accesibil prin View -> Code sau Solution Explorer ->Program.cs->View Code)

8 II. Aplicaţii consolă. Editare
8

9 II. Aplicaţii consolă. Salvare, compilare, rulare
4. Compilare: Meniul principal – Debug->Build Solution (F6) 5. Rulare: Start Debugging (Ctrl+F5) 6. Inchidere aplicatie: File ->Close Solution Aplicaţie Tema1

10 II. Aplicaţii consolă. Salvare, compilare, rulare
Creaţi o aplicaţie numită Tema1 care să afişeze numele dumneavoastră. Rulaţi aplicaţia! Aplicaţie Tema1

11 III. Introducere în limbajul C#
moşteneşte sintaxa şi principiile de programare din C++; adaugă tipuri noi de date sau funcţiuni noi ale datelor din C++ (struct, string); adaugă tipuri noi (de exemplu, interfeţe şi delegări); elimină funcţiuni (moştenirea multiplă şi pointerii către funcţii). Observaţie: unele funcţiuni (cum ar fi accesul direct la memorie folosind pointeri) au fost păstrate, dar secvenţele de cod corespunzătoare se consideră ”nesigure”.

12 III. Introducere în limbajul C# . Cuvinte cheie. Nume
abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long namespace new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual void volatile while Cuvinte cheie: Reguli pentru nume: conţin numai litere, cifre sau caractere de subliniere (primul este literă sau caracter de subliniere); cuvintele cheie pot fi folosite ca nume în alt scop decât cel predefinit numai dacă sunt precedate de @; două nume sunt distincte dacă diferă prin cel puţin un caracter. Convenţii de scriere a numelor formate din mai multe cuvinte: pentru nume de clase, metode, proprietăţi, enumerări, interfeţe, spaţii de nume: fiecare cuvânt începe cu majusculă (ex: PrimulProgram); pentru nume de variabile: primul cuvânt începe cu minusculă, celelalte cu majusculă (ex: primaVariabila). Comentarii: // /* …. */ /// pentru documente în format XML

13 IV. Tipuri de date Există două categorii de tipuri de date: Tipuri valoare – variabilele se memorează în segmentul de stivă tipuri simple predefinite: byte, char, int, float etc. tipuri definite de programator: se definesc cu ajutorul claselor, structurilor sau interfețelor Tipuri referinţă – variabilele se alocă dinamic în Heap tipul clasă – class tipul interfaţă – interface tipul delegat – delegate tipul tablou - array

14 IV. Tipuri de date .Tipuri valoare - tipuri simple predefinite
Descriere Constante exemple sufix asociat Alias din spaţiul de nume System object rădăcina oricărui tip string secvenţă de caractere “Salut!” System.String sbyte tip întreg cu semn (8 biţi) System.Sbyte short tip întreg cu semn (16 biţi) System.Int16 int tip întreg cu semn (32 biţi) System.Int32 long tip întreg cu semn (64 biţi) 10 ; 12L l, L System.Int64 byte tip întreg fără semn (8 biţi) System.Byte ushort tip întreg fără semn (16 biţi) uint tip întreg fără semn (32 biţi) u, U System.Uint32 ulong tip întreg fără semn (64 biţi) 12; 15U; 16L; 17UL u, U, l, L şi combinaţii System.Uint64 float tip cu virgulă mobilă, simplă precizie, pe 32 biţi (8 pentru exponent, 24 pentru mantisă) 1.234F System.Single double tip cu virgulă mobilă, dublă precizie, pe 64 biţi (11 pentru exponent, 53 pentru mantisă) 1.234; D System.Double bool tip boolean true; false System.Boolean char tip caracter din setul Unicode, pe 16 biţi System.Char decimal tip zecimal, pe 128 biţi (96 pentru mantisă), 28 de cifre semnificative 1.234M System.Decimal

15 V. Citire şi afişare în aplicaţii consolă
Citirea de la tastatură Console.ReadLine(); //citirea unui şir de caractere Console.ReadKey(); //citire “oarbă” Exemplu: int a; a=int.Parse(Console.ReadLine()); Afişarea: Console.WriteLine("sir", lista de expresii); unde "sir" este format din: caractere afişabile ca atare; specificatori de format cu sintaxa {nr_expr, width:fmt} nr_expr - numărul de ordine al expresiei în lista (începând cu 0); width - lăţimea câmpului de afişare; fmt – formatul de afişare. Exemple: Console.WriteLine(“Primul numar este {0}, al doilea este {1}, iar suma lor este {2}”, 15, 4, 15+4}; Console.WriteLine("Valoarea constantei matematice PI este {0:#.###}",Math.PI);

16 V. Citire şi afişare în aplicaţii consolă
Tema2. Creaţi o aplicaţie numită Tema2 care citeşte două numere reale, apoi le afişează pe acestea precum şi produsul lor în următorul format: Primul pe 7 poziţii, cu 3 zecimale Al doilea pe 10 poziţii Produsul în formatul implicit. Rulaţi aplicaţia!

17 VI. Constante şi variabile. Constante definite de utilizator
folosind const - trebuie să fie iniţializate la declararea lor. Exemple: const int x; //gresit, constanta nu a fost initializata const int x = 13; //corect folosind modificatorul readonly (sunt membre ale claselor, putând fi iniţializate doar de către constructorii claselor respective.) readonly int x; //corect readonly int x = 13; //corect

18 VI. Constante şi variabile. Variabile
Tip numeVariabila1 [[=ValoareInitială1], numeVariabila2 [=ValoareInitiala2], …] ; Variabile de tip valoare Variabile de tip referinţă Alocarea memoriei implicit, la declararea variabilei iniţial, referintele sunt null şi memoria trebuie alocată explicit pentru obiectele propriu-zise Valoarea variabilei o valoare a unui tip elementar o referinţă la un obiect Transmiterea valorilor la atribuire value semantics: se copiază valoarea sursei în destinaţie, acestea fiind independente. reference semantics: este copiată referinţa în destinaţie, iar obiectul spre care indică rămâne acelaşi (aliasing).

19 Prioritatea operatorilor:
VII. Operatori Prioritatea operatorilor: Prioritate Tip Operatori Asociativitate Primar ( ) [ ] f() . x++ x-- new typeof sizeof checked unchecked -> 1 Unar + - ! ~ ++x --x (tip) true false & sizeof 2 Multiplicativ * / % 3 Aditiv + - 4 De deplasare << >> 5 Relaţional < > <= >= is as 6 De egalitate == != 7 AND (SI) logic & 8 XOR (SAU exclusiv) logic ^ 9 OR (SAU) logic | 10 AND (SI) condiţional && 11 OR (SAU) condiţional || 12 Condiţional(ternar) ?: 13 De atribuire = *= /= %= += -= ^= &= <<= >>= |=

20 VIII. Conversii Conversii implicite - explicite Implicite - se efectuează (automat) doar dacă nu este afectată valoarea convertită. Ex: float x; int y; x=y; Explicite - se efectuează: 1. prin intermediul unui operator cast Ex: long x; y=(int)x; 2. prin intermediul metodelor specifice din clasa Object (ex: ToString, Parse, ToInt64) 3. prin sintaxa specifică (pentru şiruri de caractere)

21 VIII. Conversii. Conversii implicite
Exemplu static void Main(string[] args) { byte a = 13; // byte intreg fara semn pe 8 biti byte b = 20; long c; //intreg cu semn pe 64 biti c = a + b; Console.WriteLine(c); Console.ReadLine(); }

22 VIII. Conversii. Conversii explicite – tipuri numerice
din în sbyte byte, ushort, uint, ulong, char byte sbyte, char short sbyte, byte, ushort, uint, ulong, char ushort sbyte, byte, short, char int sbyte, byte, short, ushort, uint, ulong, char uint sbyte,byte, short, ushort, int, char long sbyte, byte, short, ushort, int, uint, ulong, char ulong sbyte, byte, short, ushort, int, uint, long, char char sbyte, byte, short float sbyte, byte, short, ushort, int, uint, long, ulong, char, decimal double sbyte, byte, short, ushort, int, uint, long, ulong, char, float, decimal decimal sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double Exemplu1 – tipuri numerice static void Main(string[] args) { int a = 5; int b = 2; float c; c = (float)a / b; Console.WriteLine("{0} / {1} = {2}", a, b, c); }

23 VIII. Conversii. Conversii explicite – şiruri de caractere
Exemplu2: tipuri numerice, bool -> şir de caractere numar.ToString() tipuri numerice -> şir de caractere “”+număr şir de caractere -> int: int.Parse(şir) sau Int32.Parse(şir) şir de caractere -> long: long.Parse(şir) sau Int64.Parse(şir) şir de caractere -> double: double.Parse(şir) sau Double.Parse(şir) şir de caractere -> float: float.Parse(şir) sau Float.Parse(şir) static void Main(string[] args) { int i = 13; string s1 = i.ToString(); Console.WriteLine(s1); // se afiseaza 13 string s2=“”+i; Console.WriteLine(s2); // se afiseaza 13 string s3= "13"; int n = int.Parse(s3); Console.WriteLine(n); }

24 VIII. Conversii. Conversii explicite – şiruri de caractere
Tema3. Creaţi o aplicaţie numită Tema3 care citeşte două şiruri de caractere reprezentând două numere naturale, apoi afişează media lor aritmetică. Rulaţi aplicaţia!

25 IX. Instrucţiuni. Instrucţiunea expresie şi instrucţiuni de decizie
Expresie; //cu operatori de atribuire, incrementare, decrementare Instrucţiuni de decizie 1. if (expresie) instrucţiune1 [else instrucţiune2] 2. switch (expresie_selector) { case valoare1: instructiune1; break; case valoare2: instrucţiune2; break; …. [default: instrucţiunen; break;] } Observaţii: a. Expresia selector poate fi şi string! b. Instrucţiunea break este obligatorie pe fiecare ramură, inclusiv după ultima (dacă nu se execută salturi impuse)!

26 IX. Instrucţiuni de decizie
Tema4. Creaţi o aplicaţie numită Tema4 care citeşte un simbol (T, P, D) reprezentând un tip de figură geometrică (T – triunghi, P – pătrat, D – dreptunghi) şi, în funcţie de aceasta, citeşte dimensiunile figurii şi afişează perimetrul figurii respective. Scrieţi două rezolvări diferite (Tema4a, respectiv Tema4b) utilizând instrucţiunea if, respectiv switch. Rulaţi aplicaţia! Curs!

27 IX. Instrucţiuni. Instrucţiuni repetitive
1. while (expresie) instrucţiune 2. do while (expresie); 3. for(expresieInitializare; ExpresieContinuare; ExpresieModificareContor) 4. foreach(Tip expresie in Colecţie) Exemplu1: string s="Curs"+" de"+" informatica"; foreach(char c in s) Console.WriteLine(c); Exemplu2: int[] tablou = {7, 3, 2}; foreach (int numar in tablou) Console.WriteLine("{0} ", numar); echivalent cu for(int i=0; i<tablou.Length; i++) Console.Write("{0} ", tablou[i]);

28 IX. Instrucţiuni repetitive
Tema5. Creaţi o aplicaţie numită Tema5 care citeşte un număr natural şi afişează numărul de cifre ale acestuia. Rulaţi aplicaţia! Curs!

29 IX. Instrucţiuni. Instrucţiuni de salt
goto case x - goto default poate conduce la salturi în cadrul instrucţiunii switch. switch (a) { case 13: Console.WriteLine(13); goto case 20; case 15: Console.WriteLine(15); goto default; case 20: Console.WriteLine(20); break; default: Console.WriteLine(“Default”); } 2. continue - permite reluarea iteraţiei celei mai apropiate instrucţiuni switch, while, do – while, for sau foreach. int i = 0; while (true) Console.Write("{0} ", i); i++; if (i < 10) continue; else break;

30 IX. Instrucţiuni. Tratarea excepţiilor - Instrucţiunile try-catch-finally şi throw
Excepţia este un obiect care încapsulează informaţii despre situaţii anormale se foloseşte pentru a semnala contextul în care apare o astfel de situaţie, pentru a preveni întreruperea anormală a programului; trebuie sesizată şi tratată. C# poate arunca drept excepţii obiecte de tip System.Exception sau derivate ale acestuia. Marcarea blocurilor care pot determina o situaţie anormală try {…cod care poate arunca exceptii......} Marcarea blocurilor care tratează excepţia catch (TipExceptie variabilaTipExceptie) {…cod care trateaza exceptia ...}. Marcarea blocurilor care se execută obligatoriu, indiferent de apariţia unei excepţii finally {…cod care se executa dupa try-catch indiferent daca se arunca sau nu exceptii}.

31 Daca nu se cunoaste exceptia: catch (Exception e){…}
IX. Instrucţiuni. Tratarea excepţiilor - Instrucţiunile try-catch-finally şi throw static void Main(string[] args) { try { File.OpenRead("Gigel.txt"); } catch (FileNotFoundException a) Console.WriteLine(“Nu exista fisierul cerut de dv.”); catch (PathTooLongException b) Console.WriteLine(b.ToString()); // mesajul asociat implicit excepţiei finally Console.WriteLine("Acest bloc se va executa"); Console.ReadLine(); Daca nu se cunoaste exceptia: catch (Exception e){…}

32 IX. Instrucţiuni. Tratarea excepţiilor
Tema6. Creaţi o aplicaţie numită Tema6 care citeşte două numere naturale şi afişează câtul şi restul împărţirii primului la al doilea, câtul şi restul împărţirii celui de al doilea la primul, precum şi produsul celor două numere. Trataţi eroarea de împărţire la zero. Rulaţi aplicaţia! Curs!

33 X. Tipuri de date definite de utilizator.Tipuri valoare – enumerări
Sintaxa: enum NumeEnumerare [:TipNumeric] { lista de identificatori } Caracteristici: Sunt derivate automat din clasa System.Enum, derivată din System.ValueType. Nu pot fi declarate abstracte şi nu pot fi derivate. Tipul este implicit int. Valorile de iniţializare – de tipul menţionat Implicit, valoarea primului membru este 0, iar fiecare identificator care urmează are valoarea implicită mai mare cu o unitate decât precedenta. Nu se admit referinţe circulare. Exemplu 1: enum zile luni, marti, miercuri=4, joi Exemplu 2: enum Incorect a=b, b

34 X. Tipuri de date definite de utilizator
X. Tipuri de date definite de utilizator.Tipuri referinţă – tablouri unidimensionale Declarare: TipElement [] nume; //nu se alocă memorie ex. int [] a; Operaţii specifice – metode ale clasei System.Array Instanţierea: După declarare: nume = new Tip[NumarElemente]; ex. a=new int[4]; Observaţie: Se pot face simultan declararea, instanţierea şi iniţializarea: int[] v = new int[] {1,2,3}; int[] v = {1,2,3}; Numărul de elemente: nume.Length Sortarea crescătoare a elementelor: metoda Array.Sort(nume) Exemplu: int[] v = new int[5] { 10, 2, 4, 8, 6 }; Array.Sort(v); //sortarea crescatoare a vectorului v for (int i = 0; i < v.Length; i++) //afisarea vectorului v Console.Write("{0,3}", v[i]);

35 X. Tipuri de date definite de utilizator
X. Tipuri de date definite de utilizator.Tipuri referinţă – tablouri unidimensionale Exemplu: citirea elementelor static void Main(string[] args) { int n; int[] a; Console.Write(“n="); n = Convert.ToInt32(Console.ReadLine()); a = new int[n]; for (i = 0; i < n; i++) Console.Write(" a[ {0} ] = ", i); a[i] = Convert.ToInt32(Console.ReadLine()); } …….

36 X. Tablouri unidimensionale
Tema7. Creaţi o aplicaţie numită Tema7 care citeşte n numere naturale şi afişează pe ecran mesajul Distincte dacă acestea sunt diferite sau mesajul Se repeta in caz contrar. Rulaţi aplicaţia pentru ambele situatii! Curs!

37 X. Tipuri de date definite de utilizator
X. Tipuri de date definite de utilizator.Tipuri referinţă – tablouri multidimensionale tablouri regulate tablouri neregulate (tablouri de tablouri) Tablouri regulate bidimensionale Declarare: Tip[,] nume; Instanţiere: nume = new Tip[Linii,Coloane]; Observaţie - declararea, instanţierea şi iniţializarea simultan: int[,] mat = new int[,] {{1,2,3},{4,5,6},{7,8,9}}; sau int[,] mat = {{1,2,3},{4,5,6},{7,8,9}}; Accesul la un element: mat[i,j]

38 X. Tipuri de date definite de utilizator
X. Tipuri de date definite de utilizator.Tipuri referinţă – tablouri multidimensionale Tablouri neregulate (jagged array) Declarare: Tip[ ][ ]…[ ] nume; Instanţiere şi iniţializare (pentru două dimensiuni): Tip [ ][ ] nume = new Tip[ ][ ] //poate lipsi { new Tip[ ] {sir_0}, new Tip[ ] {sir_1}, ... new Tip[ ] {sir_n} }; Accesul la un element: mat[i][j] Exemple: int[][] mat = { new int[3] { 1, 2, 3 }, new int[2] { 4, 5 }, new int[4] { 7, 8, 9, 1 }

39 X. Tipuri de date definite de utilizator
X. Tipuri de date definite de utilizator.Tipuri referinţă – tablouri multidimensionale // Tablou de tablouri (jagged array) byte[][] b = new byte[5][]; for (int i = 0; i < b.Length; i++) { b[i] = new byte[i + 3]; } // Tiparim lungimea fiecarei linii Console.WriteLine("Lngimea liniei {0} este {1}", i, b[i].Length);

40 X. Tablouri bidimensionale
Tema8. Creaţi o aplicaţie numită Tema8 care citeşte un numar natural n si elementele unui tablou patratic nxn, apoi afisează elementele tabloului aflate in triunghiul determinat de cele două diagonale si latura de sus a tabloului. Rulaţi aplicaţia! Curs!

41 X. Tipuri de date definite de utilizator. Şiruri de caractere
Se definesc două tipuri de şiruri: Tipul regulat conţine între ghilimele zero sau mai multe caractere, inclusiv secvenţe escape. Exemple: string a = "Acesta este un sir de caractere"; string b = "linia unu \nlinia doi"; string c = "c:\\exemple\\unu.cs"; Tipul verbatim conţine mai multe secvenţe escape (referiri la fişiere, la prelucrarea lor, la regiştri). Este precedat string bb unu linia doi"; string cc Observaţie: la afişare b şi bb, respectiv c şi cc au acelaşi efect! Secvenţă escape Efect \’ apostrof \” ghilimele \\ backslash \0 null \a alarmă \b backspace \f form feed – pagină nouă \n new line – linie nouă \r carriage return – început de rând \t horizontal tab – tab orizontal \u caracter unicode \v vertical tab – tab vertical \x caracter hexazecimal

42 X. Tipuri de date definite de utilizator. Şiruri de caractere
Operatori Concatenare: + Comparare: == != Exemplu: se compară valorile, nu referinţele! static void Main(string[] args) { string a = "Invat limbajul C#"; string b = "Invat " + "limbajul "; b += "C#"; Console.WriteLine("a='{0}'", a); Console.WriteLine("b='{0}'", b); Console.WriteLine("a == b {0}", a == b); Console.WriteLine("(object)a == b {0}", (object)a == b); }

43 X. Tipuri de date definite de utilizator. Şiruri de caractere

44 X. Tipuri de date definite de utilizator. Şiruri de caractere
Exemplu: Folosind metoda Split, să se numere cuvintele unui text ştiind că acestea sunt separate printr-un singur separator din mulţimea { ' ', ',', ‘.'}. static void Main(string[] args) { String s = “Tipurile string, tablou, chiar si enum sunt simpatice"; char[] x = { ' ', ',', ‘.' }; String[] cuvinte = s.Split(x); //tablou de cuvinte int nrcuv = 0; for (int i = 0; i < cuvinte.Length; i++) Console.WriteLine(cuvinte[i]); nrcuv++; } Console.WriteLine("Textul contine {0} cuvinte.",nrcuv); Observaţie: dacă în text cuvintele sunt separate prin mai multe spaţii?

45 X. Siruri de caractere Curs!
Tema9. Creaţi o aplicaţie numită Tema9 care citeşte doua cuvinte x si y si un text in care cuvintele sunt separate printr-un singur spatiu, apoi afiseaza pe ecran sirul in care s- a inlocuit cuvantul x cu y, iar cuvantul y cu x. Rulaţi aplicaţia! Curs!

46 fişiere text (stochează text)
XI. Fişiere Tipuri de fişiere: fişiere text (stochează text) fişiere binare (stochează date în format binar valid) fisiere XML (specifica date si forma in care sunt organizate) Administrarea fişierelor - tehnica de citire şi scriere a datelor în şi din fişiere. Pentru accesarea unui fişier de pe disc se folosesc funcţii din spaţiul de nume System.IO, respectiv System.Xml. Clase pentru operaţii de intrare-ieşire: StreamReader, StreamWriter, BinaryReader şi BinaryWriter.

47 XI. Fişiere. Scriere şi citire din fişiere binare
1. deschiderea unui fisier şi ataşarea lui la un flux -pentru scriere: creare fişier şi flux FileStream f = new FileStream(“nume fisier de pe disc", FileMode.CreateNew); creare scriitor binar si atasare la flux (traduce datele fluxului in format binar) BinaryWriter outputFile = new BinaryWriter(f); -pentru citire creare flux FileStream g = new FileStream(“nume fisier pe disc",FileMode.Open); creare cititor binar BinaryReader inputFile = new BinaryReader(g); 2. Scriere în fişier outputFile.Write(....); 3. Citire din fişier inputFile.PeekChar() returnează următorul caracter din fişier (sau -1) inputFile.ReadInt32(); returnează caracterul citit 4. Închiderea fişierului outputFile.Close(); / inputFile.Close(); f.Close(); / g.Close();

48 XI. Fişiere. Scriere şi citire din fişiere text
1. deschiderea unui fisier şi ataşarea lui la un flux -pentru scriere StreamWriter outputFile = StreamWriter(“nume fisier pe disc"); -pentru citire StreamReader inputFile = StreamReader(“nume fisier pe disc"); 2. Scriere în fişier outputFile.WriteLine(...); 3. Citire din fişier inputFile.ReadLine()) – returnează un şir de caractere (linia citită) sau null. 4. Închiderea fişierului outputFile.Close();

49 XI. Fisiere Tema10. Creaţi o aplicaţie numită Tema10 care citeste de la tastatura un numar natural n si scrie in fisierul Tema10.txt primii x termeni ai sirului lui Fibonacci. Sau Tema11. Creaţi o aplicaţie numită Tema11 care citeste de la tastatura un numar natural n si afiseaza pe ecran primele n numere aflate in fisierul Tema11.txt. Rulaţi aplicaţia! Curs!

50 XI. Fişiere. Scriere şi citire din fişiere XML
1. deschiderea unui fisier şi ataşarea lui la un flux -pentru scriere StreamWriter outputFile = new StreamWriter(“nume fisier pe disc"); -pentru citire StreamReader inputFile = new StreamReader(“nume fisier pe disc"); 2. Scriere în fişier outputFile.WriteLine(...); 3. Citire din fişier inputFile.ReadLine()) – returnează un şir de caractere (linia citită) sau null. 4. Închiderea fişierului outputFile.Close();


Descărcați ppt ".NET Framework Limbajul C#."

Prezentări similare


Publicitate de la Google