Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2007, 17:25   #1
NikOnLine
 
Регистрация: 21.12.2007
Сообщений: 3
По умолчанию конвертирование Hex -> Text и Float -> Int

Помогите plz разобрнатся. Текстовое число конвертирую в HEX через IntToHex. Потом нада результат вывести в тхт поле, например Edit1.Text.
Тоисть
Код:
Form1.Edit1.Text:=IntToHex(data;8);
некатит.
И подскажите plz можно ли перебить Extended(Float) в Integer(Int).
NikOnLine вне форума Ответить с цитированием
Старый 21.12.2007, 17:42   #2
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,307
По умолчанию

Цитата:
Сообщение от NikOnLine Посмотреть сообщение
Помогите plz разобрнатся. Текстовое число конвертирую в HEX через IntToHex. Потом нада результат вывести в тхт поле, например Edit1.Text.
Тоисть
Код:
Form1.Edit1.Text:=IntToHex(data;8);
некатит.
И подскажите plz можно ли перебить Extended(Float) в Integer(Int).
Вот пробуй:

Код:
const
HEX:ARRAY['A'..'F'] OF INTEGER=(10,11,12,13,14,15);

...

Function HexToInt(HexValue:String):Integer;
var
Int,i:integer;
begin
Result:=-1;
Int:=0;
FOR i:=1 TO Length(HexValue) DO
IF HexValue[i] < 'A' THEN
begin
Int:=Int * 16 + ORD(HexValue[i]) - 48;
Result:=int;
end
ELSE
begin
Int:=Int * 16 + HEX[HexValue[i]];
Result:=int;
end;
end;

...

procedure TForm1.Button1Click(Sender: TObject);
var Data:integer;
begin
data:=123;
edit1.Text:=IntToHex(data,sizeof(data));
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
edit2.Text:= inttostr( hextoint( edit1.Text ));
end;
Всё гениальное - просто!
Air вне форума Ответить с цитированием
Старый 21.12.2007, 18:00   #3
NikOnLine
 
Регистрация: 21.12.2007
Сообщений: 3
По умолчанию

Спасибо!!!!
Заработало))
А по поводу конвертирования Extended(Float) в Integer(Int) кто нибуть подскажет. предполагаю что можно перебить сначала FloatToStr а потом StrToInt при етом округляя число к целому. По проще есть варианты, чем придумывать велосипед? подскажите.
NikOnLine вне форума Ответить с цитированием
Старый 21.12.2007, 18:12   #4
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,307
По умолчанию

strtoint, inttostr, Float... - это всё системные функции, НЕ рекомендую что-то в них менять, инече придётся весь SysUtils и System перебивать (как ты говоришь)
Всё гениальное - просто!
Air вне форума Ответить с цитированием
Старый 21.12.2007, 18:27   #5
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

функции
round
roundto
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 21.12.2007, 18:39   #6
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,307
По умолчанию

Цитата:
Сообщение от Квэнди Посмотреть сообщение
функции
round
roundto
roundto - Это куда , даже у меня татого нет...
Всё гениальное - просто!
Air вне форума Ответить с цитированием
Старый 21.12.2007, 18:51   #7
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

F1 тоже выломали из клавиатуры ?
RoundTo Routine

Rounds a floating-point value to a specified digit or power of ten using "Banker's rounding".

Unit
Math

Syntax


[Delphi] function RoundTo(const AValue: Double; const ADigit: TRoundToRange): Double;


Description
Call RoundTo to round AValue to a specified power of ten.

AValue is the value to round.

ADigit indicates the power of ten to which you want AValue rounded. It can be any value from –37 to 37 (inclusive).

RoundTo uses "Banker's Rounding" to determine how to round values that are exactly midway between the two values that have the desired number of significant digits. This method rounds to an even number in the case that AValue is not nearer to either value.

The following examples illustrate the use of RoundTo:
Expression Value
RoundTo(1234567, 3)
1234000

RoundTo(1.234, -2)
1.23

RoundTo(1.235, -2)
1.24

RoundTo(1.245, -2)
1.24

Note:
The behavior of RoundTo can be affected by the Set8087CW procedure or SetRoundMode function.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 21.12.2007, 18:58   #8
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,307
По умолчанию

Модуль "Math" не является модулем по умолчанию, значит необходимо указать его.
____________
P.S. Даже хороший программист не может знать всего.
Всё гениальное - просто!
Air вне форума Ответить с цитированием
Старый 21.12.2007, 20:19   #9
Eofol
Пользователь
 
Аватар для Eofol
 
Регистрация: 20.12.2007
Сообщений: 15
По умолчанию

Еще один способ Int -> Hex:

Код:
Form1.Edit1.Text := Format('%0:x', [<Целое число>])
Eofol вне форума Ответить с цитированием
Старый 22.12.2007, 02:14   #10
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

что есть "модуль по умолчанию" ? таких не знаю
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конвертирование графических форматов файлов ALEX_RAS Помощь студентам 21 02.11.2008 17:46
Вывод float числа в поток cout IgorKr Общие вопросы C/C++ 7 30.05.2008 01:21
Text -> Hex AnK0r Общие вопросы Delphi 3 07.12.2007 20:36
Конвертирование из поля Edit в нормальный знак. alikon1 Общие вопросы Delphi 11 27.11.2007 22:53