Вернуться   CoderX :: Forums > Основные форумы > Курилка
Войти через OpenID

Курилка Флудим и шутим тут!

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 28.05.2010, 18:29   #1
Местный
 
Регистрация: 27.01.2009
Сообщений: 154
Сказал Спасибо: 23
Имеет 26 спасибок в 19 сообщенях
guplen пока неопределено
По умолчанию Глупый вопрос по лпх.

Пишу ReadD(10), он мне выдает отрицательное число. Как сделать, чтобы он читал его как беззнаковое, что-то вроде типа LongWord (0-4294967295). Или как его сконвертировать в этот тип? Лпх не знает тип LongWord.

Мне нужно это 4х байтовое число вывести в чат.

Добавлено через 22 минуты
Я так понял, что ReadD возвращает 4 байта со знаком. А мне надо без знака. Есть ли такая фунция в лпх или каким образом можно достич нужного результата?

Последний раз редактировалось guplen, 28.05.2010 в 18:29. Причина: Добавлено сообщение
guplen вне форума   Ответить с цитированием
Старый 28.05.2010, 18:50   #2
Местный
 
Аватар для J-Fobos
 
Регистрация: 09.06.2008
Сообщений: 867
Сказал Спасибо: 175
Имеет 468 спасибок в 259 сообщенях
J-Fobos пока неопределено
По умолчанию

abs(); не подойдет?
__________________

В любом из нас спит гений. И с каждым днем все крепче.

Переходим на протокол нового поколения jabber
J-Fobos вне форума   Ответить с цитированием
Старый 28.05.2010, 18:52   #3
Местный
 
Регистрация: 27.01.2009
Сообщений: 154
Сказал Спасибо: 23
Имеет 26 спасибок в 19 сообщенях
guplen пока неопределено
По умолчанию

Ненене, мне не модуль нужен. Нужен тип 4 байта без знака. Только я хз как он обзывается в лпх. И есть ли такой вообще.
Если нету, придется делать через инт64 ручным преобразованием.
guplen вне форума   Ответить с цитированием
Старый 28.05.2010, 18:55   #4
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

Cardinal
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 28.05.2010, 18:58   #5
Местный
 
Регистрация: 27.01.2009
Сообщений: 154
Сказал Спасибо: 23
Имеет 26 спасибок в 19 сообщенях
guplen пока неопределено
По умолчанию

Цитата:
Сообщение от alexteam Посмотреть сообщение
Cardinal
Сделал так:
Код:
var z:Cardinal
s:String;

z:=ReadD(10);
s:=inttostr(z);
все равно в s хранится отрицательное число. Что не так делаю?
guplen вне форума   Ответить с цитированием
Старый 28.05.2010, 19:01   #6
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

readd возвращает инт.
в фастскрипте все на вариант типах. ему сугубо пофиг как ты обявишь то куда ты хочеш положить результат readd.
хоть байтом обзови. варианту пофик.
хочешь добиться того чего надо - читай все 4 байта через readb
и преобразуй их в кардинал вручную.
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 28.05.2010, 19:02   #7
Местный
 
Регистрация: 27.01.2009
Сообщений: 154
Сказал Спасибо: 23
Имеет 26 спасибок в 19 сообщенях
guplen пока неопределено
По умолчанию

Только я понять не могу, почему в целое число без знака функцией ReadD вносится отрицательное число. Или в IntToStr косяк?
guplen вне форума   Ответить с цитированием
Старый 28.05.2010, 19:04   #8
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

предыдущую мессагу прочитай. поймешь.

Добавлено через 30 секунд
твой код равнозначен
var z:variant;
s:variant;

z:=ReadD(10);
s:=inttostr(z);
__________________
L2Ext - project closed.

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

Цитата:
Сообщение от alexteam Посмотреть сообщение
readd возвращает инт.
в фастскрипте все на вариант типах. ему сугубо пофиг как ты обявишь то куда ты хочеш положить результат readd.
хоть байтом обзови. варианту пофик.
хочешь добиться того чего надо - читай все 4 байта через readb
и преобразуй их в кардинал вручную.
Думал можно как то легче. Значит будем делать функцию ReadCrd...
guplen вне форума   Ответить с цитированием
Старый 28.05.2010, 19:21   #10
Местный
 
Аватар для J-Fobos
 
Регистрация: 09.06.2008
Сообщений: 867
Сказал Спасибо: 175
Имеет 468 спасибок в 259 сообщенях
J-Fobos пока неопределено
По умолчанию

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


z:=2147483647+abs(ReadD(10));

зы: я понимаю что если число может быть в 2-5 раз больше чем 2ккк и тогда это не сработает, но если оно только немного больше ...
__________________

В любом из нас спит гений. И с каждым днем все крепче.

Переходим на протокол нового поколения jabber

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

  CoderX :: Forums > Основные форумы > Курилка



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 21:01.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!