Показать сообщение отдельно
Старый 28.05.2010, 19:25   #11
Местный
 
Регистрация: 27.01.2009
Сообщений: 154
Сказал Спасибо: 23
Имеет 26 спасибок в 19 сообщенях
guplen пока неопределено
По умолчанию

Цитата:
Сообщение от J-Fobos Посмотреть сообщение
А может через жопу получится?
Максимальное значение integer плюс то что "не влезло" в переменную.
Код:
var
z:Cardinal;


z:=2147483647+abs(ReadD(10));
Не, это не то...
Я сделал вот так, через Int64:

Код:
function ReadX(index:integer):int64;
var
    s:String;
begin 
    s:=pck[index+3]+pck[index+2]+pck[index+1]+pck[index];
    s:='$'+StrToHex(s);
    Result:=StrToInt64(s);
end;
Пробовал делать возвращаемое значение тип Cardinal. Но когда пытаешься преобразовать в строку через IntToStr, то опять получается отрицательное число.
Код кривой, из-за использования 8 байт вместо 4. Можно ли как то обойтись 4 байтами?

Последний раз редактировалось guplen, 28.05.2010 в 19:30.
guplen вне форума   Ответить с цитированием