Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Hex ---> Integer не работает или работает не верно, (статья из DRKB) 
:(
    Опции темы
XVII
Дата 13.9.2007, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 9.9.2007

Репутация: нет
Всего: нет



Код

var 
  i: integer 
  s: string; 
begin 
  s := '$' + ThatHexString; 
  i := StrToInt(a); 
end; 


------

Код

const HEX: array['A'..'F'] of INTEGER = (10, 11, 12, 13, 14, 15); 
var str: string; 
    Int, i: integer; 
begin 
  READLN(str); 
  Int := 0; 
  for i := 1 to Length(str) do 
    if str[i] < 'A' then 
      Int := Int * 16 + ORD(str[i]) - 48 
    else 
      Int := Int * 16 + HEX[str[i]]; 
  WRITELN(Int); 
  READLN; 
end. 


В первом говорит что не знает что такое "ThatHexString".

Второй код работает идиально, но только с цифрами '808080' (Серый) а вот с буквами типа 'FFD700' (Gold) не верно показывает цвет, т. е. показывает совсем другой. Подскажите пожалуйста что может быть? smile 

PM MAIL   Вверх
Alexeis
Дата 13.9.2007, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 34
Всего: 459



ThatHexString - подразумевается что это строка с хексом smile .

Добавлено через 4 минуты и 33 секунды
Второй код работает нормально. Переделал на VCl c 2мя едитами и кнопкой. Значение проверил калькулятором.
Код

procedure TForm1.Button1Click(Sender: TObject);
const
  HEX: array['A'..'F'] of INTEGER = (10, 11, 12, 13, 14, 15);
var
  str: string;
  Int, i: integer;

begin
  str := Edit1.Text;
  Int := 0;
  for i := 1 to Length(str) do
    if str[i] < 'A' then
      Int := Int * 16 + ORD(str[i]) - 48
    else
      Int := Int * 16 + HEX[str[i]];

  Edit2.Text := IntTostr(Int);
end;



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Romikgy
Дата 13.9.2007, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 4
Всего: 146



Код

const HEX: string = '0123456789ABCDEF';
var str: string;
    Int, i: integer;
    function find(x:Char): Integer;
     var
       i: Integer;
    begin
      Result:=0;
      for i:=1 to Length(HEX) do
        if x=HEX[i] then
        begin
          Result:=i-1;
          Break;
        end;
    end;
begin
  READLN(str);
  Int := 0;
  for i := 1 to Length(str) do

      Int := Int * 16 + find(str[i]);

  WRITELN(Int);
  READLN;
end.


не?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Esperito
Дата 13.9.2007, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 2.9.2007

Репутация: нет
Всего: 3



Код

procedure HexToInt(S: string): Integer;
begin
  Result := StrToInt('$' + S);
end;

А то, что цвет неправильно показывает, это ты этот код небось из информации по html берёшь или откуда-то ещё. Там просто первый и последний байт поменяны местами, т.е. идёт не RGB, а BGR.
PM MAIL   Вверх
XVII
Дата 16.9.2007, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 9.9.2007

Репутация: нет
Всего: нет



Всем спасибо всё работает, особенное спасибо Esperito за BGR.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0676 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.