Ich versuche seid geraumer Zeit ein Programm zu entwickeltn, welches für mich EAN Nummern nach meinen Ansprüchen ausließt.
Dabei ist zu erst zu erklären die EAN Nummer ist eine Nummer die auf jedem Produkt zu finden ist, und es eindeutig identifiziert, änhlich der ISBN nummer bei Büchern.
Bsp:
Land Hersteller Artikel Prüfziffer
04 12978 99214 8
(Eine zusammenhängende Nummer versuche es nur im Forum deutlicher zu machen)
Dabei bestehen die ersten 2 Ziffern aus dem Herkunftsland:
Für mich interessant wären dabei nur:
00-09 USA/Kanada
40-43 Deutschland
49 Japan
90/91 Österreich
93 Australien
alles andre: Unbekanntes Land
Die nächsten 5 Ziffern sind die Herstellernummer
Dann eine 5 stellige Artikelnummer und zum schluß eine Prüfziffer.
Dabei soll die Herstellernummer und Artikelnummer lediglich ausgegeben werden.
Das alles wäre kein Problem aber:
Es soll überprüft werden ob die Eingabe die korrkte Länge, 13 Zeichen hat!
Ob die Eingabe nur aus Zahlen besteht!
Falls nach diesen kriterien kein Fehler besteht soll er halt wie gesagt die hersteller und Artikelnummer auslesen und ausgeben.
Im Anschluss soll er schaun ob die Nummer insgesammt mit der Prüfziffer zusammen zu einem richtigen ergebnis kommt, um auszuschließen das sich ein Zahlendreher eingemogelt hat.
Bsp
041297899214 Prüfziffer 8
Dabei wird nun immer abwechselnd mal 1 und mal 3 Multipliziert, d.h alle ungeraden Stellen in unserem Bsp: 0,1,9,8,9,1 mit 1 und alle Geraden mit 3 multiplizieren.
Diese dann alle addieren und dabei kommt in unserem Bsp 112 heraus.
Diese 112 dann mit unserer Prüfziffer adiert macht 120 und somit ist die Eingabe ohne Zahlendreher erfolgt. Die Prüfziffer dient dazu, auf die nächste glatte durch 10 teilbare Zahl aufzustocken. D.h für 94 wäre die Prüfziffer 6 usw. (Ich hoffe ihr habt es verstanden)
Als entgültige Ausgabe hätten wir dann.
Herkunftsland
Artikelnummer
Herstellernummer
Prüfsummenkorrektheit
Nun zu meinen ersten Lösungsansätzen:
Längenfunktion um länge zu ermitteln
Dann die ersten beiden Zeichen rauskopieren diese per Case Of Entscheidung zuordnen, dann ausgeben
Dann die Herstellernummer rauskopieren und ausgeben
Die Artikelnummer rauskopieren und ausgeben
Dann per Zählschleife
For i=1 To 13 Do
S:=Copy(Art,i,1)
If odd(i)
then Sum:=Sum+S
else Sum:=Sum+(3*S)
(Art ist meine Variable für die komplette Eingabe, S hier eine Zwischenvariable)
Dann kopiert er die Prüfziffer addiert sie mit meiner Variable "Sum" und schaut dann per If entscheidung ob
B mod 10=0 ist (mod überprüft ja nur alles nach dem Komma)
Dann halt die Ausgabe ob die Prüfsumme stimmt oder nicht.
Was ich nicht hinkriege:
Die Überprüfung ob es nur Zahlen sind
und traurig aber wahr, einen funktionierenden Quelltext :-(
Falls mir wer mit der Überprüfung oder dem ganzen Quelltext helfen kann wäre super nett. Bastle schon eine weile daran, kriege es aber einfach nicht zum laufen. Habe es mit absicht sehr ausfühlrich beschrieben, damit ihr auch sofort wisst, wie es genau aussehen soll!
Dabei ist zu erst zu erklären die EAN Nummer ist eine Nummer die auf jedem Produkt zu finden ist, und es eindeutig identifiziert, änhlich der ISBN nummer bei Büchern.
Bsp:
Land Hersteller Artikel Prüfziffer
04 12978 99214 8
(Eine zusammenhängende Nummer versuche es nur im Forum deutlicher zu machen)
Dabei bestehen die ersten 2 Ziffern aus dem Herkunftsland:
Für mich interessant wären dabei nur:
00-09 USA/Kanada
40-43 Deutschland
49 Japan
90/91 Österreich
93 Australien
alles andre: Unbekanntes Land
Die nächsten 5 Ziffern sind die Herstellernummer
Dann eine 5 stellige Artikelnummer und zum schluß eine Prüfziffer.
Dabei soll die Herstellernummer und Artikelnummer lediglich ausgegeben werden.
Das alles wäre kein Problem aber:
Es soll überprüft werden ob die Eingabe die korrkte Länge, 13 Zeichen hat!
Ob die Eingabe nur aus Zahlen besteht!
Falls nach diesen kriterien kein Fehler besteht soll er halt wie gesagt die hersteller und Artikelnummer auslesen und ausgeben.
Im Anschluss soll er schaun ob die Nummer insgesammt mit der Prüfziffer zusammen zu einem richtigen ergebnis kommt, um auszuschließen das sich ein Zahlendreher eingemogelt hat.
Bsp
041297899214 Prüfziffer 8
Dabei wird nun immer abwechselnd mal 1 und mal 3 Multipliziert, d.h alle ungeraden Stellen in unserem Bsp: 0,1,9,8,9,1 mit 1 und alle Geraden mit 3 multiplizieren.
Diese dann alle addieren und dabei kommt in unserem Bsp 112 heraus.
Diese 112 dann mit unserer Prüfziffer adiert macht 120 und somit ist die Eingabe ohne Zahlendreher erfolgt. Die Prüfziffer dient dazu, auf die nächste glatte durch 10 teilbare Zahl aufzustocken. D.h für 94 wäre die Prüfziffer 6 usw. (Ich hoffe ihr habt es verstanden)
Als entgültige Ausgabe hätten wir dann.
Herkunftsland
Artikelnummer
Herstellernummer
Prüfsummenkorrektheit
Nun zu meinen ersten Lösungsansätzen:
Längenfunktion um länge zu ermitteln
Dann die ersten beiden Zeichen rauskopieren diese per Case Of Entscheidung zuordnen, dann ausgeben
Dann die Herstellernummer rauskopieren und ausgeben
Die Artikelnummer rauskopieren und ausgeben
Dann per Zählschleife
For i=1 To 13 Do
S:=Copy(Art,i,1)
If odd(i)
then Sum:=Sum+S
else Sum:=Sum+(3*S)
(Art ist meine Variable für die komplette Eingabe, S hier eine Zwischenvariable)
Dann kopiert er die Prüfziffer addiert sie mit meiner Variable "Sum" und schaut dann per If entscheidung ob
B mod 10=0 ist (mod überprüft ja nur alles nach dem Komma)
Dann halt die Ausgabe ob die Prüfsumme stimmt oder nicht.
Was ich nicht hinkriege:
Die Überprüfung ob es nur Zahlen sind
und traurig aber wahr, einen funktionierenden Quelltext :-(
Falls mir wer mit der Überprüfung oder dem ganzen Quelltext helfen kann wäre super nett. Bastle schon eine weile daran, kriege es aber einfach nicht zum laufen. Habe es mit absicht sehr ausfühlrich beschrieben, damit ihr auch sofort wisst, wie es genau aussehen soll!