Wie gesagt, beim
if AnsiPos(GUID, ChainTexts.Strings[III]) > 0 then
aka
if ContainsStr(ChainTexts.Strings[III], GUID) then
(ja, das wurde saublöd vom C# geklaukopiert und man muß auf die Parameter-Reihenfolge achten)
dabei hätte ich eher das Gehühl, als wenn
eigentlich Folgendes
if SameStr(GUID, ChainTexts.Strings[III]) then
aka
if GUID = ChainTexts.Strings[III] then
"gemeint" war.
Und zusätzlich war's nur noch als Tipp, dass man Code auch "sprechend" schreiben kann, so dass er direkt sagt, was er eigentlich macht.
a=b
aka
SameStr
(ja, prinzipiell sieht SameStr erstmal nutzlos aus, aber nicht, wenn man es in Bezug auf die anderen Funktionen betrachtet)
Pos()=0
aka
not ContainsStr()
oder
not StartsStr()
Pos()=1
aka
StartsStr()
Pos()<>0
aka
ContainsStr()
AnsiLowerCase(a)=AnsiLowerCase(b)
aka
SameText
Pos(AnsiLowerCase())=0
aka
not ContainsText()
oder
not StartsText()
Pos(AnsiLowerCase())=1
aka
StartsText()
Pos(AnsiLowerCase())<>0
aka
ContainsText()
Links muß man auf leicht übersehbare Kleinigkeiten achten, aber Rechts steht es verständlich da.