Preskočiť na obsah
100% lokálne

Kódovanie dĺžky série

Komprimujte opakované znaky na páry počet-znak a dekódujte ich späť.

Vstup
Výstup

Kódovanie dĺžky série

Kódovanie dĺžky série nahradí opakované znaky počtom a samotným znakom: "aaabcc" sa zmení na "3a1b2c" — tri a, jedno b, dva c. Tento nástroj text kóduje týmto spôsobom a dekóduje ho späť, úplne v prehliadači. Je to rovnaký princíp, ktorý stojí za faximálnou kompresiou, variantom RLE v BMP a jednoduchými formátmi herných aktív: opakujúce sa údaje sa výrazne zmenšia, zatiaľ čo text bez opakovania sa veľmi zmení.

Dve možnosti formátu určujú, ako sa každá séria zapíše: počet pred znakom (3a) alebo znak pred počtom (a3). Zapnutím možnosti "komprimovať iba série dlhšie ako 1" zostanú jednotlivé výskyty bez zmeny — "aaabcc" sa zmení na "3ab2c" namiesto "3a1b2c" — čítanie bližšie k tomu, ako sa RLE vyučuje, za cenu potreby oddeľovača pre text, ktorý tiež obsahuje číslice. Oddeľovač medzi sériami (čiarka, medzera, čokoľvek, čo napíšete) úplne odstraňuje tú neistotu a je potrebný pre režim bajtov. "Spracovávať riadok po riadku" zabráni sériám v prekročení zalomení riadkov, užitočné, keď je každý riadok skutočne vlastným záznamom.

Režim bajtov interpretuje vstup ako hexadecimálne bajty namiesto textových znakov — vložte hex ako "00 00 00 ff" (medzery sa ignorujú) a zoskupuje a komprimuje sa bajt po bajte, čo je spôsob, akým sa RLE skutočne používa na binárnych údajoch, ako sú nekomprimované riadky obrázkov. Dekódovanie zrkadlí každú možnosť: vyberte rovnaký formát, oddeľovač a nastavenie režimu bajtov použitého na kódovanie a pôvodný text alebo hex sa vrátia presne. Tabuľka živého počtu zobrazuje dĺžku vstupu a výstupu plus pomer kompresie, takže môžete na prvý pohľad vidieť, či je daný vstup dobrým kandidátom pre kódovanie dĺžky série.

Všetko sa spúšťa lokálne v prehliadači — nič, čo vložíte, sa nikam nenahraje. Skopírujte výsledok, stiahnite si ho ako súbor .txt alebo pošlite výstup priamo späť do vstupu, aby ste prepli smer a overili cestu tam a späť.

Časté otázky

Čo presne znamená 3a1b2c?
Znamená to tri a, jedno b a potom dva c — kódovanie dĺžky série "aaabcc". Počet vždy prichádza so znakom, ktorý počíta, v ktoromkoľvek poradí, ktoré si vyberie možnosť formátu.
Prečo dekódovanie niekedy zlyha alebo vytvorí nesprávny text?
Dekódovanie predpokladá, že formát, oddeľovač a možnosti režimu bajtov sa zhodujú s tým, čo sa použilo na kódovanie. Ak pôvodný text obsahuje znaky číslic a nebol použitý žiadny oddeľovač, číslice sa môžu chybne čítať ako súčasť počtu — pridajte oddeľovač, aby ste sa tomu vyhli.
Kedy je kódovanie dĺžky série naozaj užitočné?
Na údajoch s dlhými opakovanými sériami — jednolité riadky obrázkov, vyplňovací bajty, opakované znaky denníka — výrazne sa zmenšuje výstup. Na typickej próze zvyčajne zväčšuje výstup, pretože väčšina znakov sa neopakuje.
Na čo je režim bajtov?
Interpretuje vstup ako hexadecimálne kódované bajty namiesto textu, takže môžete spustať kódovanie dĺžky série binárnych údajov (vložených ako hex) spôsobom, akým to robia formáty obrázkov a faxov, bajt po bajte namiesto znaku po znaku.
Sú moje údaje niekde nahrané?
Nie. Kódovanie a dekódovanie sa spúšťajú úplne v prehliadači — nič, čo napíšete alebo vložíte, nikdy neopúšťa vaše zariadenie.