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
-
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
Content aside
- vor 4 JahrenZuletzt aktiv
- 1Antworten
- 1019Ansichten