external:pro_bonus:98_dop:mcr_zero

Настройка MCR для карт с незначащими нулями

Пример ситуации. В админке ProBonus уже заведена тысяча карт с номерами 1 … 1000. При этом физически карты изготовили, зашив на магнитной полосе нумерацию 778=123450001=000001 … 778=123450001=001000.

Для ProBonus номер карты — это не число, а строка, т. е. карты с номером 1 и с номером 000001 по умолчанию — это разные карты.

Чтобы в данном примере из r_keeper в ProBonus уходил номер карты без ведущих нулей, можно использовать MCR-алгоритм вида:

function MCR1001976(DeviceSignal: Integer; DeviceIdent: Integer; var Parameter: String): Boolean;                                        
begin

  if pos('778=123450001=', Parameter) = 1 then begin
    delete(Parameter, 1, 14);
    while Parameter[1] = '0' do Delete(Parameter,1,1);
  Result := True;
  end;
end;

Алгоритм — это пример для случая, когда на карте перед номером карты записано 778=123450001=. Если перед номером записано что-то другое, алгоритм нужно изменить под свои цели.

  • external/pro_bonus/98_dop/mcr_zero.txt
  • Последнее изменение: 2026/10/22 07:00
  • — Алексей Коробов