Re: C + displej hd44780 + vlastní znaky
Miroslav Mraz
mrazik na volny.cz
Středa Duben 5 17:48:49 CEST 2017
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.
>
Další informace o konferenci Hw-list