Respond needs javascript to run. To find out more click here
dosyadan veri okuyup arraylist atmak » Serdar Demir
RSS
 

Posts Tagged ‘dosyadan veri okuyup arraylist atmak’

C# da sıkıştırma algoritmaları örnek uygulama anlatım

22 Tem

Sıkıştırma algoritmaları

Winrar-SZ-128x128Bildiğimiz gibi bilgisayarda veriler 1 byte yani 8 bitten oluşur yani karakterler 010101111 şeklinde 2 lik sistemde sayılarla temsil edilir. Bilgisayarlarda ihtiyaç duyulan veya saklanan verilerin her geçen gün arttıgı biliniyor bu yogunluğu azaltmak üzere ve daha az kayıplı sıkıştırma yapabilmek için birçok sıkıştırma programları üretilmiştir hepimiz bunları kullanıyoruz kullanmak zorundayız. Winar winzip en popüler olanları bu programlar profesyonel olmalarına ragmen sıkıstırdığımız dosyaları açarken bazı hatalarla karşılaşmışsınızdır.

Sıralama algoritmalrı kayıplı ve kayıpsız olmak üzere iki türlüdür. Kayıplı algoritmanın tek farkı sıkıstırma işleminden sonra tekrar eski veriye ulaşamamızdır aklınıza ozaman niçin böyle bişeye gerek var gibi bir soru gelebilir bunun için en güzel örnek video dosyalarıdır örneğin *.mgp uzantılı dosyalar veya resimler bu dosyalar belli şeklide sıkıştırılarak bu formatlara çevirilir kullandınız sıkıştırma katsayı ise sizin video ve resim kalitenizi belirtir kayıplı algoritmada sıkıştırma isleminde sonra veri ne kadar küçülürse bizim için kötüdür videoların boyutu küçükse kalitesizdir diye düşünürüz. Kayıpsız da ise tam tersi söz konusudur. Neyse konuyu fazla uzatmayalım :D kodlamaya geçelim

Öncelikle C:\\ dizinine  ismi serdar olan bir metin dosyası atın , uygulamamızda dosyalama işlemleri ve arraylist kullanacağımız için  system.IO ve system.collections kütüphanelerini ekleyelim

sıkıs

private void button1_Click(object sender, EventArgs e)
{
byte[] dizidoya;
string dosyayolu;
StreamReader dosya = File.OpenText(“c:\\serdar.txt”);
string deger = dosya.ReadToEnd();
dizidoya = System.Text.Encoding.UTF8.GetBytes(deger);
MessageBox.Show(deger.ToString());
sikistir(dizidoya);
}

private void button1_Click(object sender, EventArgs e)

{

byte[] dizidoya;

string dosyayolu;

StreamReader dosya = File.OpenText(“c:\\serdar.txt”);

string deger = dosya.ReadToEnd();

dizidoya = System.Text.Encoding.UTF8.GetBytes(deger);

MessageBox.Show(deger.ToString());

sikistir(dizidoya);//* fonksiyonumuzu çağırıyoruz

}

//*fonksiyonumuzu tanımlıyoruz

private void sikistir(byte[] dosyaoku)

{

char[] dizi = System.Text.Encoding.UTF8.GetChars(dosyaoku);

ArrayList siralidizi = new ArrayList();

ArrayList tekeleman = new ArrayList();

ArrayList kactane = new ArrayList();

ArrayList bulunannumara = new ArrayList();

ArrayList bitsayisi = new ArrayList();

ArrayList tambitsayisi = new ArrayList();

int adet = 0, j = 0, i = 0;

siralidizi.AddRange(dizi);

siralidizi.Sort();

while (i<=siralidizi.Count-2)

{

tekeleman.Add(siralidizi[i]);

adet = 0;

j = i + 1;

while ((char)siralidizi[i]==(char)siralidizi[j])

{

adet++;

j++;

}

if (adet == 0)

{

i++;

}

else

{

i = i + adet + 1;

}

kactane.Add(adet + 1);

}

tekeleman.Add(siralidizi[siralidizi.Count - 1]);

kactane.Add(“1″);

ArrayList siralitekeleman = new ArrayList();

siralitekeleman.AddRange(kactane);

int degertut;

Object degertut2;

for (int n = 0; n <= siralitekeleman.Count-1; n++)

{

for (int t = 0; t <= siralitekeleman.Count-1; t++)

{

if (Convert.ToInt32(siralitekeleman[n]) > Convert.ToInt32(siralitekeleman[t]))

{

degertut = Convert.ToInt32(siralitekeleman[n]);

siralitekeleman[n] = siralitekeleman[t];

siralitekeleman[t] = degertut;

degertut2 = tekeleman[n];

tekeleman[n] = tekeleman[t];

tekeleman[t] = degertut2;

}

}

}

for (int m = 0; m <=tekeleman.Count-1; m++)

{

bitsayisi.Add(“0″);

for (int z = 0; z < m; z++)

{

bitsayisi[m] = “1″ + bitsayisi[m];

}

}

for (int m = 0; m <=dizi.Length-1; m++)

{

Object eleman;

eleman = dizi[m];

int numara = tekeleman.IndexOf((Char)eleman);

tambitsayisi.Add(bitsayisi[numara]);

}

string bitler=”";

for (int m = 0; m <=dizi.Length-1; m++)

{

bitler += (string)tambitsayisi[m];

}

int adedi = bitler.Length;

int bitsay = adedi % 8;

if (bitsay!=0)

{

for (int c = 0; c <=7-bitsay; c++)

{

bitler += “1″;

}

this.Text = bitler;

char[] cozdizi = new char[(int)bitler.Length / 8];

for (int m = 0; m < cozdizi.Length-1; m++)

{

string ydeger;

ydeger = bitler.Substring(m * 8, 8);

int deg = 0;

for (int s = 0; s >= 0; s–)

{

int a;

a = Convert.ToInt32(ydeger[s].ToString())*(int)Math.Pow(2,7-s);

deg += a;

}

byte sayi = (byte)deg;

cozdizi[m] = (char)sayi;

}

byte[] dosyayaz = System.Text.Encoding.UTF8.GetBytes(cozdizi);

FileStream dosya = new FileStream(“yeniserdar.txt”, FileMode.OpenOrCreate);

dosya.Write(dosyayaz, 0, (int)cozdizi.Length);

}

programı çalıştırdıkdan sonra yeni oluşturulan dosyayı açtıgımızdacıktı

 
No Comments

Posted in C#, Makaleler

 

C# dosyadan veri okuma örnek uygulama

15 Tem

ogr kayit
C# dosyadan veri okuma örnek uygulama, bu uygulamamızda dosyaya kayıt yapma ve program çalıştırıldıgında eğer dosyada kayıt varsa bize listeleyecek bir program yazacağız. Bu kontrolü forum load eventında kontrol edeceğiz

if (File.Exists(“serdar.txt”))

{   StreamReader oku = new StreamReader(“serdar.txt”);

while (!oku.EndOfStream)

{

……………………..
}


verilerimizi görüntüleyecek olan listview için lvitem adında kontrol oluşturuyoruz

if (File.Exists(“serdar.txt”))
{
StreamReader oku = new StreamReader(“serdar.txt”);
while (!oku.EndOfStream)
{
string dosyaoku = oku.ReadLine();
string[] yazi = dosyaoku.Split(‘-’);
ListViewItem lvitem = new ListViewItem();
lvitem.Text=yazi[0];
lvitem.SubItems.Add(yazi[1]);
lvitem.SubItems.Add(yazi[2]);
listView1.Items.Add(lvitem);
} oku.Close();
}

ListViewItem lvitem = new ListViewItem();

lvitem.Text = textBox1.Text;

lvitem.SubItems.Add(textBox2.Text);

lvitem.SubItems.Add(textBox3.Text);

listView1.Items.Add(lvitem);


StreamWriter yaz = new StreamWriter(“serdar.txt”, true);

yaz.WriteLine(“{0}-{1}-{2}”,lvitem.SubItems[0].Text,lvitem.SubItems[1].Text,lvitem.SubItems[2].Text);

yaz.Close();

diyerek textbox1, textbox2 ve textbox3 deki verileri lvitem in sub items larına ekliyoruz daha sonra bu verileri “serdar.txt” dosyasına sırasıyla kaydediyoruz.

Örnek uygulamayı indir

 
4 Comments

Posted in C#, Makaleler