casesensitive Vergleiche

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
braunbär
Beiträge: 369
Registriert: Do 8. Jun 2017, 18:21
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10, FPC 3.2.0
CPU-Target: 64Bit
Wohnort: Wien

casesensitive Vergleiche

Beitrag von braunbär »

Wenn in einer Stringlist casesensitive=true ist, sollten dann nicht alle Großbuchstaben vor allen Kleinbuchstaben gereiht werden?
Ich habe jetzt eine ganze Weile an meinem Programm herumprobiert, um dann draufzuommen, dass das in der aktuellen Stringlist-Implementierung von FPC 3.0.4 anscheinend auch nicht so funktioniert.

Code: Alles auswählen

 
program TestSL;
 
uses
  Classes, SysUtils;
 
var
  sl: TStringlist;
  
begin 
Sl:=TStringlist.Create;
Sl.CaseSensitive:=false;
sl.Duplicates:=dupAccept;
sl.LoadFromFile('c:\Pascal\Test\Test.dat');
 
writeln(sl.text);
readln;
 
Sl.sorted:=true;
writeln(sl.text);
readln;
 
Sl.CaseSensitive:=true;
Writeln(sl.text);
readln;
 


Ergebnis:

Code: Alles auswählen

 
abc
bcd
ABC
BCD
 
 
ABC
abc
bcd
BCD
 
 
abc
ABC
bcd
BCD
 
 

Beim case-sensitiven Sortieren müssten doch zuerst die beiden groß geschriebenen und danach die beiden klein geschriebenen Wörter sortiert werden, oder?

Antworten