İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

C# ile Dosya işlemi

sonercelix16.01.201012 cevap3.950 görüntüleme
2009'den beri149 mesaj
#1
Benim sorunum C# ile normal text dosyaları üzerinde işlem yapmak değil.
Bir ses dosyası içerisine basit bir text verisi gömmek. Bunuda Ses dosyasının içerisindeki her bir bytin en düşük değerlikli bitini değiştirerek yapmayı düşünüyorum. Hem ses dosyasının boyutu değişmeyecek hem de ses kalitesi çok az bozulacak. Bunun için bir ses dosyasını byte byte nasıl okuyup nasıl yazdırırım.
Yardımlarınızı bekliyorum. Teşekkürler. :helpsmilie::helpsmilie::helpsmilie:
Cevaplar
2009'den beri3.980 mesaj
#2
Bu forumda sana yardımcı olacak düzeyde teknik biri var mı, merak ediyorum doğrusu...
2009'den beri12 bin mesaj
#3
C# mı dedi birii? :D

Bu forumda adı C# olan biri var bizzat. :D Damlar birazdan konuya adını görünce. :)
sonercelix Konuyu açan
2009'den beri149 mesaj
#4
İnşallah damlar :) yoksa bende seneye aynı derse bir daha damlamak zorunda kalacağım :((
2007'den beri17 bin mesaj
#5
amacın ses işlemek o yüzden ilk önce ses verisini çözümlemek gerekir. bununla ilgili ekstra kütüphaneler ancak işini görür. çünkü .net'in altyapısında bildiğim kadarı ile ses işlemeye uygun herhangi bir hazır class yok. ya kendi kütüphaneni geliştireceksin ki bu çok uzun sürecek bir işlem. ya da hazır kütüphanelerle işini göreceksin.

ben biraz araştırayım herhangi bir şey bulursam haber veririm...

bu arada ses ve text ilişkisini hala tam kavrayabilmiş değilim. işlemi tam detaylı anlatır mısın?
2009'den beri1.703 mesaj
#6
ben geldiiiim :) ama c# den hiç anlamam :D
2008'den beri6.607 mesaj
#7
eğer her byte 'ın bir bit 'ini değiştirirsen ses tamamiyle bozulur ve anlamsız bişey çıkar ortaya. örneğin sen A karakterinin en düşük değerlikli bit 'ini değiştirdiğinde artık o karakter A değil de D,e gibi başka bir karakter olacak.

ama bahsettiğin mp3 ses dosyalarına id tag eklemek gibi bişeyse codeproject.com 'da çok güzel örnekler var. idv3 tag diye aratırsan burda güzel örnekler çıkacaktır.
sonercelix Konuyu açan
2009'den beri149 mesaj
#8
Veriyi gömeceğim ses dosyası Wav uzantılı olacak. Çünkü diğer uzantıların formatları veri saklama şekilleri farklıymış. Bu iş için geliştirilen C# programı buldum internetten. İçerisinde WaveStream.cs, WaveNative.cs, WaveUtility.cs sınıfları mevcut. wav dosyası okuma ve yazma işlemleri için komutlar sınıflarda var.

Örneğin: deneme.wav dosyası olacak. Formdan ben bu ses dosyasını seçeceğim. Textboxda da "cgrszone" yazsın. Textboxta yazılan ifadeyi bu ses dosyasınında verilerin olduğu kısma yazmak. c harfinin ilk bitini ses dosyasındaki ilk baytin son bitine, ikinci bitini ses dosyasının ikinci bytenin son bitine yazdıracağım. Fazla veri saklamama gerek yok. Bu mantıkla.

Seninde tavsiye edebileceğin bi yöntem veya kaynak varsa söylersen sevinirim


---------- saat 15:07 eklendi ---------- önceki mesaj saat 15:07 eklenmişti ----------

O karakterlerde 1010 (A) ben son bitini 1 yaparsam 1011 (B) olur da bu ses dosyasında fark edermi ? bende bilmiyorum. Resim içerisine veri saklayan kişilerde bu şekilde yapıyorlar. ( Bir arkadaşım yapmıştı) Her resimin pixel pixel okuyup son bitini değiştirip aynı sıra ile resimi oluşturuyordu. Resimde anormal bir bozukluk olmuyor. Belli olmuyor fazla. Tahminim ses dosyasında da aynı mantıktır.

---------- saat 15:11 eklendi ---------- önceki mesaj saat 15:07 eklenmişti ----------

indirdiğim program : http://www.upload.gen.tr/d.php/s8/gjvm6pfq/StegAudio.zip.html burda var
2007'den beri17 bin mesaj
#9
açıkçası daha önce yapmadığım bir şey. daha doğrusu yapmaya gerek duymadığım bir şey. bu sebeple senin neden gerek duyduğunu anlayamadım zaten :)

şu an linux üzerindeyim windows'a geçtiğim zaman dosyayı indirir bir incelerim. ona göre bir şey yapılabilecekse yaparız...
2009'den beri3.980 mesaj
#10
Anlayanlar varmış. Sevindim... :)
2009'den beri59 mesaj
#11
List<byte> myFile = new List<byte>();

FileStream fStream = new FileStream("Islenecek dosya path bilgisi", FileMode.Open);
BinaryReader bReader = new BinaryReader(fStream);

while (fStream.Position < fStream.Length)
{
byte fR = bReader.ReadByte();

BitArray bits = new BitArray(fR);

// bits arrayi uzerinde islem yapilir

myFile.Add(fR);

}
fStream.Close();
sonercelix Konuyu açan
2009'den beri149 mesaj
#12
Teşekkürler :)
2007'den beri17 bin mesaj
#13
bir ses verisinin içine veri gömeceksin ve daha sonra veriyi okuyacaksın ama ses verisi de bozulmayacak. doğru mu anladım.

eğer doğru anladıysam saklanacak veri ses verisinin içinde mi olacak sonunda mı? (byte'sal dizilim anlamında soruyorum)

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.