ByteToHex как использовать?

Форум для изучающих FPC и их учителей.

Модератор: Модераторы

Cube
незнакомец
Сообщения: 7
Зарегистрирован: 04.10.2008 18:53:14

ByteToHex как использовать?

Сообщение Cube »

ByteToHex Подскажите как использовать эту функцию или это процедура?

Заранее спасибо

С уважением Антон
Logo
постоялец
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

Сообщение Logo »

Вы имели ввиду IntToStr?
Это функция: IntToStr(255{целое число}, 2{количество возвращаемых символов})
Возвращает "FF"
IntToStr(255, 4) Возвратит "00FF"
Cube
незнакомец
Сообщения: 7
Зарегистрирован: 04.10.2008 18:53:14

Сообщение Cube »

Logo писал(а):Вы имели ввиду IntToStr?
Это функция: IntToStr(255{целое число}, 2{количество возвращаемых символов})
Возвращает "FF"
IntToStr(255, 4) Возвратит "00FF"


а какой uses надо активировать для IntToStr?
Logo
постоялец
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

Сообщение Logo »

Logo писал(а):Вы имели ввиду IntToStr?
Это функция: IntToStr(255{целое число}, 2{количество возвращаемых символов})
Возвращает "FF"
IntToStr(255, 4) Возвратит "00FF"


Ну и написал :oops: :oops: :oops:
Извините :oops: :oops: :oops:

не IntToStr а IntToHex
IntToHex(255{целое число}, 2{количество возвращаемых символов})
Модуль sysutils

Еще раз извиняюсь :oops:
Cube
незнакомец
Сообщения: 7
Зарегистрирован: 04.10.2008 18:53:14

Сообщение Cube »

Да не чего страшнего вот не могу написать это: :cry:

Вот можете помочь у меня такая задача есть файл fail.bin мне из него надо брать символ и значение символа записывать в массив в двоичном коде или в строку что бы в дальнейшем я мог его кодировать по определенному алгоритму
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

не знаю может есть что стандартное использую это :

Код: Выделить всё

function BinToHex(const BinStr: string): string;
const BS: array[0..15] of string[4] =
  ('0000', '0001', '0010', '0011', '0100', '0101', '0110', '0111', '1000', '1001',
    '1010', '1011', '1100', '1101', '1110', '1111');
  HS: array[0..15] of Char = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
    'A', 'B', 'C', 'D', 'E', 'F');
var s, h: string;
  i: Integer;
  Err: Boolean;
begin
  Result := '';
  s := BinStr;
  if (s[Length(s)] = 'b') or (s[Length(s)] = 'B') then
    Delete(s, Length(s), 1);

      // дополнение строки нулями, пока ее длина не кратна 4
  while (Length(s) mod 4) <> 0 do s := '0' + s;

  while Length(s) > 0 do
  begin
    Err := True;
    h := Copy(s, 1, 4);
    Delete(s, 1, 4);
    for i := 0 to 15 do
      if h = BS[i] then
      begin
        Result := Result + HS[i];
        Err := False;
        break;
      end;
    if Err then
    begin
      Result := '00';
      Exit;
    end;
  end;
end;
Cube
незнакомец
Сообщения: 7
Зарегистрирован: 04.10.2008 18:53:14

Сообщение Cube »

Я не много не правильно проблему свою описал.. Проблема в том что бы получить и поместить двоечный код символа в массив для дальнейшей работы.
Михаил Крамер
новенький
Сообщения: 73
Зарегистрирован: 08.02.2008 13:26:40

Сообщение Михаил Крамер »

Перевести числовой код символа в двоичную систему, что ли? Это что, должно быть как массив символов, или как? Чтой-то не понятно, что вам надо? Символы всегда вроде в двоичных кодах передаются.
Cube
незнакомец
Сообщения: 7
Зарегистрирован: 04.10.2008 18:53:14

Сообщение Cube »

Михаил Крамер писал(а):Перевести числовой код символа в двоичную систему, что ли? Это что, должно быть как массив символов, или как? Чтой-то не понятно, что вам надо? Символы всегда вроде в двоичных кодах передаются.


Проблема в том что я не знаю как поместить двоичный код символа в массив, то есть конечной цель массив с двоичным кодом определенного символа из файла
Михаил Крамер
новенький
Сообщения: 73
Зарегистрирован: 08.02.2008 13:26:40

Сообщение Михаил Крамер »

Эм.... Покажите пример массива, который должен получиться. Массив данных какого типа?
ev
долгожитель
Сообщения: 1797
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Сообщение ev »

может имеется ввиду использование функций chr / ord ?
Михаил Крамер
новенький
Сообщения: 73
Зарегистрирован: 08.02.2008 13:26:40

Сообщение Михаил Крамер »

Ev, а тады при чём здесь какой-то массив?
ev
долгожитель
Сообщения: 1797
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Сообщение ev »

попробую поработать телепатом :)

с файлом работается через массив (так удобнее и быстрее по идее)
но массив возможно объявлен что-то типа array of char
а работать то надо с кодами... вот и можно юзать chr / ord для конвертирования туда и обратно

хотя это все догадки ;)
Padre_Mortius
энтузиаст
Сообщения: 1261
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Padre_Mortius »

тогда уж file of byte удобнее будет
Михаил Крамер
новенький
Сообщения: 73
Зарегистрирован: 08.02.2008 13:26:40

Сообщение Михаил Крамер »

Могет, чтой-то такое (String - это массив символов, если очень грубо говорить)

Код: Выделить всё

function ByteToBin(c: Byte): String;
const BS: array[0..15] of string[4] =
  ('0000', '0001', '0010', '0011', '0100', '0101', '0110', '0111', '1000', '1001',
    '1010', '1011', '1100', '1101', '1110', '1111');
begin
   ByteToBin:= BS[(c and $F0) shr 4] + BS[c and $0F];
end;
begin
  Writeln(ByteToBin($f1));
  Writeln(ByteToBin(Ord('A'));
end.
Ответить