Wiki source code of Modifikace čárových kódů

Version 2.1 by Martin Mahr on 2024/10/21 22:15

Hide last authors
Jan Šimeček 1.1 1 = Regulární výraz pro modifikaci čárových kódů. =
2
3
4 * Čárové kódy je možné nyní upravovat v nastavení pomocí regulárního výrazu
5 ** Nastavení na zařízení: BARCODE_MODIFIER_REGEX_PATTERN
6 ** Regulární výraz musí obsahovat alespoň jednu dvojici kulatých závorek (tzv. grupa), ve které se nachází hledaná část čárového kódu.
7 *** Př. **(\d+) - **vyberou se všechna čísla
8 ** **Pozor!** Regulární výraz musí být napsán tak, aby vybíral správné sekvence ze zadaného vstupu, ne obraceně (tedy že by ignoroval nějaké sekvence) → Proto musí obsahovat alespoň jednu grupu. ´
9 ** **Pozor** na mezery před a za, které je možné vložit do pole a následně uložit. Děje se tak například při kopírování regulárního výrazu z tohoto dokumentu.
10
11 == Regulární výrazy ==
12
13 * Výchozí hodnota: **(.*)** - naupravuje čárový kód
14 * Odstranění počátečních nul: **^0*(\d+)$**
15 * Odstranění lomítka (resp. speciálních znaků): **(\d+)\/?(\d+)** - znak '/' může být nahrazen za jiný
16 * Odstranění počátečních nul a lomítka : **^0*(\d+)\/?(\d+)**
17 * Odstranění nul ze začátku a odstranění kontrolních číslic: **[0]{2}([1-9]{1}[0-9]{8})[~\~\d]{1}|[0]{3}([1-9]{1}[0-9]{7})[~\~\d]{1}|[0]{1}([1-9]{1}[0-9]{5})[~\~\d]{1}|(.*)**
18 ** pokud má čárový kód délku 12 znaků, tak ze začátku odstraní nuly a odebere kontrolní číslici
19 ** pokud má čárový kód délku 11 znaků, tak ze začátku odstraní nuly a odebere kontrolní číslici
20 ** pokud má čárový kód délku 8 znaků, tak ze začátku odstraní nulu a odebere kontrolní číslici
21 ** pokud nevyhovuje ničemu, vrací původní řetězec
22 * Můžou se definovat čárové kódy s doplněním prefixu, suffixu do prostřed řetězce
23 ** oddělovač regulárního výrazu a způsobu náhrady je paragraf **§**
24 ** **(91)39[0]*([0-9]*)§$11C$2**
25 *** kulaté závorky specifikují skupinu
26 *** **$** a číslo skupiny reprezentuje reálnou hodnotu v dané skupině
27 *** je pak možné sekládat výsledný řetězec včetně proházení pořadí dat
28 *** předchozí příklad vygeneruje: **911C6551**
29
30 === **Konkrétní výrazy pro některé instance** ===
31
32 ==== **Plzeň** ====
33
34 * **([\d\w]+)[\/\-]?([\d\w]+) - **maže znaky lomítka a pomlčky. Nechává čísla a písmena (písmena používají v Plzeňských kartách).
35
36 ==== **TSK - Trenčín** ====
37
38 * **[0]{2}([\d**]{9})[**\d**]{1} - Pokud je čárový kód 12 znaků a začíná dvěma nulami, tak je ořízne a odstraní kontrolní číslici. Jejich čtečky u těchto EAN13 kódů automaticky odřezávají první nulu - reálně jsou 3 nuly, čtečka vrátí pouze 2.
39
40 ==== TSK - Povážská knižnica ====
41
42 * **[0]*([\d]*)** - ruzny počet nul na začátku čárového kódu, bez kontrolní číslice
43
44 ==== ŠAVS ====
45
46 * problémové kódy: **"**°  žš+áí**" **- je potřeba se zbavit mezer
47 * INC_NUMBER_MODIFIER_REGEX_PATTERN nastaveno na **^\s*(\d+)$**
48 * BARCODE_MODIFIER_REGEX_PATTERN nastaveno na  **^\s*(\d+)$**
49
50 ==== **Starlib** ====
51
52 * **[0]{1}([\d]{10})[\d]{1} **- Problémové kódy 039410319006 - odtržení nuly na začátku a odtržení kontrolní číslice.
53
54 ==== Měk Znojmo nebo Měk Třebíč ====
55
56 * **[0]{5}([\d]{6})[\d]{1}|(.*)** - knihy mají u nich 000000187352 a skenery to čtou 000001873528, tedy je potřeba oříznout 5 nul a kontrolní číslici
57
58 == Testování ==
59
60 * Pro testování regulárního výrazu existuje v záložce 'Systém' testovací blok, ve kterém jsou definované používané čárové kódy (EAN13, EAN8 ..) + je možné zadat vlastní čárové kódy (oddělené středníkem) pro testování.
61 * Je třeba otestovat na celé množině možných čárových kódů.
62
63 == Kde se používá? ==
64
65 * Výpůjčky
66 ** Čárový kód
67 ** Složený čárový kód
68 ** Čtenářské číslo
69 * Servisní katalog
70 ** Záložka "Č. kód/Přír. č"
71 ** Kombinované vyhledávání → vyhledávání podle čárového kódu