๐Ÿš€ go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #525

Re: Kodowanie pliku ASCII

#525
From: zy... Zbigniew Zych
Date: Tue, 16 Apr 1996 00:00
62 lines
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-mail
References: <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