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

Naposledy změněno Jan Šimeček 2025/01/09 16:12

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
Jan Šimeček 3.1 58 ==== UNIZA ====
59
60 * (((
61 ^0(\d{17}) - pokud má kód délku 18, tak odebere 0 na začátku
62 )))
63
Jan Šimeček 1.1 64 == Testování ==
65
66 * 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í.
67 * Je třeba otestovat na celé množině možných čárových kódů.
68
69 == Kde se používá? ==
70
71 * Výpůjčky
72 ** Čárový kód
73 ** Složený čárový kód
74 ** Čtenářské číslo
75 * Servisní katalog
76 ** Záložka "Č. kód/Přír. č"
77 ** Kombinované vyhledávání → vyhledávání podle čárového kódu