0

mit substring text in array aufteilen

Um die Prüfziffer für einen EAN Code zu erhalten, habe ich einen Text "4002353" zunächst in ein array aufgeteilt:

let myarr2 := [number(substring(Text, 0, 1)), number(substring(Text, 1, 1)), number(substring(Text, 2, 1)), number(substring(Text, 3, 1)), number(substring(Text, 4, 1)), number(substring(Text, 5, 1)), number(substring(Text, 6, 1))];

Dieses setze ich mit concat(myarr2) wieder zusammen und stelle es in einem zweiten Textfeld dar - erhalte aber das Ergebnis: 4, 0, 0, 0, 2, 23, 235

Wo ist mein Fehler?

3 Antworten

null
    • Seba.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Fehler gefunden:

    Im Handbuch wird unter "Funktionen->Textfunktionen" die Funktion falsch beschrieben.

    Richtig im Handbuch "Erweiterte Funktionen->Funktions- und Sprachreferenz-> Textfunktionen"

    • Frank_Schafer
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo,

    du kannsteunen Text ganz leicht Zeichenweise in ein Array umwandeln:

    let myArray := split(Text, "")

    Oder auch Text direkt zeichenweise in einer Schleife durchlaufen:

    for myZeichen in Text do ... end

    VG Frank

    • Seba.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    ABSOLUT TOLL - jetzt habe ich eine schlanke Version, um die Prüfziffer einer EAN zu berechnen.

    Danke Dir!

    let myEAN := 0;
    let gerade := false;
    "kleiner Workarround, weil man die Quersumme von der letzten Stelle an berechnet";
    if odd(length(Text)) = true then
    gerade := false
    else
    gerade := true
    end;
    "Quersumme wird berechnet";
    for ii in Text do
    if gerade = false then
    myEAN := myEAN + number(ii) * 3;
    gerade := true
    else
    myEAN := myEAN + number(ii);
    gerade := false
    end
    end;
    Quersumme := myEAN;
    "Als workarround die Formel für die Prüfziffer - Mod 10";
    'Prüfziffer' := abs(Quersumme / 10 - ceil(Quersumme / 10)) * 10

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 3Antworten
  • 1902Ansichten