RE: C + displej hd44780 + vlastní znaky

Miroslav Draxal evik na volny.cz
Středa Duben 5 21:16:29 CEST 2017


Díky, jak tak na to koukám, tak to bych asi zvládl ve VB. Musím se přiznat,
že se na to vykašlu. Budu nadále používat ten můj vohejbák. Už jsem si na to
zvykl. Míra


-----Original Message-----
From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Miroslav Mraz
Sent: Wednesday, April 05, 2017 5:49 PM
To: HW-news
Subject: Re: C + displej hd44780 + vlastní znaky

No, není to zase taková sranda. Upálení byl ten nejmenší trest, který mohl
Husa za ta nabodeníčka stihnout. Největší problém je v čem to napsat. V
C-čku by to znamenalo vykrást třeba iconv, nejlepší by byl asi perl, nakonec
jsem zkusil python, ten může fungovat asi i pod Windows. 
Můžete se to zkusit, zmrší to jen komentáře v češtině, programu by se to
nemělo dotknout. Lze použít i jiné kódování než utf-8.
---------------------------------------------------
#!/usr/bin/env python
# *-* coding: UTF-8 *-*
import sys
# !!! Nikde nejsou ošetřeny žádné chyby !!!
# Dodefinuj si vlastní kódování, slovník musí obsahovat # všechny použité
paznaky, jinak se vrátí 0xFF myCodes =
{'á':0xE0,'ý':0xE1,'ě':0xE2,'š':0xE3,'č':0xE4}
Prefix  = "c_"
Source_codeset = "utf-8"
#Source_coding = "windows-1250" # vstupní kódování jiné Thisis_codeset =
"utf-8"

def encoding (character):
   enc = character.encode(Thisis_codeset)
   if myCodes.has_key(enc):
     result = myCodes[enc]
   else:
     result = 0xFF
   return "\\0x%02X" % result

def myCoding (infilename):
   infile  = open (infilename, "r")
   context = infile.read()
   infile.close()
   outfilename = Prefix + infilename
   outfile = open (outfilename, "w")
   inputs  = context.decode(Source_codeset)
   output  = ""
   for character in inputs:
     if ord (character) < 128:
       output += character
     else:
       output += encoding (character)
   outfile.write (output)
   outfile.close()
   print "converting to %s" % outfilename # název konvertovaného souboru je
argument skriptu if __name__ == "__main__":
   if len(sys.argv) > 1:
     myCoding (sys.argv[1])
   else:
     print "použití: %s filename" % sys.argv[0]
---------------------------------------------------
Z tohoho:
const char * string = "Krásný den\n";
to udělá toto:
const char * string = "Kr\0xE0sn\0xE1 den\n";


Mrazík

PS.
Ten kdo python opravdu umí, nechť mě nebije, já se to teprve pomalu učím.
Ale fakt je, že mě to zatím nijak nenadchlo.

Dne 4.4.2017 v 12:11 Miroslav Draxal napsal(a):
> Řetězce tak nějak odjakživa píšu do jednoho souboru, to je splněné, 
> ale konverzní program asi psát nebudu, tedy spíš neumím.
> Díky.
>
_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list



Další informace o konferenci Hw-list