Сейчас на форуме: asfa, bartolomeo, hgdagon (+6 невидимых)

 eXeL@B —› Программирование —› Перевод данных [ Hex -> Dec ] на VB 6
Посл.ответ Сообщение

Ранг: 47.4 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 03 июня 2006 16:55
· Личное сообщение · #1

Блин уже надоело искать эту ф-цию! CDec(Expression) не помогает, так как в хексе и буквы! А как заставить его распознавать их как число??? Хожу окольными путями... Так надоело! Подскажите что-нибудь, знатоки!



Ранг: 48.3 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 03 июня 2006 17:03
· Личное сообщение · #2

SeQuick

Val("&H" & Expression)



Ранг: 47.2 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 03 июня 2006 17:08
· Личное сообщение · #3

Я VB не знаю, но вот как это на паскале:

function StrToInt(s:PChar):integer;
var i,r,expo:integer; bitMin,bitHex:boolean;
begin
r:=0;
i:=0;
while s[i]=' ' do inc(i);
bitMin:=(s[i]='-');
if bitMin then inc(i);
bitHex:=(s[i]='$');
if bitHex then inc(i,1);
if bitHex
then expo:=16
else expo:=10;
if i<lstrlen(s) then begin
while
(byte(s[i])>=byte('0'))and(byte(s[i])<=byte('9'))or
bitHex and(byte(s[i])>=byte('A'))and(byte(s[i])<=byte('F'))or
bitHex and(byte(s[i])>=byte('a'))and(byte(s[i])<=byte('f')) do begin
case s[i] of
'0'..'9':r:=r*expo+(integer(s[i])-integer('0'));
'A','a':r:=r*expo+10;
'B','b':r:=r*expo+11;
'C','c':r:=r*expo+12;
'D','d':r:=r*expo+13;
'E','e':r:=r*expo+14;
'F','f':r:=r*expo+15;
end;
inc(i);
end;
if s[i]=''
then Result:=r
else Result:=0;
end else Result:=0;
end;

Переложить на VB думаю труда не составит.




Ранг: 158.5 (ветеран), 219thx
Активность: 0.120.01
Статус: Участник

Создано: 03 июня 2006 18:24
· Личное сообщение · #4

SeQuick

Проще всего сделать так: decA = CDec(Clng("&H" & Expression))

и на выходе получи Dec значение HEX выражения +)))

-----
One death is a tragedy, one million is a statistic.




Ранг: 79.4 (постоянный)
Активность: 0.090
Статус: Участник

Создано: 03 июня 2006 18:29
· Личное сообщение · #5

ZaZa, Stiver так и написал... ;)




Ранг: 158.5 (ветеран), 219thx
Активность: 0.120.01
Статус: Участник

Создано: 03 июня 2006 18:31
· Личное сообщение · #6

d1v0x
Ух... просто не заметил, бывает... Но немного по другому, согласись...

-----
One death is a tragedy, one million is a statistic.




Ранг: 47.4 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 03 июня 2006 21:55 · Поправил: SeQuick
· Личное сообщение · #7

Спасибо ребята! Очень признателен! Вы дали исчерпывающий ответ! Тема закрыта.


 eXeL@B —› Программирование —› Перевод данных [ Hex -> Dec ] на VB 6
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати