Documente Academic
Documente Profesional
Documente Cultură
Exemplu:
const int NR_RANDURI=3;
const int NR_COLOANE=2;
static void Main(string[] args)
{
int[] a = new int[10];//tablou cu 10 elemente
for (int i = 0; i < 10; i++) a[i] = i;
}
//linie[2]=new Complex(3,2);//eroare, exceptie de tip
'System.IndexOutOfRangeException'
}
List<T>()
Nume Descriere
Add Adaugă un obiect la sfârșitul listei.
Remove Elimină din listă primul element care coincide cu cel specificat
Sort(Comparison<T>) Sortează elementele listei folosind s the elements in the entire List<T>
Exemplu:
class Punct
{
private float x, y;
private String text;
public Punct(String text, float x = 0, float y = 0)
{
this.text = text;
this.x = x;
this.y = y;
}
public String Text
{
class Multime
{
String nume;
List<Punct> elemente;
public Multime(String nume)
{
this.nume = nume;
this.elemente = new List<Punct>();//lista goala cu elemente de tip Punct
}
public String Nume
{
get { return nume; }
set { nume = value; }
}
public int NrElemente
{//numarul de elemente din lista
get { return elemente.Count; }
}
public List<Punct> Elemente
{
get { return elemente; }
set { elemente = value; }
}
public void adauga(Punct P)
{
elemente.Add(P);//adaugam un element la final
}
public void adauga(Punct P, int index)
{
try
{
elemente.Insert(index, P);//adaugam un element cu indexul index
}
catch (Exception)
{
elemente.Add(P);
}
}
public void scrie()
{
String text = nume + "={";
if (NrElemente > 0)
{
text += elemente[0].Text;
for (int i = 1; i < NrElemente; i++)
text += "," + elemente[i].Text;
}
text += "}";
Console.WriteLine(text);
}
public void inverseazaElemente()
{
elemente.Reverse();
}
public static Multime reuniune(Multime M1, Multime M2)
{
Multime M = new Multime(M1.Nume + "U" + M2.Nume);
M.Elemente.AddRange(M1.Elemente);
//daca am fi pus in locul instructiunii de mai sus
//M->Elemente=M1->Elemente;
//instructiunea urmatoare ar fi adaugat elementele si listei multimii M1
M.Elemente.AddRange(M2.Elemente);
M.elimina_duplicate();
return M;
}
public static Multime diferenta(Multime M1, Multime M2)
{
Multime M = new Multime(M1.Nume + "/" + M2.Nume);
M.Elemente.AddRange(M1.Elemente);
foreach (Punct P in M2.Elemente)
M.Elemente.Remove(P);
return M;
}
public bool contine(Punct P)
{
return elemente.IndexOf(P) >= 0;
}
public void elimina_duplicate()
{
for (int i = 0; i < elemente.Count; i++)
for (int j = i + 1; j < elemente.Count; j++)
if (elemente[j] == elemente[i])
{
elemente.RemoveAt(j);
j--;
}
}
public static int ascendent_dupa_X(Punct P1, Punct P2)
{
if(P1.X == P2.X)return 0;
return P1.X > P2.X ? 1 : -1;
}
public static int descendent_dupa_X(Punct P1, Punct P2)
{
return -ascendent_dupa_X(P1, P2);
}
public static int ascendent_dupa_nume(Punct P1, Punct P2)
{
return String.Compare(P1.Text, P2.Text);
}
/*Pentru a folosi metoda Sort este important ca functia sa fie statica*/
B.adauga(a);
B.adauga(e);
B.adauga(f);
B.adauga(b);
B.adauga(h);
B.adauga(i);
B.adauga(j);
A.scrie();
B.scrie();
C = Multime.reuniune(A, B);
C.scrie();
C = Multime.diferenta(A, B);
C.scrie();
C.scrie();
Console.WriteLine(A.contine(j));
A.scrie();
A.sorteaza(1);
A.scrie();
A.sorteaza(2);
A.scrie();
A.sorteaza(3);
A.scrie();
}
În urma execuției obținem:
0
4
A={c,a,b,h,d}
B={a,e,f,b,h,i,j}
AUB={c,a,b,h,d,e,f,i,j}
A/B={c,d}
A/B={c,d}
False
A={c,a,b,h,d}
A={b,a,c,d,h}
A={h,d,c,a,b}
A={a,b,c,d,h}
Press any key to continue . . .
Observație: Pentru lucrul cu liste de elemente cu tipuri diferite (nu au un tip de bază
comun) se poate folosi clasa ArrayList din spațiul de nume System.Collection. Elementele
acestei clase se utilizează în mod asemănător.
Operaţii de intrare/ieşire
Clasa Descrierea
BinaryReader Citeşte tipurile primitive de date ca valori binare
BinaryWriter Scrie tipurile primitive de date ca valori binare
BufferedStream O clasă flux care memorează într-un buffer citirile şi scrierile
către alt flux
Directory Posedă metode statice pentru lucrul cu directoare
DirectoryInfo Posedă metode non-statice pentru lucrul cu directoare
File Posedă metode statice pentru lucrul cu fişiere
o Clasele stream, care sunt proiectate pentru intrarea şi ieşirea fluxurilor de octeţi;
o Clasele TextReader şi TextWrite, care sunt utilizate pentru operaţii de intrare/ieşire
în mod caracter;
o Clasele BinaryReader şi BinaryWriter, care sunt utilizate pentru intrarea şi ieşirea
tipurilor primitive, cum ar fi Int32 şi Double, în format binar.
Clasa FileStream
Este utilizată pentru a transfera octeţi într-un fişier. Clasa FileStream are
constructori supraîncărcaţi care permit specificarea următoarelor informaţii:
o Numele fişierului
o Modul de deschidere a fişierului
o Tipul de acces necesar
o Opţiunile de partajare
o Dimensiunea buffer-ului
Exemplu:
FileStream fs=new
FileStream("fisier.txt",FileMode.Create,FileAccess.ReadWrite,
FileShare.Read);
Clasa TextWriter
Metodă Descriere
Close Închide obiectul pentru scriere şi eliberează resursele utilizate
de acesta
Dispose Eliberează resursele utilizate de obiectul pentru scriere
Flush Scrie toate datele memorate în buffer la dispozitivul de bază
Write Scrie textul fără o linie nouă
WriteLine Scrie textul cu o linie nouă
Clasa TextReader
Metodă Descriere
Close Închide obiectul pentru citire şi eliberează resursele utilizate de
acesta
Dispose Eliberează resursele utilizate de obiectul pentru citire
Peek Returnează următorul caracter de la fluxul de intrare fără să mute
pointerul de fişier
Read Citeşte unul sau mai multe caractere de la fluxul de intrare şi mută
pointerul de fişier
ReadBlock Citeşte un bloc de caractere
ReadLine Citeşte o linie
ReadToEnd Citeşte până la sfârşitul fluxului de intrare
using System.IO;
…
static void Main(string[] args)
{
FileStream fs=null;
StreamReader sr=null;
try
{
fs = new FileStream("intrare.txt", FileMode.Open);
sr = new StreamReader(fs);
int nr = 0;
for (; ; )
{
String linie = sr.ReadLine();
nr++;
if (linie == null) break;//daca s-a citit tot
Console.WriteLine(linie);
if (nr % 20 == 0)
{//afisam câte 20 de linii odata
Console.Write("--continuare?--");
String raspuns = Console.ReadLine();
if (raspuns.Equals("Nu")) break;
nr = 0;
}
}
}
catch (System.Exception e)
{
Console.WriteLine("Eroare:\r\n"+e.ToString());
}
finally
{
if(sr!=null)sr.Close();
if (fs != null) fs.Close();
}
}
using System.IO;
…
static void Main(string[] args)
{
FileStream fs=null;
StreamReader sr = null ;
try
{
fs = new FileStream("intrare.txt", FileMode.Open);
sr = new StreamReader(fs);
int nr = 0;
for (; ; )
{
int caracter = sr.Read();
nr++;
if (caracter == -1) break;//daca s-a citit tot
Console.Write(Convert.ToChar(caracter));
}
}
catch (System.Exception e)
{
Console.WriteLine(e.ToString());
}
finally
{
if(sr!=null)sr.Close();
if(fs!=null)fs.Close();
}
Clasa BinaryWriter
Metodă Descriere
Close Închide obiectul pentru scriere şi obiectul Stream de bază
Dispose Eliberează resursele utilizate de obiectul pentru scriere
Flush Scrie toate datele memorate în buffer la dispozitivul de bază
Seek Stabileşte poziţia în cadrul obiectului Stream de bază
Write Scrie o valoare în obiectul Stream
Clasa BinaryReader
Metodă Descriere
Close Închide obiectul pentru citire şi obiectul Stream de bază
Dispose Eliberează resursele utilizate de obiectul pentru citire
FillBuffer Umple bufferul intern cu un număr de octeţi citiţi de la
fluxul de bază
PeekChar Citeşte următorul caracter dar nu avansează pointerul de
poziţionare
Read Citeşte unul sau mai mulţi octeţi sau caractere de la
obiectul Stream
ReadBoolean Citeşte o valoare de tip Boolean de la obiectul Stream
ReadByte, ReadBytes Citeşte una sau mai multe valori de tip Byte de la obiectul
Stream
ReadChar, ReadChars Citeşte una sau mai multe valori de tip Char de la
obiectul Stream
ReadDecimal Citeşte o valoare de tip Decimal de la obiectul Stream
ReadDouble, ReadSingle Citeşte o valoare în virgulă mobilă cu dublă sau simplă
precizie de la obiectul Stream
ReadInt16, ReadInt32, Citeşte o valoare de tip întreg de la obiectul Stream
ReadInt64
ReadString Citeşte o valoare de tip String de la obiectul Stream
namespace Angajati
{
class Angajat
{
String nume, prenume;
int anNastere;
bool casatorit;
double salar;
class Program
{
static void Main(string[] args)
{
List<Angajat> angajati = new List<Angajat>();
angajati.Add(new Angajat("Popescu", "Gheorghe", 1955, true, 1800));
angajati.Add(new Angajat("Sandulescu", "Sandu", 1975, true, 900));
angajati.Add(new Angajat("Georgecu", "Ion", 1962, true, 2800));
}
}
}
Clasa Directory
Metoda Descriere
CreateDirectory Crează un director
Delete Şterge un director şi, opţional, subdirectoarele acestuia
Exists Verifică dacă există un anumit director
GetCreationTime Dă timpul la care a fost creat directorul
GetCurrentDirectory Dă un string ce reprezintă calea spre directorul curent
GetDirectories Dă un tablou de şiruri reprezentând numele
subdirectoarelor dintr-un director
GetDirectoryRoot Dă rădăcina pentru o cale dată
GetFiles Dă un tablou de şiruri reprezentând numele fişierelor dintr-
un director
GetFileSystemEntries Dă un tablou de şiruri reprezentând numele fişierelor şi
directoarelor dintr-un director dat
GetLastAccessTime Dă timpul la care s-a făcut ultimul acces al directorului
GetLastWriteTime Dă timpul ultimei scrieri pentru un director specificat
GetLogicalDrives Dă o listă cu unităţile logice de pe calculator
GetParent Dă directorul părinte pentru un director specificat
Move Mută un director şi conţinutul acestuia
SetCreationTime Stabileşte timpul de creare a directorului
SetCurrentDirectory Stabileşte directorul curent
Clasa DirectoryInfo
Proprietate Descriere
Attributes Dă sau setează obiectul FileAttributes pentru director
CreationTime Dă sau setează timpul la care a fost creat directorul
Exists Dă o valoare care indică dacă există calea directorului
FullName Dă calea completă a directorului
LastAccessTime Dă sau setează timpul ultimei accesări a directorului
LastWriteTime Dă sau setează timpul ultimei scrieri a directorului
Name Dă numele directorului
Parent Dă un obiect DirectoryInfo reprezentând părintele acestui
director
Root Dă un obiect DirectoryInfo reprezentând partea de
rădăcină a unei căi de director
Metoda Descriere
Create Crează un director
CreateSubdirectory Crează unul sau mai multe subdirectoare
Delete Şterge un director şi conţinutul acestuia
GetDirectories Dă un tablou de obiecte DirectoryInfo reprezentând
subdirectoarele directorului
GetFiles Dă un tablou de obiecte FileInfo reprezentând fişierele
directorului
GetFileSystemInfos Dă un tablou de obiecte FileSystemInfo reprezentând
fişierele şi directoarele directorului
MoveTo Mută directorul şi conţinutul acestuia
ToString Dă calea complet determinată ca un şir de caractere
Pentru lucrul cu fişiere avem clasele File şi FileInfo. Similar claselor Directory şi
DirectoryInfo, clasa File conţine metode statice îar clasa FileInfo conţine metode non-
statice.
Clasa File
Metoda Descriere
AppendText Adaugă un text unui fişier, creând fişierul dacă acesta nu
există
Copy Copie un fişier
Create Crează un nou fişier
CreateText Crează un nou fişier text
Delete Şterge un fişier
Exists Dă o valoare care indică dacă fişierul există
GetAttributes Dă atributele fişierului
GetCreationTime Dă timpul la care a fost creat fişierul
GetLastAccessTime Dă timpul ultimei accesări a fişierului
GetLastWriteTime Dă timpul la care a fost efectuată ultima scriere în fişier
Move Mută fişierul într-o locaţie nouă, cu opţiunea de a-l redenumi
Open Deschide un obiect FileStream pentru acces de tip
citire/scriere la un fişier
OpenRead Deschide un obiect FileStream pentru acces de tip numai citire
la un fişier
OpenText Deschide un obiect FileStream pentru a citi dintr-un fişier text
OpenWrite Deschide un obiect FileStream pentru acces de tip
citire/scriere la un fişier
SetAttributes Setează atributele fişierului
SetCreationTime Setează timpul la care a fost creat fişierul
SetLastAccessTime Setează timpul ultimei accesări a fişierului
SetLastWriteTime Setează timpul ultimei scrieri în fişier
Clasa FileInfo
Proprietăţile clasei:
Proprietate Descriere
CreationTime Dă sau setează timpul la care a fost creat fișierul
Directory Dă un obiect DirectoryInfo reprezentând directorul părinte al
fişierului
DirectoryName Dă un şir de caractere reprezentănd calea completă a fişierului
Exists Dă o valoare care indică dacă fişierul există
LastAccessTime Dă sau setează timpul ultimei accesări a fișierului
LastWriteTime Dă sau setează timpul ultimei scrieri a fișierului
Length Dă lungimea fişierului în octeţi
Name Dă numele fişierului
Exemplu
if (!Directory.Exists("D:\\Test\\DirectorNou"))//testam existenta
Directory.CreateDirectory("D:\\Test\\DirectorNou");//cream directorul
if (File.Exists("C:\\fisier.txt")) ;//testam existenta fisierul de copiat
File.Copy("C:\\fisier.txt", "D:\\Test\\DirectorNou\\fisier1.txt", true);//daca
fisierul exista deja il rescrie
Exemplu Funcțiile următoare pot fi utilizate pentru afișarea conținutului unui director (lista
subdirectoarelor și a fișierelor)