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

GT 145

Decapat
Katılım
29 Temmuz 2021
Mesajlar
730
Çö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.
 
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.
 
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.

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.

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.
 

Yeni konular

Geri
Yukarı