# Алгоритмы декодирования

 Алгоритм декодирования устанавливается параметром *CardDecodeType (алгоритм извлечения истинного номера карты)* в каждой секции обработки типа карты файла **decodecards.ini**.

```
[cards.card_mi]
ExcludedPrefix=fare[
code=2
CardDecodeType = MASK
mask=hhhhhhhh
```

Возможны следующие варианты:

```
 CardDecodeType = LAST8
```

В этом случае в качестве номера карты берутся последние 8 цифровых символов трека.

```
 CardDecodeType = LAST9
```

В этом случае в качестве номера карты берутся последние 9 цифровых символов трека.

```
 CardDecodeType = MASK
```

MASK - накладывается маска. Подобно описана в соответствующем разделе. Наиболее часто используемый вариант.

```
 CardDecodeType = GAMEKEEPERCARD
```

В этом случае в качестве номера карты берутся цифровые символы между вторым и третьим знаками "=" трека.

```
 CardDecodeType = REPLACECARDNO
```

Для этого алгоритма используется дополнительный параметр NewCardNo  
NewCardNo - это числовая константа (integer), которая подставляется как результат декодирования.

```
CardDecodeType = MASK2
```

Это алгоритм похож на MASK, за исключением того,   
что алгоритм MASK перед накладыванием маски на трек УДАЛЯЕТ дополнительно все символы, кроме 0-9 и A-F.  
Все параметры алгоритма MASK2 совпадают с соответствующими параметрами алгоритма MASK

```
CardDecodeType = FastScript
```

Алгоритм декодирования программируется в функции decodecard во внешнем файле. Подобно описана в соответствующем разделе.