0

Arrays vergleichen

Hallo zusammen,

ich sehe den Wald vor lauter Bäumen nicht...

Ich habe in in zwei Tabellen jeweils ein Textfeld, die ich mit einander vergleichen möchte. Die Textfelder enthalten 1-5 Werte per ";" separiert. Die Werte möchte ich vergleichen und je nachdem, wie viele Übereinstimmungen es gibt eine Bewertung in eine dritte Tabelle schreiben (diese löst die Funktion bei create aus).

Zuerst bilde ich zwei Arrays aus den Textfelder:
let arrayKunde := split(Kundenanfragen.'Erfahrung in Mannschaftsbetreuung', "; ");

let arrayBewerber := split(Bewerberanfragen.'Erfahrung in Mannschaftsbetreuung', "; ");
Dann vergleich ich erstmal den kompletten Inhalt:
if concat(arrayKunde) = concat(arrayBewerber) then
me.(Manschaftssport := 100)
else
Jetzt versuche ich die einzelnen Werte zu vergleichen:
let sport := 0;
for i in cnt(arrayKunde) do
let sportBew := item(arrayBewerber, i);
if contains(text(arrayKunde), sportBew) then
sport = sport + 30
end;
Manschaftssport := sport
end
end

Das Problem ist doch sicherlich schon öfter aufgetreten und vielleicht gibt es eine einfachere Lösung. 
Bei mir z.B. funktioniert die If-Abfrage nicht richtig, da ich immer den Wert 100 zurückgemeldet bekomme. Ich komme aber leider einfach nicht drauf warum...

Danke und viele Grüße

Hannes

1 Antwort

null
    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Hannes;

    die Constelation "for i in (ZAHL)" prüft nur einmal und gibt i diese Zahl. Du muss entwerde "for i in range(ZAHL) do" oder 

    for i from 0 to ZAHL do
    ---

    let sport := 0;
    for i in range(cnt(arrayKunde)) do
    let sportBew := item(arrayBewerber, i);
    if contains(text(arrayKunde), sportBew) then
    sport = sport + 30
    end;
    Manschaftssport := sport
    end
    end

    ---

    Leo