Istnieje kilka sposobów można porównać ciągi w nowoczesnym Delphi (powiedzmy 2010-XE3):Jaka jest różnica między funkcjami porównywania ciągów znaków Delphi?
- '< =' operator, który postanawia UStrCmp/LStrCmp
- CompareStr
- AnsiCompareStr
Czy ktoś może podać (lub wskazać) opis tych metod w zasadzie?
Do tej pory doszedłem do wniosku, że AnsiCompareStr wywołuje funkcję CompareString w systemie Windows, co jest porównaniem "tekstowym" (tzn. Uwzględnia kombinację znaków Unicode itp.). Simple CompareStr nie robi tego i wydaje się, że zamiast tego robi porównanie binarne.
Jaka jest różnica między CompareStr i UStrCmp? Między UStrCmp a LStrCmp? Czy oni wszyscy dają identyczne wyniki? Czy te wyniki zmieniają się między wersjami Delphi?
Pytam, ponieważ potrzebuję porównania, które zawsze da takie same wyniki, więc indeksy w aplikacji zbudowanej z jedną wersją Delphi pozostają spójne z kodem zbudowanym z innym.