Dosya sıkıştırıcı nasıl yapılır?

479980

Decapat
Katılım
29 Temmuz 2021
Mesajlar
742
Çözümler
1
Arkadaşlar merhaba ben C++ ile basit bir dosya sıkıştırıcı yapmak istiyorum. Algoritmalarını araştırdım. Mesela "a" harfini "001" yapın diyorlar örnek. Ama böyle yaptırıp kayıt ettiğimde 1 bytelik dosya 3 byte oluyor. Nasıl yapabilirim? Çok profesyonel bir şey yapmayacağım. Mesela 1 GB dosyayı 800-900 MB yapsın yeter.
 
Huffman algoritmasını bir araştır.
 
Hocam ona bakmıştım daha kolay algoritmalar var mı?
Yok. Basit olarak izah edeyim örneğin bir metni sıkıştıracaksın diyelim bu metin içinde en çok tekrar eden sıralı 3 harfi bulacaksın ve bunların yerine 1 yazacaksın, dosyanın ilk satırına da 1abc gibi anahtarı da yazacaksın decode işleminde de dosyayı tekrar okuyup 1 yazan yere abc yi yerleştireceksin. Mantık bu. Ençok tekrar edeni bulup en az ya da hiç tekrar etmeyen byte ile değiştireceksin. 3 sıra veriyi 1 sıra yapacaksın.
 

Tamam teşekkürler.


Hocam peki bunu hangi dille yapmalıyım sizce performansa bellek yönetimine çok önem veriyorum ama C++ ile zaman israfı olacağını düşünüyorum. Ama sizin fikrinizide alayım.
 
Önce Python gibi bir dille prototipini geliştirirsin ardından C++ ile son kullanıcıyı esas alan optimize versiyonunu geliştirirsin.
 
Son düzenleyen: Moderatör:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…