EAN-13 corrigeren

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ervaren Magento developer gezocht!

Functie Je komt te werken in een zelfsturend team waarin vertrouwen voorop staat en inbreng en ideeën worden gewaardeerd. Ook staat innovatie centraal. Ze bieden jou de mogelijkheid om jezelf door te ontwikkelen. Denk hierbij aan cursussen en een persoonlijk ontwikkelplan. Je komt terecht in het team van momenteel 4 (ervaren) collega’s en zal meewerken aan de doorontwikkeling en nieuwbouw van de Magento platformen van meerdere opdrachtgevers volgens Agile/Scrum. Denk hierbij aan nieuwe functionaliteiten, UX en koppelingen met verschillende back-end systemen. Als ervaren developer zul je hiernaast ook andere developers assisteren en waar nodig de leiding nemen in het project.

Bekijk vacature »

Front end developer

Functie Jij als ervaren Front end developer bent een expert het gebied van Javascript en React. Je wordt onderdeel van een multidisciplinair team bestaande uit een PO, twee Front end developers, een DevOps/Back end developer, een UX/UI designer en een projectmanager. Verder is er iemand verantwoordelijk voor de HR en is de algemeen directeur nauw betrokken bij alle projecten. Dagelijks hou jij je bezig met de verschillende projecten die zijn opgenomen in de sprint. Daarnaast denk je mee over mogelijke oplossingen om de behoefte van de klant op de beste manier in te vullen. Verder spar jij intern met collega’s

Bekijk vacature »

Front-end developer

Functie Jij komt te werken in een team van 5 developers. het product is continue in beweging. Nieuwe en bestaande klanten vragen om vaak nieuwe features. Hierin ben jij zeer belangrijk om te zorgen dat de functionaliteiten goed opgezet worden op technisch vlak. Designs krijg je aangeleverd van een externe partij zodat jij je primair kan focussen op de techniek! Je hebt daarbij alle vrijheid om je eigen creativiteit toe te passen en mee te denken over de gebruikte technieken. Het gezamenlijke doel is een product dat functioneel zeer gebruiksvriendelijk is en het bedrijfsproces van de gebruikers versneld en kwalitatief

Bekijk vacature »

Medior C# Developer

Samen met het development team zorg je ervoor dat alle systemen achter de schermen vlekkeloos werken. Wat doe je als Medior C# Developer bij Coolblue? Als C# developer doe je regelmatig mee aan brainstormsessies over user experience, data en task flow met de UX Designer, Product Owner en Data Scientist in je team. Daarnaast schrijf je op zichzelf staande, consistente en testbare code die goed onderhoudbaar en toekomstbestendig is. Ook C# Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te doen Werken met verschillende soorten data-opslag, zoals Oracle of AWS. Problemen oplossen

Bekijk vacature »

.NET developer

Functie Als ervaren .NET ontwikkelaar start jij in één van onze vier scrumteams. Met 30 ontwikkelaars werk jij aan de doorontwikkeling van ons core product. Ook werkt jouw team aan maatwerkoplossingen op aanvraag van de klant en op projectbasis. Wij vinden het erg belangrijk dat onze ontwikkelaars met plezier naar werk gaan. Een deel hiervan ligt uiteraard bij jezelf, als jij ontwikkelen niet leuk vindt, ben jij bij ons echt aan het verkeerde adres. Jouw team bestaat namelijk uit een groep gepassioneerde vakidioten die dit werk doen omdat dit eerst een hobby was! Daarnaast wordt er intern rekening gehouden met

Bekijk vacature »

C# Developer

Dit ga je doen De requirements in kaart brengen van de klant; Implementeren van functionele en technische specificaties bij opdrachtgevers; Oplossen van bugs; Meewerken aan maatwerksoftware voor nieuwe opdrachtgevers; Het testen en uitleveren van nieuwe functionaliteiten naar de acceptatie en productieomgeving De database ontwikkelen en onderhouden; Hier ga je werken Onze klant is gevestigd in het westen van Nederland en is gespecialiseerd in het ontwikkelen van software voor de levensmiddelen industrie. De software die het team maakt optimaliseert voornamelijk de administratieve processen, maakt deze meetbaar en zorgt ervoor dat de data zo goed mogelijk gebruikt kan worden. Binnen een van

Bekijk vacature »

Back end developer

Functie Jij als full stack ontwikkelaar komt te werken in een team bestaande uit 4 back end programmeurs, 2 vormgevers/ Front end developers en een online marketeer. Qua persoonlijkheden is het team erg gevarieerd van sportfanaten tot gameliefhebbers en Golfers. Een ding heeft iedereen hier gemeen; Passie voor goede code. In jouw rol zul je voor 90% van je tijd je bezig houden met het ontwikkelen van grote maatwerk applicaties. Daarnaast hebben wij op aanvraag ook wel eens een website of onderhoudsklusje, die opgepakt moet worden en hier ben jij ook niet vies van. De technische uitdaging momenteel is dat

Bekijk vacature »

.NET developer

Functie Als .NET developer start jij in een ontwikkelteam met 15 developers en twee testers. Samen zijn jullie verantwoordelijk voor financiële applicaties met meer dan 50.000 gebruikers. Een deel van het team is verantwoordelijk voor de webapplicaties van deze organisatie. Ook zijn er twee app ontwikkelaars werkzaam in het team die zich focussen op de mobiele applicatie. Als .NET ontwikkelaar ga jij aan de slag met de webapplicaties van deze organisatie. Hierbij maak jij o.a. gebruik van C# .NET, ASP.NET, T-SQL, Angular en TypeScript. De nadruk van jouw functie ligt wel op de backend van de applicatie. Wat jouw functie

Bekijk vacature »

PHP Developer

Functie omschrijving Voor een bedrijf in Den Bosch zoek ik een PHP Developer, die al wat werkervaring heeft. Jij gaat aan de slag met de verdere professionalisering van de interne applicaties en software. In de functie ga je verder: Verdere ontwikkeling eigen CRM systeem, vooral middels PHP; Bouwen van verschillende API's & koppelingen; Meedenken om de software/applicaties te verbeteren/optimaliseren; Aan de slag met de interne tooling. Bedrijfsprofiel Dit bedrijf is actief binnen de telecombranche. Het hoofdkantoor zit in regio van Den Bosch en er werken ruim 70 medewerkers, verdeeld over verschillende afdelingen. De afdeling Development bestaat uit vijf collega's, onder

Bekijk vacature »

Machine Software Developer

Bij een bedrijf in de machinebouw, regio Roosendaal, zijn we op zoek naar een: Machine Software Developer Waar ga je werken? Onze opdrachtgever is gespecialiseerd in de grondverzetmachines. Al meer dan 50 jaar leveren ze zowel nationaal als internationaal diverse machines. Het is een familiebedrijf met een informele werksfeer. Wat ga je doen? Als Machine Software Developer ben je verantwoordelijk voor: - Je ontwerpt, ontwikkelt en debugt software voor machinebesturingssystemen en complexe landbouwmachines; - Je stelt gebruikersinterfaces op (cabinedisplays); - Op termijn ga je softwareprojecten leiden voor specifieke machines; - Inclusief planning, documentatie en validatie; - Om specificaties te verifiëren

Bekijk vacature »

PHP Software Developer

Functie omschrijving PHP Software Developer gezocht! Voor een organisatie in de regio Zeist die zich bezighoud met het verbeteren van de medicatieveiligheid zoeken wij een Software Developer. In deze functie zijn wij op zoek naar een slimme en enthousiaste Developer die interesse heeft in farmacie, logistiek en ICT. Daarnaast beschik je over een goed analytisch vermogen en ben je van nature gestructureerd en resultaatgericht. Je moet in deze functie daadkrachtig, flexibel en communicatief goed zijn. Je verantwoordelijkheden bestaan uit: Object georiënteerd programmeren; Werken in een scrumteam aan de ontwikkeling van een medicatiebewakingssysteem; Meedenken over de mogelijkheden en onmogelijkheden van projecten;

Bekijk vacature »

Junior PHP ontwikkelaar

Functie Wij hebben onlangs onze eerste collega’s aangenomen, waardoor ons development team momenteel uit 4 personen bestaat. We bouwen onze software op basis van een PHP-framework (wat op zichzelf een Symfony framework is). Qua ontwikkeling focussen wij ons op 3 focus velden; – API-ontwikkeling/ Component Creatie – Implementatie – Framework ontwikkeling; het toevoegen van nieuwe functionaliteit of interne microservices Onze senior software engineer focust zich momenteel op de laatste twee punten, maar wij komen handen te kort op het eerste veld. Daarom zijn wij op zoek naar een enthousiaste junior software engineer die graag de kneepjes van het vak wil

Bekijk vacature »

Medior/senior Back-end developer wanted!

Functie Because of the growth within the company, we are looking for reinforcement in the devlopmenttean. As a back-end developer you build the company software that helps us with the primary processes. A fun (internal) project in which you continuously develop the software! You will work in a small team, we have daily stand-ups and a scrum session every fortnight, led by our Scrum Master. During these sessions, you get the opportunity to present your ideas and discuss them with your fellow developers and the Product Owner. Within the development teams, we use Trello, Gitlab, Jiira, Confluence and Boockstack. They

Bekijk vacature »

Frontend Developer

Functieomschrijving Voor de NIPV zijn wij opzoek naar een Frontend Developer. Als Frontend Developer ga jij aan de slag om dashboards te bouwen vanuit het datawarehouse. Dit stelt NIPV in staat om snel en eenvoudig bij correcte bedrijfsvoeringsinformatie te kunnen. Je ontwikkelt dashboards in PowerBI, publiceert en onderhoud die, verzameld en verwerkt feedback in overleg met het ontwikkelteam. Naast dashboards ontwikkel en onderhoud je een datamodel in Excel waarmee adviseurs, controllers en analisten in staat worden gesteld om de gegevens uit de dashboards te raadplegen en anders te filteren of bepaalde gegevens nader te verfijnen, zodat verdiepende vragen kunnen worden

Bekijk vacature »

PHP Laravel Ontwikkelaar

Functie omschrijving Weet jij alles over Laravel en krijg je energie van het developen van software hiermee? Laat het weten want wij zoeken een PHP/Laravel developer in regio 's-Hertogenbosch voor klein bedrijf welke softwareoplossingen maakt voor hun klanten. Jouw taken hierbij: Softwareapplicaties ontwikkelen en verder optimaliseren in veel diverse projecten op basis van Agile/Scrum. Documentatie schrijven over applicaties. Uitleg geven over software en applicaties Klantcontact hebben over bestaande applicaties. Techstack: PHP, Laravel, HTML, CSS, Javascript. Bedrijfsprofiel Deze organisatie zit in de regio van 's-Hertogenbosch en is een klein bedrijf. Er werken circa 15 medewerkers, verdeeld in meerdere teams, zoals back-end

Bekijk vacature »
Ward van der Put
Moderator

Ward van der Put

20/09/2016 12:12:21
Quote Anchor link
Als $number een Europees artikelnummer van 12 cijfers is, kun je als volgt het 13e controlecijfer berekenen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
public function getCheckDigit($number)
{

    $weight_flag = true;
    $sum = 0;
    for ($i = strlen($number) - 1; $i >= 0; $i--) {
        $sum += (int)$number[$i] * ($weight_flag ? 3 : 1);
        $weight_flag = !$weight_flag;
    }

    return (10 - ($sum % 10)) % 10;
}

?>


Deze methode komt uit een class die ik heb geschreven voor een EAN-13. Een EAN-13 heeft nog een handige eigenschap waarvoor ik een methode wil toevoegen: als 1 cijfer onjuist is (bijvoorbeeld door een tikfout), kun je met 100% zekerheid het juiste EAN-nummer bepalen.

Hoe kan ik dat het beste aanpakken?
 
PHP hulp

PHP hulp

22/11/2024 11:20:47
 
Ozzie PHP

Ozzie PHP

20/09/2016 14:39:04
Quote Anchor link
Het nadeel lijkt me dat er ook 2 tikfouten in kunnen staan. Dan krijg je het nooit goed lijkt me.

>> Hoe kan ik dat het beste aanpakken?

Als het inderdaad 1 fout is ... dan per cijfer alle mogelijkheden doorlopen en kijken of de controle slaagt. Dus stel het EAN-nummers is (fictief):

0001112223334

Dan begin je met het 1e cijfer, in dit geval een 0. Daar maak je dan respectievelijk 0 t/m 9 van:

0001112223334
1001112223334
2001112223334
3001112223334
4001112223334
5001112223334
6001112223334
7001112223334
8001112223334
9001112223334

En na iedere keer voer je dan de controle uit. Slaagt de controle niet? Dan ga je het 2e cijfer aanpassen:

0001112223334
0101112223334
0201112223334
0301112223334
0401112223334
0501112223334
0601112223334
0701112223334
0801112223334
0901112223334

En nu ook weer ná iedere variant een controle uitvoeren. En dit doe je dan net zo lang totdat de controle slaagt. Maar dit werkt alleen als er maar 1 fout in zit. Als je pech hebt, dan ben je dus 130 controles aan het uitvoeren zonder resultaat.

Succes!
 
Ward van der Put
Moderator

Ward van der Put

20/09/2016 14:47:04
Quote Anchor link
Dank je Ozzie. Die iteratie had ik al in gedachten, als plan B. Ik vermoed namelijk dat het ook met een formule kan — alleen welke?

>> Het nadeel lijkt me dat er ook 2 tikfouten in kunnen staan.

Dat staat ook op de verlanglijst, maar is een andere vraag. Je kunt bij een EAN-13 namelijk met 90% zekerheid het juiste nummer terugvinden als twee cijfers van positie zijn verwisseld. (Dat wil ik uiteindelijk ook inbouwen, omdat dit een veelvoorkomend type invoerfout is.) Het verschil is dat ik met 100% zekerheid in het eerste geval beter uit de voeten kan dan met 90%.
Gewijzigd op 20/09/2016 15:30:17 door Ward van der Put
 
Thomas van den Heuvel

Thomas van den Heuvel

20/09/2016 15:01:54
Quote Anchor link
Quote:
als 1 cijfer onjuist is (bijvoorbeeld door een tikfout), kun je met 100% zekerheid het juiste EAN-nummer bepalen.

Heb je ook een bewijs dat een fout EAN-nummer met één tikfout ook maximaal één correct EAN-nummer oplevert (oftewel: is het direct/ondubbelzinnig duidelijk welk cijfer fout was)? Of brei je iets incorrects recht naar een willekeurig EAN-nummer?

Als je een tegenvoorbeeld kunt vinden waarbij je een fout EAN-nummer hebt waarbij je een ander cijfer dan de tikfout corrigeert zodanig dat dit een (ander) geldig EAN-nummer oplevert kun je dit idee laten varen :).

Of bedien je van een simpelere strategie: fout is fout.
 
Ward van der Put
Moderator

Ward van der Put

20/09/2016 15:15:06
Quote Anchor link
Thomas van den Heuvel op 20/09/2016 15:01:54:
Quote:
als 1 cijfer onjuist is (bijvoorbeeld door een tikfout), kun je met 100% zekerheid het juiste EAN-nummer bepalen.

Heb je ook een bewijs dat een fout EAN-nummer met één tikfout ook maximaal één correct EAN-nummer oplevert (oftewel: is het direct/ondubbelzinnig duidelijk welk cijfer fout was)? Of brei je iets incorrects recht naar een willekeurig EAN-nummer?

Geen wiskundig bewijs, wel anekdotisch bewijs. ;-)

In particular, since the weights are relatively prime to 10, the EAN-13 system will detect all single digit errors. It also recognizes 90% of transposition errors (all cases, where the difference between adjacent digits is not 5).
 
Bo Ter Ham

Bo Ter Ham

20/09/2016 17:10:28
Quote Anchor link
Ik wil niet de wijsneus uit gaan hangen, maar betekent bovenstaande quote niet dat je "single digit errors" met 100% zekerheid kan detecteren? M.a.w. dat 1 en 3 relatief priem zijn met 10 impliceert alleen dat de checksum nooit correct zal zijn als de barcode incorrect is. Volgens mij bestaat er geen "handige" formule om een incorrecte EAN code om te toveren in een correcte EAN code.
Gewijzigd op 20/09/2016 17:11:55 door Bo Ter Ham
 
Willem vp

Willem vp

20/09/2016 18:48:30
Quote Anchor link
Bo Ter Ham op 20/09/2016 17:10:28:
Ik wil niet de wijsneus uit gaan hangen, maar betekent bovenstaande quote niet dat je "single digit errors" met 100% zekerheid kan detecteren?

Dat was ook het eerste dat ik dacht toen ik Wards bericht las. ;-)

Volgens mij kun je in het geval van een single digit error elk van de 13 digits (dus ook het controlegetal) dusdanig manipuleren dat je een correct EAN krijgt. En zelfs als die uitspraak niet zou kloppen, dan zijn er in ieder geval minimaal 2 mogelijkheden om het EAN kloppend te krijgen: het corrigeren van de foute digit en het corrigeren van het controlegetal.

Om erachter te kunnen komen welk van de digits verkeerd is ingetikt, zou je m.i. minimaal twee controlegetallen moeten hebben die elk op een andere manier worden berekend.
 
Ward van der Put
Moderator

Ward van der Put

21/09/2016 09:05:38
Quote Anchor link
Bo Ter Ham op 20/09/2016 17:10:28:
Ik wil niet de wijsneus uit gaan hangen, maar betekent bovenstaande quote niet dat je "single digit errors" met 100% zekerheid kan detecteren?

Dat is héél scherp opgemerkt, dank je wel!

Het is bovendien logisch om een andere reden: als een EAN ongeldig is, kun je niet zien hoeveel invoerfouten er zijn gemaakt. Een gebruiker (of scanner) kan één cijfer maar ook meerdere cijfers verkeerd hebben. Probeer je die invoerfout te herstellen, dan krijg je inderdaad altijd een lijst met veel geldige alternatieven. (Wel kun je dan op basis van de overeenkomsten/verschillen daar nog een kans aan hangen die sommige alternatieven waarschijnlijker maakt dan andere, maar dan nog biedt dat weinig zekerheid.)
 
Pieter de Gent

Pieter de Gent

27/09/2016 12:45:49
Quote Anchor link
**knip**

Edit:
Spamlink verwijderd!
Gewijzigd op 27/09/2016 12:49:05 door - Ariën -
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.