Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.12;
Скачать: CL | DM;

Вниз

Перевод значения String в число.   Найти похожие ветки 

 
Vitalik__   (2006-02-26 23:17) [0]

Вот незадача. никак не перевести String "2AFEA45F" в число, с которым можно делать математические операции. Есть ли такая функция? типа StrToInt?


 
unknown ©   (2006-02-26 23:22) [1]


> Vitalik__   (26.02.06 23:17)
>
> Вот незадача. никак не перевести String "2AFEA45F" в число,
>  с которым можно делать математические операции. Есть ли
> такая функция? типа StrToInt?

Есть.
Надо к строке добавить "$" т.е. :
s:string;
i:integer;
 s:="2AFEA45F";
 i:=StrToInt("$"+s);


 
Галинка ©   (2006-02-26 23:25) [2]

VCL Reference

StrToBcd function

See also

Converts a string to the corresponding binary-coded decimal (BCD) value.

Unit

FMTBcd

Category

BCD support

function StrToBcd( const aValue: string): TBcd;

Description

Use StrToBcd to convert a string into a binary-coded decimal value. The decimals and precision are inferred from the digits present in the string.

StrToBcd converts the string specified by aValue and returns the resulting BCD value. If aValue does not represent a value that can be expressed as a TBcd, StrToBcd raises an exception.

Tip: To convert a string to a Bcd value without raising an exception for invalid strings, use the TryStrToBcd function instead.

F1 иногда помогает )))


 
unknown ©   (2006-02-26 23:36) [3]

>Галинка ©   (26.02.06 23:25) [2]
Неужели? Можно примерчик StrToBcd ?


 
Vitalik__   (2006-02-26 23:48) [4]

спасибо


 
Галинка ©   (2006-02-26 23:56) [5]

Пардон, я перепутала. Это восьмиричное число.


 
Галинка ©   (2006-02-27 00:11) [6]

unknown ©

а можно ли как-то оставить число в шестнадцатиричном представлении?


 
Marser ©   (2006-02-27 00:17) [7]

> [5] Галинка ©   (26.02.06 23:56)
> Пардон, я перепутала. Это восьмиричное число.

BCD это не восьмеричное число. Это способ отображения числа, когда каждой тетраде(или байту - для неупакованных BCD) соответствует десятичная цифра.

> а можно ли как-то оставить число в шестнадцатиричном представлении?

Число оно и есть число. А оставить можно и в той же строке. Перевести? Я Вас не удивлю - всё тот же IntToHex.


 
unknown ©   (2006-02-27 00:17) [8]


> Галинка ©   (27.02.06 00:11) [6]
> unknown ©
> а можно ли как-то оставить число в шестнадцатиричном представлении?
>

В каком смысле оставить? Оперировать напрямую со строкой "2AFEA45F" ?
Нет проблем - стоит только реализовать арифметику с шестнадцатиричными
числами, что не так и сложно. Только вот зачем?


 
Галинка ©   (2006-02-27 00:29) [9]

Marser ©   (27.02.06 00:17) [7]

IntToHex есть. а как его потом в строку обратно?


 
Marser ©   (2006-02-27 00:30) [10]

> [9] Галинка ©   (27.02.06 00:29)
> Marser ©   (27.02.06 00:17) [7]
>
> IntToHex есть. а как его потом в строку обратно?

Так он в строку и преобразует :-) Нет такого типа как Hex.
В чём проблема?


 
Anatoly Podgoretsky ©   (2006-02-27 00:31) [11]

Галинка ©   (27.02.06 00:29) [9]
Мы уже по кругу пошли - StrToInt("$"+s);


 
Галинка ©   (2006-02-27 00:37) [12]

Я ввожу например А, что в шестнадцатиричной системе равно 10 в десятичной. Вот он мне 10 и выводит. А как его оставить числом но в шетнадцатиричной? Можно вообще?

Вот, например, в Debuger если ставишь в AddWatch указатель, то он показывает на адрес в шестнадцатиричной форме. На сколько я понимаю в системе все переводится в строки. как дельфи перводит шестнадцариричное число в строку?


 
Marser ©   (2006-02-27 00:44) [13]

> А как его оставить числом но в шетнадцатиричной?

Здесь меня так и подмывает отправить Вас прямиком на уроки Юрия Зотова сюда http://delphikingdom.com/lyceum/seminar.asp?ID=1
Там он чётко объясняет, что существует значение числа, а существуют его представления в разных системах.
Поэтому в вашем случае можно использовать для соответствующего отображения всё те же StrToInt, IntToHex, ещё StrToIntDef, хотя я бы порекомендовал такую щтуку как Format - IMHO, самое удобное, если нужно постоянно віводить числа в Hex.


 
Галинка ©   (2006-02-27 00:58) [14]


> Marser ©   (27.02.06 00:44) [13]
> > А как его оставить числом но в шетнадцатиричной?Здесь
> меня так и подмывает отправить Вас прямиком на уроки Юрия
> Зотова


Спасибо за направление. (без приколов)



Страницы: 1 вся ветка

Текущий архив: 2006.03.12;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.066 c
3-1137275428
muster
2006-01-15 00:50
2006.03.12
Фильтрация с неточным совпадением


8-1128190197
Newman
2005-10-01 22:09
2006.03.12
Добраться до оверлея


15-1140379731
TUser
2006-02-19 23:08
2006.03.12
Ночной дозор использует Рамблер ...


15-1139936989
PARUS
2006-02-14 20:09
2006.03.12
Загрузка...


2-1140953399
Делфёст
2006-02-26 14:29
2006.03.12
Как убрать ввод пароля при коннекте