C# ile Dosya işlemi

sonercelix

Asistan
Katılım
13 Şubat 2009
Mesajlar
149
Reaksiyon puanı
0
Puanları
16
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:
 

GKHNCKR

Profesör
Katılım
7 Mayıs 2009
Mesajlar
3,980
Reaksiyon puanı
47
Puanları
228
Bu forumda sana yardımcı olacak düzeyde teknik biri var mı, merak ediyorum doğrusu...
 

yumluanarsist

Rektör
Katılım
11 Haziran 2009
Mesajlar
12,009
Reaksiyon puanı
280
Puanları
0
C# mı dedi birii? :D

Bu forumda adı C# olan biri var bizzat. :D Damlar birazdan konuya adını görünce. :)
 

sonercelix

Asistan
Katılım
13 Şubat 2009
Mesajlar
149
Reaksiyon puanı
0
Puanları
16
İnşallah damlar :) yoksa bende seneye aynı derse bir daha damlamak zorunda kalacağım :((
 
Katılım
31 Aralık 2007
Mesajlar
17,486
Reaksiyon puanı
189
Puanları
243
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?
 

N3CAT1

Dekan
Emektar
Katılım
20 Nisan 2008
Mesajlar
6,607
Reaksiyon puanı
144
Puanları
243
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

Asistan
Katılım
13 Şubat 2009
Mesajlar
149
Reaksiyon puanı
0
Puanları
16
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
 
Katılım
31 Aralık 2007
Mesajlar
17,486
Reaksiyon puanı
189
Puanları
243
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...
 

GKHNCKR

Profesör
Katılım
7 Mayıs 2009
Mesajlar
3,980
Reaksiyon puanı
47
Puanları
228
Anlayanlar varmış. Sevindim... :)
 

novaege

Öğrenci
Katılım
17 Mayıs 2009
Mesajlar
59
Reaksiyon puanı
0
Puanları
0
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();
 
Katılım
31 Aralık 2007
Mesajlar
17,486
Reaksiyon puanı
189
Puanları
243
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)
 
Üst