Article View: pl.comp.programming
Article #525Re: Kodowanie pliku ASCII
From: zy... Zbigniew Zych
Date: Tue, 16 Apr 1996 00:00
Date: Tue, 16 Apr 1996 00:00
62 lines
2483 bytes
2483 bytes
Krzysztof Gozdziewski (ch...@ncac.torun.pl) wrote:
: Mam taki problem: trzeba zakodowac plik ascii i byloby dobrze, zeby znaczaco
: zmniejszyc jego rozmiary. Czy jest jakas metoda, ktora nie polegalaby na
: 'zwyczajnej' kompresji, np. metodami uzywanymi przez archiwizery ?
: Chodzi po porstu o tak rzecz: mam duza baze danych ASCII (2MB), chce
: ja tak zapisac, zeby nie mozna jej bylo w prosty sposob odczytac, i
: zmniejszyc rownoczesnie plik.
Rozumiem, ze chcesz programem obslugi bazy czytac i pisac od razu
do/z postaci skompresowanej?
A moze tak:
Litery+ cyfry = 26+26+10 znakow (duze i male litery)
to daje razem: 62 znaki
Czyli bombowo!
64 znaki - to daje: 6 bitow.
Stosujesz wlasna tabele przekodowania:
a = 0
b = 1
....
z = 25
A = 26
B = 27
....
Z = 51
0 = 52
1 = 53
....
9 = 61
Pozostale dwa kody wykorzystujesz do zakodowania pozostalych znakow
Jesli teraz chcesz zakodowac np: Abc, to dostajesz ciag:
26, 1, 2
Ale nie zapisujesz tego na osobnych bajtach, ale polacz:
czyli 26 zapisz na pierwszych 6 bitach pierwszego bajtu,
1 zapisz na 6 bitach, ale na 2 bitach z pierwszego, i na 4 z 2 bajtu.
2 na 4 bitach z 2 bajtu i 2 bitach z 3 bajtu...
Jak widac uzyskujesz (w przypadku tekstow zlozonych wylacznie z liter
i cyfr) stosunek upakowania: 4 do 3 (4 znaki na 3 bajtach).
To nie duzo... fakt..
Klopoty:
1. kodowanie/odczyt tak spakowanych danych
(trzeba sie grzebac w bitach...)
2. trzeba sie zastanowic jak zakodowac reszte znakow...
Mozna sie zastanowic i np. kodowac jeszcze inaczej, np. zakladajac
ze w tekstach glownie wystepuja male litery, oraz kilka znakow
(przecinek, kropka wykrzyknik, nawiasy... etc...)
zakodowac jako slownik podstawowy: male litery, cyfry i te znaki,
a reszte jako zlozone znaki...
(np. 63 i nastepnie 1 to moze byc np. duza litera B... etc...)
Zbigniew Zych
--
PGP finger: zy...@sol.pp.net.pl IRC Admin @ irc.agh.edu.pl
<a href="http://www.pp.net.pl/"> Peter Pan K.P.K. Piotr Wende</a>
Technical Details
Message-ID:
<4l0f9m$o2p@bilbo.nask.org.pl>Path:
mbox-mo1.pugleaf.net!unknown!not-for-mailReferences:
<4l052b$pir@Waldemar.mat.uni.torun.pl>Show Full Headers
Complete Article Headers
From: zy...@pp.net.pl (Zbigniew Zych) Subject: Re: Kodowanie pliku ASCII Date: 1996/04/16 Message-ID: <4l0f9m$o2p@bilbo.nask.org.pl> X-Deja-AN: 147814770 references: <4l052b$pir@Waldemar.mat.uni.torun.pl> organization: Peter Pan K.P.K. Piotr Wende, ul. Warszawska 4, 31-155 Krakรณw newsgroups: pl.comp.programming MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit