VOBSAH           DalÓÉ           PŇedeÓlej
logo

AParátnice a ÁPéčko II.

Vod minule AParátnice pekelně přezbrojila. Převody teď jedou přes něco jako tabulku. To je dost - moc rychlejší a spolehlivější a při vytváření tabulek se dá užít tuna srandy.

Teď budu chvilku vokecávat jak jsem to prznil.

Takže základní fór je v tom, že AParátnice 1.1a nemá něco jako převodní algoritmus, ale voperuje se dvěma protějškovýma tabulkama pro každý kódování, který zvládá. Pak stačí v kódu místo nějakejch převodních algoritmů pouhý přiřazení podle indexu (znak:=tabulka[znak]) a k tomu se dospěje protě tak, že se do proměnný tabulka napere pointer na ten správnej protějšek, tak třeba potřebuješ převádět z KOI8 do WINDOZE ÉÉ - prostě nahodíš tabulka:={koi8ee}.

Fajn a jak dostaneš to koi8ee ? Celkem v pohodě někam v kódu nejlíp mimo funkce šlehneš - koi8ee: INCBIN 'koi8.ee'.

Mrkni na zdroják v Éčku.

Jak to tam naprat...

NĹco jako logo Jasně. Potřebuješ ty soubory - tabulky.

Ty "protějškový" soubory (mrkni se do "bonusu/AParátnice" a bude to jasný) byly vytvořený převodem z původního ASCII-FULL výpisu danýho kódování. Prostě jsem si pro každou normu v GOLDEDu vodevřel ASCII-tabulku a zmyšnul každý zasraný písmeno|nepísmeno a to byla vysmahlá hovadina, protože ARexxem nebo menším prográmkem (viz níž) by to šlo MNOHEM pohodlnějc. Převodem za vydatný pomoci "Převodníku" a za vypnutejch úprav (CR,LF a tak..., tuším, že se ta volba jmenunuje "Nerozpoznávat kódování") jsem pak konečně dostal ty "protějškový" soubory. Stačí prostě zvolit nějaký (to potřebný výchozí) a to pro, který potřebuješ tu protějškovou tabulku a je vymalováno.

Huf, to byla smažba.

->       <-
/* Tak tohle je ten prográmek na vytvoření ASCII-výčtu-tabulky
- prostě souboru,kterej vobsahuje byty 0-$FF
neručím za to,že fakčí,nezkoušel sem to,ale mělo by
*/

 
PROC main()
  DEF franta /* potřebnej file handl -> jestli nevíš vo co  'de
                    potřebuješ nutně nějakou developer guide - podvodíl DOS(.library) */

  DEF ascii[255]:ARRAY OF CHAR, /* no,to je to společenství znaků */
          i /* tradiční nudná a spolehlivá proměnná pro FOR cyklus */

 
  /* Naper do do bufáče */
  FOR i := 0 TO 255 -> = $FF
      ascii[i]:=i
  ENDFOR
 
  IF
(franta:=Open('ascii.full',NEWFILE))=FALSE /* vodevři si soubor */
      WriteF('Nejde mi vodevřít soubor na uložení ! \n') /* sere se to ! */
      CleanUp(15) -> shitus exitus
  ENDIF
 
  Write(franta,ascii,255) -> pro puňtičkáře 256,ale na poslední seru....
  Close(franta) -> zavírej,TÁHNE !
 
  CleanUp() -> ukliď si po sobě ty čuně !
ENDPROC
/* A to je všechno..... */
 

/* Nebo takhle,podle mě surově elegantněji: */
 
PROC main()
  DEF franta
  DEF i

 
  IF (franta:=Open('ascii.full',NEWFILE))=FALSE
      WriteF('Nejde mi vodevřít soubor na uložení ! Mrskni si ho. \n')
      CleanUp(15)
  ENDIF
 
  Flush(franta) /* jen pro jistotu... */
 
  FOR i := 0 TO 255
    FputC(franta,i) /* OS 2.0+ stylovej bufferovanej zápis jednoho znaku */
  ENDFOR
 
 
Close(franta)
 
  CleanUp()
ENDPROC
 
/* NO COMMENT */

BOLDA          


__________________________________________  
.
 
Další ve frontě:
 
KodeŇina   AMIGA E - II.díl


HarDWare WArEZ WorkBenchoviny KoDeŇiNa DeMÁăE Gfx&Muzika PaŇBY VokeCáVKy 2
Hardware Warez WBoviny Kodeřina Dema Gfx&Muz Pařby Vokecávky2