Professional Documents
Culture Documents
PÃ Rsã Ritje Pã R Provimin Final
PÃ Rsã Ritje Pã R Provimin Final
Pyetje Teorike:
4. Cila prej këtyre klasave mund të përdoret për shkrimin e të dhënave në një skedar?
a. FileStream
b. MemoryStream
c. StreamWriter
5. Cila prej këtyre metodave lexon një rresht nga një skedar teksti?
a. Read
b. ReadLine
c. ReadToEnd
6. Cila prej këtyre metodave shkruan një rresht në një skedar teksti?
a. Write
b. WriteLine
c. Append
7. Cila prej këtyre metodave shton të dhëna në fund të një skedari teksti?
a. AppendText
b. Write
c. WriteLine
8. Cila prej këtyre shprehjeve do të përdorej për të kapur një gabim gjatë leximit të një skedari
teksti?
a. try {} catch (IOException ex) {}
b. try {} catch (FileNotFoundException ex) {}
c. try {} catch (Exception ex) {}
9. Cila prej këtyre klasave përdoret për leximin e të dhënave nga një skedar binar?
a. StreamReader
b. BinaryReader
c. StreamWriter
11. Cila prej këtyre metodave përdoret për hapjen e një lidhjeje me bazën e të dhënave me një
SqlConnection?
a. OpenConnection
b. Connect
c. Open
12. Cila prej këtyre metodave përdoret për aplikimin e ndryshimeve në bazën e të dhënave nga një
DataSet?
a. UpdateChanges
b. ApplyChanges
c. Update
13. Cila prej këtyre është sintaksa e saktë për të shkruar një pyetje LINQ për të zgjedhur të dhënat
nga një koleksion?
a. from x in collection where x.Property == value select x
b. select x from collection where x.Property == value
c. for x in collection where x.Property == value select x
14. Cila prej këtyre është një karakteristikë e një TextBox në një aplikacion të Windows?
a. Shfaq informacion tekstual pa mundësi redaktimi.
b. Mund lejoni përdoruesin të shkruajë dhe të redaktojë tekst.
c. Shfaq imazhe dhe ikona.
15. Cila prej këtyre është një lloj formati të cilin një formë mund ta ketë?
a. .jpg
b. .exe
c. .dll
16. Cila nga këto është një përfaqësues i një ndërfaqe në një aplikacion të Windows?
a. Korniza e dritares
b. Tabela e bazës së të dhënave
c. Butoni i Ruajtjes
17. Cili është një element tipik i një GUI në një aplikacion të Windows?
a. Komandë e Konsolës
b. Etiketë e Tekstit
c. Argument i Programit
Qëllimi kryesor i përdorimit të System.IO.Path në C# është manipulimi i rrugës së dosjes, ose thënë
ndryshe, puna me adresat dhe emrat e dosjeve dhe direktorive. Kjo klasë ofron një gamë të metodave dhe
property-ve që lejojnë programuesit të manipulojnë dhe të nxjerrin informacion mbi rrugën e një dosjeje,
Path.Combine në C# është shpesh përdorur për të krijuar një rrugë të saktë të skedarit duke kombinuar dy
rrugë të dhëna të dosjeve ose direktorive. Kjo është e rëndësishme për të siguruar që rruga e dosjes është
formësuar saktësisht, duke marrë parasysh ndryshimet në platformën operative dhe duke shmangur
probleme potenciale me karakteret e ndarjes së rrugës.
6. Cilat janë disa veprime të zakonshme që mund të kryhen me File dhe Directory?
Me Klasën File:
Leximi i përmbajtjes së një dosjeje ; Shkrimi i përmbajtjes në një dosje: ; Fshirja e një dosjeje:
Kopjimi i një dosjeje: ; Zhvendosja e një dosjeje:
Me Klasën Directory:
Krijimi i një direktorie: ;; Fshirja e një direktorie (dhe përmbajtjes së saj) ;; Marrja e emrave të dosjeve në
një direktori ;;; Marrja e emrave të nën-direktorive në një direktori ;; Verifikimi nëse një direktori
ekziston:
Klasa Path në namespace System.IO ka përdorim kryesisht për manipulimin e rrugës së dosjes (file path)
dhe për të ofruar mjetet e nevojshme për përpunimin e emrave të dosjeve dhe direktorive. Disa nga
përdorimet kryesore të klasës Path përfshijnë.
Kombinimi i rrugës së dosjes ;; Marrja e emrit të dosjes nga një rrugë e plotë ;; Marrja e emrit të
direktorisë nga një rrugë e plotë ;; Marrja e zgjatjes (extension) së dosjes nga një rrugë e plotë ;;
Verifikimi nëse një rrugë është rrugë e plotë:
Për të krijuar një skedar teksti përmes klasës File në C#, mund të përdorni metodën WriteAllText.
string fileName = "example.txt";
string content = "Ky është një tekst shembull për dosjen.";
File.WriteAllText(fileName, content);
Metoda File.Exists në C# shërben për të verifikuar nëse një dosje ekziston në vendndodhjen e specifikuar.
Kjo metodë pranon një string si parameter, i cili është rruga e plotë e dosjes që dëshironi të kontrolloni.
Nëse dosja ekziston, metoda File.Exists kthen vlerën true, ndryshe kthen vlerën false. Kjo mund të jetë e
dobishme përpara se të kryhet një veprim mbi një dosje për të siguruar që dosja ekziston para se të
vazhdohet me manipulimet e mëtejshme.
string fileName = "example.txt";
if (File.Exists(fileName))
{
Console.WriteLine("Dosja ekziston.");
10. Cilat janë disa metoda të klasës Directory për manipulimin e direktorive?
Klasa Directory në namespace System.IO në C# ofron disa metoda të dobishme për manipulimin e
direktorive. Këtu janë disa prej tyre:
12. Cila është ndryshimi kryesor midis klasës FileInfo dhe File?
Klasa File është një klasë statike që furnizon metoda statike për manipulimin e dosjeve. Kjo do të thotë se
nuk ka nevojë për krijimin e një instance të veçantë të klasës për të përdorur metodat e saj. Klasa FileInfo,
nga ana tjetër, përfaqëson një dosje specifike në sistemin e skedarëve dhe ofron një gamë të gjerë të
propertive dhe metodave për të manipuluar dhe marrë informacion rreth kësaj dosjeje. Për të përdorur
FileInfo, duhet të krijoni një instance të klases për çdo dosje të caktuar. Kështu, ndryshimi kryesor është në
mënyrën se si ato ofrojnë mundësi për manipulimin e dosjeve, duke qenë njëra klasë statike dhe tjetra një
objekt i klasës.
\
13. Për cilin qëllim mund të përdorni objekte të klasës FileInfo në krahasim me shfrytëzimin e File?
Nëse duhet të përdor një përgjigje pa kod, mund të themi se objektet e klasës FileInfo përdoren kur kemi
nevojë për të manipuluar dhe marrë informacion specifik rreth një dosjeje të caktuar. Këto objekte
ofrojnë një gamë të gjerë të propertive dhe metodave për të kryer operacione mbi dosjen, duke përdorur
një instancë të objektit.
Në anën tjetër, klasa statike File ofron metoda statike për manipulimin e dosjeve dhe nuk kërkon krijimin
e një instance të veçantë për të kryer operacione mbi to. Përdorimi i File është më i përshtatshëm kur ju
keni nevojë për operacione të përbashkëta mbi dosje dhe nuk keni nevojë për informacion të detajuar
rreth një dosjeje specifike.
FileStream përdoret për të manipuluar dosje në disk, MemoryStream përdoret për të manipuluar të dhënat
që mbahen në memorie. Përdorimi i secilës varet nga nevojat specifike të aplikacionit ose skenarit të
zhvillimit . FileStream:
FileStream përdoret për të lexuar ose shkruar të dhëna në një dosje në disk.
Kjo klasë lidhet me një dosje në një vendndodhje të caktuar në disk dhe lejon leximin ose shkrimin e të
dhënave nga ose në këtë dosje.
Mund të përdoret për manipulime të mëdha të të dhënave dhe është e përshtatshme për dosje të mëdha që
nuk mund të mbahen në memorie në tërë
MemoryStream:
MemoryStream përdoret për të lexuar ose shkruar të dhëna që mbahen në memorie (RAM), duke përdorur
një buffer të caktuar.
Kjo klasë krijohej me një buffer në memorie dhe lejon manipulime të lehta të të dhënave pa nevojë për
dosje në disk.
Mund të përdoret kur keni nevojë për të mbajtur të dhëna në memorie, siç është në rastin e përpunimit të të
dhënave nëpër program ose në rastin e përdorimit të të dhënave të vogla.
28,Për çfarë përdoret StreamReader në lidhje me leximin e të dhënave nga një stream?
StreamReader automatikisht menaxhon kodimin e karaktereve dhe ofron metoda të përshtatshme për
leximin e tekstit, duke e bërë atë një zgjedhje të shpeshtë për operacionet e leximit të tekstit nga burimet e të
dhënave të cilat janë stream-based.
15. Pse është e rëndësishme përdorimi i teknikave exception-handling kur kemi të bëjmë me
operacione të skedarëve?
Mundësia e Gabimeve: Operacionet mbi skedarë mund të përballemi me situata të ndryshme që shkaktojnë
gabime, siç janë skedarë që nuk ekzistojnë, leje të munguara për lexim/shkrim, pamjaftueshmëri e
hapësirës së diskut, dhe të tjera.
Shfaqja e Mesazheve të Gabimeve të Kuptueshme për Përdoruesin: Duke përdorur exception-handling,
mund të shfaqim mesazhe të gabimeve të kuptueshme për përdoruesit, duke ndihmuar ata të kuptojnë
arsyen pse një operacion mbi skedar nuk mund të përfundojë me sukses.
16. Çfarë do të thotë "appending data" në kontekstin e shkrimit në një skedar teksti?
Appending data" në kontekstin e shkrimit në një skedar teksti do të thotë shtimi i të dhënave në fund të
skedarit, pa zëvendësuar përmbajtjen ekzistuese. Në vend që të filloni shkrimin nga fillimi i skedarit dhe
zëvendësoni të gjithë përmbajtjen ekzistuese, operacioni i shkrimit do të kryhet në fund të dosjes, duke
shtuar të dhëna pa ndikuar në pjesën ekzistuese..
Për shembull, në C#, mund të hapni një skedar për shtimin e të dhënave me File.AppendText
17. Si mund të lexoni të dhëna nga një skedar teksti përmes StreamReader?
StreamReader në C# ofron disa metoda të përdorura për leximin e të dhënave nga një stream, siç është një
skedar teksti. Këtu janë disa nga metodat më të përdorura:
Read(): Kthen një karakter nga stream-i. Kjo është një metodë e përgjithshme për leximin e karaktereve.
ReadLine(): Lexon një linjë të tekstit nga stream-i dhe kthen një string me përmbajtjen e linjës.
ReadToEnd(): Lexon të gjithë përmbajtjen e stream-it dhe kthen një string me të dhënat e lexuara.
Peek(): Kthen vlerën ASCII e karakterit të ardhshëm në stream pa e konsumuar atë. Kjo lejon kontrollin e karakterit pa
e fshirë atë nga stream-i.
19. Cili është avantazhi i përdorimit të DataReader krahasuar me DataSet kur lexojmë të dhëna
nga një bazë e të dhënave?
DataReader dhe DataSet janë dy objekte të përdorura në programimin në C# për të lexuar të dhëna
nga një bazë të të dhënave, por ata kanë qëllime dhe karakteristika të ndryshme. Avantazhi i
përdorimit të DataReader në krahasim me DataSet është në efikasitet dhe performancë. Këtu janë
disa avantazhe të përdorimit të DataReader:
Efikasiteti: DataReader është më efikas në konsumimin e burimeve, sepse lexon rreshtat nga bazat e të
dhënave një nga një dhe nuk e mbajnë të gjithë rezultatin në memorie në të njëjtën kohë. Ky është
avantazhi i tij në rastet kur keni një numër të madh të rreshtave dhe doni të evitoni ngarkesën e
pamjaftueshme të memorisë.
Performanca: Për shkak se DataReader lexon rreshtat një nga një nga burimi i të dhënave dhe i
dorëzon ato menjëherë, shpesh ka performancë më të mirë në krahasim me DataSet, i cili ka nevojë
për të mbajtur të gjitha të dhënat në memorie.
Memoria: DataReader mbajnë një rresht në kohë, duke përdorur një kohëzë, ndërsa DataSet mban të
gjitha të dhënat në një strukturë të përkohshme në memorie. Kjo ndihmon në zvogëlimin e përdorimit
të memorisë, veçanërisht kur keni të bëni me një numër të madh të të dhënave
Mbushja e DataSet me të dhëna: Përdoruesi përdor një DataAdapter për të mbushur një
DataSet me të dhëna nga një burim i të dhënave, si një bazë e të dhënave SQL.
21. Çfarë paraqet një SQL Query dhe si mund të përdoret në ADO.NET?
Një SQL Query është një kërkesë e shkruar në gjuhën SQL (Structured Query Language) për të ekzekutuar
një operacion mbi një bazë të dhënash. SQL Query mund të përfshijë shprehje të ndryshme për të kërkuar,
ndryshuar, fshirë ose shtuar të dhëna në bazë të dhënash. Kjo paraqet një mjet thelbësor në programimin me
bazë të dhënash dhe është shpesh përdorur në ADO.NET për të komunikuar me burimet e të dhënave.
Në ADO.NET, një SQL Query mund të përdoret nëpërmjet një SqlCommand, e cila është një objekt që
paraqet një kërkesë SQL drejtuar ndaj një burimi të të dhënave (si një bazë e të dhënave SQL Server). Ky
objekt përdor një SqlConnection për të lidhur me bazën e të dhënave dhe mund të përdoret për të ekzekutuar
SQL Query dhe për të marrë rezultatet.
22. Si mund të integrojmë LINQ në një projekt C# për të lexuar të dhëna nga një koleksion ose
bazë e të dhënave?
LINQ (Language-Integrated Query) është një teknologji e integruar në C# që ofron një mënyrë të
shprehshme dhe deklarative për të kryer kërkime dhe manipulime mbi të dhënat. Ka disa mënyra për të
integruar LINQ në një projekt C# për të lexuar të dhëna nga një koleksion ose bazë e të dhënave. Këtu
janë disa nga mënyrat më të zakonshme:
LINQ mbi Koleksione: LINQ mund të përdoret për të kryer operacione të ndryshme mbi koleksione
në C# (liste, vargje, koleksione të tjera). Kjo përfshin filtrimin, renditjen, grupimin, dhe transformimin e
të dhënave në mënyrë deklarative.
LINQ mbi Objekte: LINQ mund të përdoret për të kryer kërkime mbi koleksione të objekteve. Ky
është i dobishëm kur punoni me një listë të objekteve të një klase të caktuar.
LINQ mbi Bazën e të Dhënave (LINQ to SQL): Përdorimi i LINQ në lidhje me një bazë të dhënave
është i mundur përmes teknologjive si LINQ to SQL. Ky është një ORM (Object-Relational Mapping)
që lejon përdoruesin të përdorë LINQ për të kryer operacione mbi një bazë të dhënave relationale duke
përdorur objekte.
23. Cila është dallimi kryesor midis një aplikacioni të konsolës dhe një aplikacioni të
Windows në C#?
Dallimi kryesor është në mënyrën se si shfaqen dhe si përdoruesit ndërveprojnë me to.
Aplikacionet e konsolës janë shpesh të përdorura për skripte, aplikacione komandë-linjë, ose
skenarë të thjeshta, ndërsa aplikacionet e Windows ofrojnë një ndërfaqe më të pasur dhe të
sofistikuara për përdoruesin.
Aplikacioni i Konsolës:
Shfaqje: Aplikacionet e konsolës janë të thjeshta dhe shfaqin informacionin në një dritare teksti
të thjeshtë (konsolë). Përdoruesi shkruan ose lexon nga kjo konsolë.
Interaksioni: Përdoruesi shkruan tekstin në konsolë dhe merr output-in nga programi në të
njëjtën konsolë.
Përdorimi i Burimeve: Aplikacionet e konsolës përdorin burime të thjeshta të hyrjes dhe daljes,
duke shfrytëzuar Console.ReadLine(), Console.WriteLine(), dhe metoda të tjera të Console
klasës.
Shfaqje: Aplikacionet e Windows janë më të avancuara dhe shfaqin një dritare grafike me
ndërfaqe të përdoruesit (GUI - Graphical User Interface). Përdoruesi mund të ndërveprojë me
aplikacionin duke përdorur ndërfaqen grafike.
Interaksioni: Përdoruesi shfrytëzon butonat, menus, dhe elementet e tjera GUI për të ndërvepruar
me aplikacionin. Për shembull, përdorimi i klikimeve të miushit dhe ngjarjeve të tastierës.
24. Si mund të përcaktohet vendndodhja dhe madhësia e një formë në një aplikacion të
Windows?
3. Implementoni një program që shkruan në një skedar binar disa numra të rastit
dhe pastaj lexon ato numra duke përdorur BinaryReader dhe BinaryWriter.
using System;
using System.IO;
class Program { static
void Main() {
string filePath = "binary-file.bin";
using (BinaryWriter writer = new BinaryWriter(File.Open(filePath, FileMode.Create))) { Random
random = new Random();
for (int i = 0; i < 5; i++) {
writer.Write(random.Next(1, 100));
}
}
using (BinaryReader reader = new BinaryReader(File.Open(filePath, FileMode.Open))) {
Console.WriteLine("Numrat e lexuar nga skedari binar:");
while (reader.BaseStream.Position < reader.BaseStream.Length) {
Console.WriteLine(reader.ReadInt32());
}
4. Përdorni klasën SqlConnection për të lidhur programin në një bazë të
dhënash SQL Server dhe shfaqeni në konzolë statusin e lidhjes.
using System;
using System.Data.SqlClient;
class Program { static
void Main() {
string connectionString = "your-connection-string-here";
adapter.Fill(dataSet, "YourTable");
7. Zhvilloni një aplikacion të Windows me një formë që përmban një TextBox dhe
një buton. Kur përdoruesi shkruan diçka në TextBox dhe klikon butonin, të
dhënat shfaqen në një MessageBox.
using System;
using System.Windows.Forms;
[STAThread]
static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
}
8. Krijoni një formë të aplikacionit të Windows që përmban një ListBox dhe një
buton. Në klikim të butonit, shfaqeni në ListBox të gjitha skedarët e një
direktorie të caktuar.
using System;
using System.IO;
using System.Windows.Forms;
public FileListForm() {
InitializeComponents();
}
private void InitializeComponents() {
fileListBox = new ListBox();
showFilesButton = new Button();
[STAThread]
static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new FileListForm());
}
}
9.
Implementoni një aplikacion të Windows që ka një DataGridView dhe shfaq
një listë të dhënash nga një bazë të dhënash përdorur ADO.NET.
using System; using
System.Data;
using System.Data.SqlClient; using
System.Windows.Forms;
public class DataGridViewForm : Form { private
DataGridView dataGridView;
public DataGridViewForm() {
InitializeComponents();
FillDataGridView();
}
private void InitializeComponents() {
dataGridView = new DataGridView();
dataGridView.Dock = DockStyle.Fill; Controls.Add(dataGridView);
}
private void FillDataGridView() {
string connectionString = "your-connection-string-here"; string
query = "SELECT * FROM YourTable";
using (SqlConnection connection = new SqlConnection(connectionString)) {
SqlDataAdapter adapter = new SqlDataAdapter(query, connection); DataTable
dataTable = new DataTable();
adapter.Fill(dataTable);
dataGridView.DataSource = dataTable;
}
}
[STAThread]
static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new DataGridViewForm());
}
}
10. Shkruani një program që kopjon përmbajtjen e një skedari në një skedar të ri
duke përdorur FileStream.
using System;
using System.IO;
class Program { static
void Main() {
string sourceFilePath = "path-to-source-file.txt";
string destinationFilePath = "path-to-destination-file.txt";
using (FileStream sourceStream = File.OpenRead(sourceFilePath)) using
(FileStream destinationStream = File.Create(destinationFilePath)) {
sourceStream.CopyTo(destinationStream);
Console.WriteLine("Skedari është kopjuar me sukses.");
}
}
}
11. Krijoni një aplikacion që shkruan në një skedar teksti dhe pastaj lexon atë
skedar duke përdorur StreamWriter dhe StreamReader.
using System;
using System.IO;
class Program { static
void Main() {
string filePath = "text-file.txt";
using (StreamWriter writer = new StreamWriter(filePath)) {
writer.WriteLine("Ky është një rresht i shkruar nga programi.");
}
using (StreamReader reader = new StreamReader(filePath)) { string
content = reader.ReadToEnd(); Console.WriteLine($"Përmbajtja e
skedarit: {content}");
}
}
}
12. Implementoni një program që shton tekstin e një rreshti në fund të një
skedari teksti duke përdorur StreamWriter me opsionin e shtimit (Append).
using System;
using System.IO;
class Program { static
void Main() {
string filePath = "text-file.txt";
using (StreamWriter writer = new StreamWriter(filePath, true)) {
writer.WriteLine("Ky rresht është shtuar në fund të skedarit.");
}