Zdrojový kód wiki Modifikace čárových kódů

Version 1.1 by Jan Šimeček on 2024/08/02 09:01

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
12 == Regulární výrazy ==
13
14 * Výchozí hodnota: **(.*)** - naupravuje čárový kód
15 * Odstranění počátečních nul: **^0*(\d+)$**
16 * Odstranění lomítka (resp. speciálních znaků): **(\d+)\/?(\d+)** - znak '/' může být nahrazen za jiný
17 * Odstranění počátečních nul a lomítka : **^0*(\d+)\/?(\d+)**
18 * 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}|(.*)**
19 ** pokud má čárový kód délku 12 znaků, tak ze začátku odstraní nuly a odebere kontrolní číslici
20 ** pokud má čárový kód délku 11 znaků, tak ze začátku odstraní nuly a odebere kontrolní číslici
21 ** pokud má čárový kód délku 8 znaků, tak ze začátku odstraní nulu a odebere kontrolní číslici
22 ** pokud nevyhovuje ničemu, vrací původní řetězec
23 * Můžou se definovat čárové kódy s doplněním prefixu, suffixu do prostřed řetězce
24 ** oddělovač regulárního výrazu a způsobu náhrady je paragraf **§**
25 ** **(91)39[0]*([0-9]*)§$11C$2**
26 *** kulaté závorky specifikují skupinu
27 *** **$** a číslo skupiny reprezentuje reálnou hodnotu v dané skupině
28 *** je pak možné sekládat výsledný řetězec včetně proházení pořadí dat
29 *** předchozí příklad vygeneruje: **911C6551**
30
31 === **Konkrétní výrazy pro některé instance** ===
32
33 ==== **Plzeň** ====
34
35 * **([\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).
36
37 ==== **TSK - Trenčín** ====
38
39 * **[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.
40
41 ==== TSK - Povážská knižnica ====
42
43 * **[0]*([\d]*)** - ruzny počet nul na začátku čárového kódu, bez kontrolní číslice
44
45 ==== ŠAVS ====
46
47 * problémové kódy: **"**°  žš+áí**" **- je potřeba se zbavit mezer
48 * INC_NUMBER_MODIFIER_REGEX_PATTERN nastaveno na **^\s*(\d+)$**
49 * BARCODE_MODIFIER_REGEX_PATTERN nastaveno na  **^\s*(\d+)$**
50
51 ==== **Starlib** ====
52
53 * **[0]{1}([\d]{10})[\d]{1} **- Problémové kódy 039410319006 - odtržení nuly na začátku a odtržení kontrolní číslice.
54
55 ==== Měk Znojmo nebo Měk Třebíč ====
56
57 * **[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
58
59 == Testování ==
60
61 * 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í.
62 * Je třeba otestovat na celé množině možných čárových kódů.
63
64 == Kde se používá? ==
65
66 * Výpůjčky
67 ** Čárový kód
68 ** Složený čárový kód
69 ** Čtenářské číslo
70 * Servisní katalog
71 ** Záložka "Č. kód/Přír. č"
72 ** Kombinované vyhledávání → vyhledávání podle čárového kódu