gibt es eine Möglichkeit, zwei Variable zu vergleichen und die Unterschiede anzuzeigen.
z.B
Code: Select all
Var1 := "abc efg"
Var2 := "abc def"
LG
Moderator: jNizM
Code: Select all
Var1 := "abc efg"
Var2 := "abc def"
Code: Select all
12345 ek:19,99 vk:49,99 h-preis:35,99 bestand:2
12346 ek:18,99 vk:45,99 h-preis:32,99 bestand:4
12347 ek:15,99 vk:39,99 h-preis:30,99 bestand:12
Code: Select all
12344 ek:15,99 vk:49,99 h-preis:30,99 bestand:4
12346 ek:18,99 vk:45,99 h-preis:32,99 bestand:4
12347 ek:15,99 vk:41,99 h-preis:31,99 bestand:10
12345 ek:19,59 vk:49,99 h-preis:35,99 bestand:5
12348 ek:19,99 vk:49,99 h-preis:39,99 bestand:5
Code: Select all
morgens =
(
12345 ek:19,99 vk:49,99 h-preis:35,99 bestand:2
12346 ek:18,99 vk:45,99 h-preis:32,99 bestand:4
12347 ek:15,99 vk:39,99 h-preis:30,99 bestand:12
)
abends =
(
12344 ek:15,99 vk:49,99 h-preis:30,99 bestand:4
12346 ek:18,99 vk:45,99 h-preis:32,99 bestand:4
12347 ek:15,99 vk:41,99 h-preis:31,99 bestand:10
12345 ek:19,59 vk:49,99 h-preis:35,99 bestand:5
12348 ek:19,99 vk:49,99 h-preis:39,99 bestand:5
)
result := compare(morgens, abends)
msgbox % result
ExitApp
compare(alt , neu){
alt := createObj(alt) , neu := createObj(neu) ; transformiere Strings zu assoz. Arrays
for key, obj in neu { ; loope durch alle Artikel(nummern) der abendlichen Email
string .= key "`tek:" obj.ek "`tvk:" obj.vk "`th-preis:" obj["h-preis"] "`tbestand:" obj.bestand
if alt.HasKey(key) ; ist diese Artikelnummer bereits in der morgendlichen Email enthalten ?
{ ; ja, also vergleiche im Detail
for bez, wert in obj
if (wert != alt[key][bez]) ; vergleiche alte und neue Einzelwerte
string .= "`t**" bez ":" wert
string .= "`n"
}
else
string .= "`t**NEU`n" ; nein, neuer Artikel
}
return string ; gib Report zurück
}
createObj(string){
obj := {}
Loop, Parse, string, `n, `r ; durch alle Zeilen loopen
{
zeile := {}
Array := StrSplit(A_LoopField , A_Tab) ; Zeile aufteilen
for idx, elem in Array {
if (idx > 1) {
arr := StrSplit(elem, ":")
zeile[arr.1] := arr.2 ; key:value -Paare erzeugen
}
}
obj[array.1] := zeile
}
return obj
}
Code: Select all
12344 ek:15,99 vk:49,99 h-preis:30,99 bestand:4 **NEU
12345 ek:19,59 vk:49,99 h-preis:35,99 bestand:5 **bestand:5 **ek:19,59
12346 ek:18,99 vk:45,99 h-preis:32,99 bestand:4
12347 ek:15,99 vk:41,99 h-preis:31,99 bestand:10 **bestand:10 **h-preis:31,99 **vk:41,99
12348 ek:19,99 vk:49,99 h-preis:39,99 bestand:5 **NEU
Users browsing this forum: No registered users and 49 guests