using (StreamWriter sw = new StreamWriter("C:\\test.txt"))
{
if (listView1.Items.Count > 0) // listview boş değil ise
{
StringBuilder sb = new StringBuilder();
foreach (ColumnHeader baslik in listView1.Columns) // columns
{
sb.Append(string.Format("{0}\t", baslik.Text));
}
sw.WriteLine(sb.ToString());
foreach (ListViewItem lvi in listView1.Items)
{
sb = new StringBuilder();
foreach (ListViewItem.ListViewSubItem listViewSubItem in lvi.SubItems)
{
sb.Append(string.Format("{0}\t", listViewSubItem.Text));
}
sw.WriteLine(sb.ToString());
}
sw.WriteLine();
}
}
}
7 Eylül 2013 Cumartesi
Listview içeriğini kaydetmek c#
Listview deki tüm içeri bir text dosyasına kaydetmek istersek aşağıdaki kod işimize yarayacaktır.
settings [uygulamamızı kaydettiğimiz gibi açalım]
Zaman zaman yaptığımız uygulamalarda bazı ayarların veya değişikliklerin programın her açılışında en son kaydettiğimiz ayarlara göre açılmasını isteyebiliriz.
Ve ya bazı ayarların kulanıcı tarafından kendisine göre ayarlayabilmesine izin verebiliriz.
Bu durumda settings dosyası devreye giriyor.
İlk önce ayarları yapabilmemiz için yukarıda ki resimdeki gibi Properties klasöründekiSettings.settings dosyasını açmamız gerekiyor.Ve ya bazı ayarların kulanıcı tarafından kendisine göre ayarlayabilmesine izin verebiliriz.
Bu durumda settings dosyası devreye giriyor.
Biraz da kodlarla anlamaya çalışalım...
Kullanıcının formun arkaplanını değiştiren bir uygulamada
Settings dosyamıza Name kısmına formrenk adında bir değer girelim ve Type iseSystem.Drawing.Color olarak seçelim.
formumuza 1 adet colorDialog ekleyelim
1 adet de buton ekleyelim(renkleri ayarlamak için)
Form1_ Load kısmına
this.BackColor = Properties.Settings.Default.formrenk;
buton için ise;colorDialog1.ShowDialog();
color.BackColor = colorDialog1.Color;
arkaplan rengini değiştirdik sıra geldi kaydetmeye ister bir buton aracılığı ile kaydedebiliriz isterseniz de form kapatılırken de kaydedebiliriz.Properties.Settings.Default.formrenk = color.BackColor;
Properties.Settings.Default.Save();
this.BackColor = Properties.Settings.Default.formrenk;
uygulamamızın boyutu için;Settings dosyamıza Name kısmına FormSize adında bir değer girelim ve Type iseSystem.Drawing.Size olarak seçelim.
Form1_ Load kısmına
this.Size = Properties.Settings.Default.FormSize;
kaydetmek için ise;Properties.Settings.Default.FormSize = this.Size;
Properties.Settings.Default.Save();
uygulamamızın en son bulunduğu x ve y deki konumuna göre açmak için;Settings dosyamıza Name kısmına Location adında bir değer girelim ve Type iseSystem.Drawing.Point olarak seçelim.
Form1_ Load kısmına
this.Size = Properties.Settings.Default.Location;
kaydetmek için ise;Properties.Settings.Default.Location = this.Location;
Properties.Settings.Default.Save();
TextBox olan bir uygulama da ayarları kaydetmek için;Settings dosyamıza Name kısmına textboxayar adında bir değer girelim ve Type ise stringolarak seçelim.
Form1_ Load kısmına
textBox1.Text = Properties.Settings.Default.textboxayar;
kaydetmek için ise;Properties.Settings.Default.textboxayar = textBox1.Text;
Properties.Settings.Default.Save();
ListBox olan bir uygulama da ListBoxa verileri yüklemek için;Settings dosyamıza Name kısmına listboxayar adında bir değer girelim ve Type iseSystem.Collections.Specialized.StringCollection olarak seçelim.
Form1_ Load kısmına
if (Properties.Settings.Default.listboxayar != null)
foreach (string liste in Properties.Settings.Default.listboxayar)
{
listBox1.Items.Add(liste);
}
kaydetmek için ise;Properties.Settings.Default.listboxayar = new System.Collections.Specialized.StringCollection();
foreach (object item in listBox1.Items)
{
Properties.Settings.Default.listboxayar.Add(item.ToString());
}
Properties.Settings.Default.Save();
checkBox olan bir uygulama da;Settings dosyamıza Name kısmına checkboxayar adında bir değer girelim ve Type ise boololarak seçelim.
Form1_ Load kısmına
checkBox1.Checked = Properties.Settings.Default.checkboxayar;
kaydetmek için ise;Properties.Settings.Default.checkboxayar = checkBox1.Checked;
Properties.Settings.Default.Save();
Son olarak comboBox için;Settings dosyamıza Name kısmına ComboItem adında bir değer girelim ve Type iseSystem.Collections.Specialized.StringCollection olarak seçelim.
Form1_ Load kısmına
foreach (string s in Properties.Settings.Default.ComboItem)
{
comboBox1.Items.Add(s);
}
kaydetmek için ise;foreach (string s in comboBox1.Items)
{
Properties.Settings.Default.ComboItem.Add(s);
}
Properties.Settings.Default.Save();
Aslında örnekler bunlarla sınırlı değil siz uygulamanızın çeşidine göre değiştirebilirsiniz...Bu yazımın da sonuna gelmiş bulunuyoruz. Bir sonraki yazımda görüşmek dileğiyle...
Linq To XML Örneği
XML
CLASS
public class INPUT
{
public string GGUID { get; set; }
public string TABLE { get; set; }
public string NAME { get; set; }
public string VALUE { get; set; }
}
INSERT
public void InsertItem(INPUT _item)
{
XDocument doc = XDocument.Load(HttpContext.Current.Server.MapPath("~/App_Data/Data/INPUT.xml"));
doc.Element("NAV").Add(new XElement("INPUT",
new XElement("TABLE", _item.TABLE),
new XElement("VALUE", _item.VALUE),
new XElement("NAME", _item.NAME),
new XElement("GGUID", _item.GGUID)
));
doc.Save(HttpContext.Current.Server.MapPath("~/App_Data/Data/INPUT.xml"));
}
DELETE
public void DeleteItem(string GGUID)
{
XDocument doc = XDocument.Load(HttpContext.Current.Server.MapPath("~/App_Data/Data/INPUT.xml"));
doc.Elements("NAV").Elements("INPUT").Where(s => s.Element("GGUID").Value == GGUID).Remove();
doc.Save(HttpContext.Current.Server.MapPath("~/App_Data/Data/INPUT.xml"));
}
Klasör boyunu öğrenme
Zaman zaman yaptığımız programlarda klasör boyutunu öğrenme veya kullanıcıya bilgilendirme gereği duyabiliriz. Bu ve bunun gibi durumlarda aşağıdaki örnekler bize bu konuda yardımcı olabilir.
C#Kütüphanemize eklemeyi unutmayalım.
using System.IO;
Tüm klasör ve alt klasörlerin boyutunu gösteren metotumuzu oluşturalım.public static long KlasorBoyut(DirectoryInfo yol)
{
return yol.GetFiles().Sum(fi => fi.Length) +
yol.GetDirectories().Sum(di => KlasorBoyut(di));
}
Örnek kullanımı ise;DirectoryInfo klasoryolu = new DirectoryInfo("C:\\test");
long boyutyol = KlasorBoyut(klasoryolu);
MessageBox.Show(boyutyol.ToString());
Visual BasicPublic Shared Function KlasorBoyut(yol As DirectoryInfo) As Long
Return yol.GetFiles().Sum(Function(fi) fi.Length) +
yol.GetDirectories().Sum(Function(di) KlasorBoyut(di))
End Function
Örnek kullanımı;Dim klasoryolu As New DirectoryInfo("C:\test")
Dim boyutyol As Long = KlasorBoyut(klasoryolu)
MessageBox.Show(boyutyol.ToString())
Programımızın çıktısı ise şu şekilde;6996850
Programsız İp Değiştirme Proxy İle[Resimli Anlatım]
İp Değiştirmenin Farklı Yolları Var Tabiki. Ancak Biz programsız Değiştirmeyi Göreceğiz... İlk Önce Firefox ta nasıl oluyor onu görelim.
Firefox için Araçlar / Seçenekler / Ağ / Ayarlar yolunu izleyerek bağlantı ayarlarından gerekli ayarları yapacağız. Aşağıdaki resimdeki gibi;çıkan ekranda Vekil sunucuyu elle ayarla: seçeneğini işaretleyerek HTTP vekil sunucusu : 72.64.146.135 iletişim noktası olarak da 8080 yazıyoruz ve tamam diyoruz.
chrome için ise Ayarlar / Gelişmiş ayarları Göster / Ağ / Proxy ayarlarını değiştir...yolunu izleyerek
Yukardaki resimdeki gibi yolu izlediğimizde Yerel Ağ Ayarları / Proxy Sunucusu / Yerel ağınız için bir proxy sunucu kullan ı işaretleyerek Adres 72.64.146.135 Bağlantı Nok. 8080 yazıyoruz.
İnternet Explorer için ise Araçlar oradan da İnternet Seçenekleri menüsüne giriyoruz. Resimdeki gibi.

Daha sonrada Yerel Ağ Ayarları na geliyoruz. Proxy Sunucusu bölümündeki Seçeneğini İşaretliyoruz Ve Yazı alanlarını aşağıdaki gibi dolduruyoruz... Adres : 72.64.146.135 Bağlantı Adresi(Port) : 8080
Sonuç olarak
Son olarak proxy seçerken proxy türlerini de bilmekte fayda var.
Anonymous(Anonim)
Gizlilik derecesi düşük olan bir proxy dir.
High Anonymous
Gizlilik derecesi yüksek olduğundan gerçek ip adresimiz gizli durumdadır.
proxy bulmanıza yardımcı olacak freeproxylists.net sitesini ziyaret edebilirsiniz.Ayrıca sol üst tarafta ülke ve port numarasını seçerek güncel adresleri bulabilirsiniz...
c# List Kullanımı
Bu yazımda c# ta list kullanımını örneklerle anlatmaya çalışacağım.
Öncelikle kütüphanemizde using System.Collections.Generic yüklü olduğundan emin olun.List elemanımız istersek sayısal istersek string bir değer alabilir. Sayısal olarak şöyle bir örnek olabilir.
List liste = new List(new int[] { 1, 2, 3, 4, 5 });
foreach (int sayilar in liste) // sayısal olarak
{
Console.WriteLine(sayilar);
}
Programızı çalıştırdığımızda aşağıdaki gibi bir sonuç alırız.1
2
3
4
5
Veya string olarak;
List gunler = new List(new string[] {"cuma", "cumartesi", "pazar"});
foreach (string hafta in gunler) // string
{
Console.WriteLine(hafta);
}
sonucumuz isecuma
cumartesi
pazar
List i tanımlarken aşağıdaki gibi bir örnekte olabilir.List gunler = new List();
gunler.Add("cuma");
gunler.Add("cumartesi");
gunler.Add("pazar");
foreach (string hafta in gunler) // string
{
Console.WriteLine(hafta);
}
Addlist e değer ekleyebiliriz.
gunler.Add("pazartesi");
AddRangelist in sonuna ekleme yapar.
List gunler = new List();
gunler.Add("cuma");
gunler.Add("cumartesi");
gunler.Add("pazar");
List aylar = new List();
aylar.Add("ocak");
aylar.Add("şubat");
aylar.Add("mart");
gunler.AddRange(aylar);
foreach (string hafta in gunler) // string
{
Console.WriteLine(hafta);
}
programın çıktısı ise şöyle;cuma
cumartesi
pazar
ocak
şubat
mart
Clearlist te olan tümünü temizler.
List gunler = new List();
gunler.Add("cuma");
gunler.Add("cumartesi");
gunler.Add("pazar");
gunler.Clear();
CountToplam değer
List gunler = new List();
gunler.Add("cuma");
gunler.Add("cumartesi");
gunler.Add("pazar");
Console.WriteLine(gunler.Count);
list 3 elemandan oluştuğu için çıktı 3 olur;3
Insertİndex numarası ile elaman ekleme yapabiliriz.
List gunler = new List();
gunler.Add("cuma");
gunler.Add("cumartesi");
gunler.Add("pazar");
gunler.Insert(3,"pazartesi");
foreach (string hafta in gunler)
{
Console.WriteLine(hafta);
}
çıktısı ise şöyle;cuma
cumartesi
pazar
pazartesi
Removeelemanı silmeye yarar.
List gunler = new List();
gunler.Add("cuma");
gunler.Add("cumartesi");
gunler.Add("pazar");
gunler.Remove("pazar");
örnek çıktısı;cuma
cumartesi
RemoveAtlist te olan değerin index numarasına göre elemanı silmeye yarar. Bu arada index 0 dan başlar.
List gunler = new List();
gunler.Add("cuma");
gunler.Add("cumartesi");
gunler.Add("pazar");
gunler.RemoveAt(1);
örnek çıktısı;cuma
pazar
Bu yazımında sonuna gelmiş bulunuyoruz. Bir sonraki yazımda görüşmek dileğiyle...
27 Ağustos 2013 Salı
C# da Do While ve While Döngüleri
C# da Do While ve While Döngüleri
While Döngüsü:
---------------
Belli bir şarta bağlı olarak istenilen komutların çalıştırılmasını sağlar.
Kullanımı:
---------
While (şart)
{
...komutar
}
Komutları hiç çalıştırmadan döngü başında şarta bakar.
Şart sağlandında komutları çalıştırır ve tekrar döngü başına gelir.
Şart sağlandığı sürece komutları çalıştırmaya devam eder.
Do ... While Döngüsü:
---------------------
Belli bir şarta bağlı olarak istenilen komutların çalıştırılmasını sağlar.
Kullanımı:
---------
Do
{
...komutlar
}
while (şart);
Şarta bakmaksızın komutları bir defa çalıştırır ve daha sonra şarta bakar.
Şart sağlandığı sürece komutları çalıştırmaya devam eder.
Örnek Kod:
private void Form1_Load(object sender, EventArgs e)
{
int x;
x=1;
while (x < 10)
{
listBox1.Items.Add(x);
x++;
}
do
{
listBox2.Items.Add(x);
x++;
}
while (x < 10);
}
---------------
Belli bir şarta bağlı olarak istenilen komutların çalıştırılmasını sağlar.
Kullanımı:
---------
While (şart)
{
...komutar
}
Komutları hiç çalıştırmadan döngü başında şarta bakar.
Şart sağlandında komutları çalıştırır ve tekrar döngü başına gelir.
Şart sağlandığı sürece komutları çalıştırmaya devam eder.
Do ... While Döngüsü:
---------------------
Belli bir şarta bağlı olarak istenilen komutların çalıştırılmasını sağlar.
Kullanımı:
---------
Do
{
...komutlar
}
while (şart);
Şarta bakmaksızın komutları bir defa çalıştırır ve daha sonra şarta bakar.
Şart sağlandığı sürece komutları çalıştırmaya devam eder.
Örnek Kod:
private void Form1_Load(object sender, EventArgs e)
{
int x;
x=1;
while (x < 10)
{
listBox1.Items.Add(x);
x++;
}
do
{
listBox2.Items.Add(x);
x++;
}
while (x < 10);
}
Kaydol:
Kayıtlar (Atom)




