Klar geht das ... Was du mit wem vergleichts, ist ja egal.
X mit Y vergleichen ist ja das Selber, wie Y mit X vergleichen ... kann ja locker umgedreht werden ^^
Im endefekt machen diese 4 Abfragen alle das Selbe, du brauchst dir einfach nur die Abfrage aussuchen, welche du brauchst/dir gefällt
PS: CompareMem vergleicht ja zwei "gleichgroße" Speicherbereiche, deßhalb muß Vorher noch die Länge verglichen werden.
Hierbei ist es auch egal, ob
CompareMem(CharArray, String, oder
CompareMem(String, CharArray, ... CompareMem nimme die Beiden Strings ja eh gleich an (beide werden doch schließlich in einen Pointer umgewandelt, welcher einfach nur auf die entsprechende Speicheradresse zeigt)
Es ginge ja auch noch andersrum > erst CompareMem und dann notfals noxch die Länge,
dieser Vergleich arbeitet halt etwas schneller, da nur verglichen wird, wenn auch beide Strings gleich lang sind - bei unterschiedlicher Länge sind die ja eh unterschiedlich.
Delphi-Quelltext
1: 2:
| If CompareMem(PChar(S), P, Min(Length(S), Length(P)) and (Length(S) = Length(P))Then StringsSindGleich Else SindUnterschiedlich; |