Modifikace čárových kódů

Last modified by Martin Mahr on 2024/10/21 22:15

Regulární výraz pro modifikaci čárových kódů.

  • Čárové kódy je možné nyní upravovat v nastavení pomocí regulárního výrazu
    • Nastavení na zařízení: BARCODE_MODIFIER_REGEX_PATTERN
    • 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.
      • Př. (\d+) - vyberou se všechna čísla
    • 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. ´
    • 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.

Regulární výrazy

  • Výchozí hodnota: (.*) - naupravuje čárový kód
  • Odstranění počátečních nul: ^0*(\d+)$
  • Odstranění lomítka (resp. speciálních znaků): (\d+)\/?(\d+) - znak '/' může být nahrazen za jiný
  • Odstranění počátečních nul a lomítka : ^0*(\d+)\/?(\d+)
  • 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}|(.*)
    • pokud má čárový kód délku 12 znaků, tak ze začátku odstraní nuly a odebere kontrolní číslici
    • pokud má čárový kód délku 11 znaků, tak ze začátku odstraní nuly a odebere kontrolní číslici
    • pokud má čárový kód délku 8 znaků, tak ze začátku odstraní nulu a odebere kontrolní číslici
    • pokud nevyhovuje ničemu, vrací původní řetězec
  • Můžou se definovat čárové kódy s doplněním prefixu, suffixu do prostřed řetězce
    • oddělovač regulárního výrazu a způsobu náhrady je paragraf §
    • (91)39[0]*([0-9]*)§$11C$2
      • kulaté závorky specifikují skupinu
      • $ a číslo skupiny reprezentuje reálnou hodnotu v dané skupině
      • je pak možné sekládat výsledný řetězec včetně proházení pořadí dat
      • předchozí příklad vygeneruje: 911C6551

Konkrétní výrazy pro některé instance

Plzeň

  • ([\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).

TSK - Trenčín

  • [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.

TSK - Povážská knižnica

  • [0]*([\d]*) - ruzny počet nul na začátku čárového kódu, bez kontrolní číslice

ŠAVS

  • problémové kódy: "°   žš+áí- je potřeba se zbavit mezer
  • INC_NUMBER_MODIFIER_REGEX_PATTERN nastaveno na ^\s*(\d+)$
  • BARCODE_MODIFIER_REGEX_PATTERN nastaveno na  ^\s*(\d+)$

Starlib

  • [0]{1}([\d]{10})[\d]{1} - Problémové kódy 039410319006 - odtržení nuly na začátku a odtržení kontrolní číslice.

Měk Znojmo nebo Měk Třebíč

  • [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

Testování

  • 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í.
  • Je třeba otestovat na celé množině možných čárových kódů.

Kde se používá?

  • Výpůjčky
    • Čárový kód
    • Složený čárový kód
    • Čtenářské číslo
  • Servisní katalog
    • Záložka "Č. kód/Přír. č"
    • Kombinované vyhledávání → vyhledávání podle čárového kódu