Dělám aplikaci pro načítání SMS z telefonu v PDU do čitelný podoby. SMS se můžou ukládat pomocí 7/8/16 bit. kódování. Já si nevim rady s tim 16bit. Text SMS vypadá takto:
- Kód: Vybrat vše
'00C10063010D010F011B0159016100DF0119006B00F400FC017E'
Na internetu sem našel jednu stránku kde převod funguje - vytáhl sem ze zdroje funkci pro převod:
- Kód: Vybrat vše
function getUserMessage16(input,truelength)
{
var smsMessage = "";
calculation = "Not implemented";
// Cut the input string into pieces of 4
for(var i=0;i<input.length;i=i+4)
{
var hex1 = input.substring(i,i+2);
var hex2 = input.substring(i+2,i+4);
smsMessage += "" + String.fromCharCode(HexToNum(hex1)*256+HexToNum(hex2));
}
return smsMessage;
}
A ten sem zkusil přepsat do Delphi až mi vyšlo něco takovýho:
- Kód: Vybrat vše
hex1 := source[1] + source[2];
hex2 := source[3] + source[4];
result := char(hexToInt(hex1)*256 + hexToInt(hex2));
Problém je pochopitelně v tom, že Char mi u čisla většího než 255 odečte 256 a ten zbytek vyplivne jako charakter. (269 mi převede na #13). Tudíž hledám nějakou alternativu pro fromCharCode nebo nějakej jinej kloudnej způsob převodu, zatim sem ale nic nenašel. Nevíte o něčem?