Страница 1 из 2

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

СообщениеДобавлено: 04.10.2008 22:59:58
Cube
ByteToHex Подскажите как использовать эту функцию или это процедура?

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

С уважением Антон

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

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

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

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


а какой uses надо активировать для IntToStr?

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

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


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

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

Еще раз извиняюсь :oops:

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

СообщениеДобавлено: 06.10.2008 20:33:03
Cube
Да не чего страшнего вот не могу написать это: :cry:

Вот можете помочь у меня такая задача есть файл fail.bin мне из него надо брать символ и значение символа записывать в массив в двоичном коде или в строку что бы в дальнейшем я мог его кодировать по определенному алгоритму

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

СообщениеДобавлено: 06.10.2008 20:41:42
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;

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

СообщениеДобавлено: 09.10.2008 18:57:38
Cube
Я не много не правильно проблему свою описал.. Проблема в том что бы получить и поместить двоечный код символа в массив для дальнейшей работы.

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

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

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

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


Проблема в том что я не знаю как поместить двоичный код символа в массив, то есть конечной цель массив с двоичным кодом определенного символа из файла

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

СообщениеДобавлено: 10.10.2008 12:19:54
Михаил Крамер
Эм.... Покажите пример массива, который должен получиться. Массив данных какого типа?

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

СообщениеДобавлено: 10.10.2008 12:32:30
ev
может имеется ввиду использование функций chr / ord ?

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

СообщениеДобавлено: 10.10.2008 13:21:06
Михаил Крамер
Ev, а тады при чём здесь какой-то массив?

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

СообщениеДобавлено: 10.10.2008 13:44:01
ev
попробую поработать телепатом :)

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

хотя это все догадки ;)

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

СообщениеДобавлено: 10.10.2008 14:43:45
Padre_Mortius
тогда уж file of byte удобнее будет

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

СообщениеДобавлено: 10.10.2008 19:24:01
Михаил Крамер
Могет, чтой-то такое (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.