Mega Code Archive

 
Categories / Delphi / Algorithm Math
 

ASCII Greek 437 converter

Title: ASCII - Greek 437 converter Question: Barcode printers, cash registers and other local printing devices require that we send ascii text (from win app) translated to the correct codepage. This function does the conversion for the Greek - 437 codepage. Answer: function MakeAscii(Str: string): string; var i: integer; begin for i := 1 to length(Str) do begin if ord(Str[i]) = 162 then Str[i] := chr(234) else if ord(Str[i]) in [184..186] then inc(Str[i], 51) else if ord(Str[i]) = 188 then Str[i] := chr(238) else if ord(Str[i]) = 190 then Str[i] := chr(239) else if ord(Str[i]) = 191 then Str[i] := chr(240) else if ord(Str[i]) in [193..209] then dec(Str[i], 65) else if ord(Str[i]) in [211..217] then dec(Str[i], 66) else if ord(Str[i]) = 220 then Str[i] := chr(225) else if ord(Str[i]) = 221 then Str[i] := chr(226) else if ord(Str[i]) = 222 then Str[i] := chr(227) else if ord(Str[i]) = 223 then Str[i] := chr(229) else if ord(Str[i]) in [225..241] then dec(Str[i], 73) else if ord(Str[i]) = 242 then Str[i] := chr(170) else if ord(Str[i]) = 243 then Str[i] := chr(169) else if ord(Str[i]) in [244..248] then dec(Str[i], 73) else if ord(Str[i]) = 249 then Str[i] := chr(224) else if ord(Str[i]) = 250 then Str[i] := chr(228) else if ord(Str[i]) = 251 then Str[i] := chr(232) else if ord(Str[i]) = 252 then Str[i] := chr(230) else if ord(Str[i]) = 253 then Str[i] := chr(231) else if ord(Str[i]) = 254 then Str[i] := chr(233); end; MakeAscii := Str; end;