5,928
社区成员




procedure TForm1.Button1Click(Sender: TObject);
var St :TStringList;
begin
St :=TStringList.Create;
{Ascii编码:
c 99
C 67
W 87
AWSAccessKeyId 和Action,
大小写不敏感,是Action前面,
大小写敏感, 是AWSAccessKeyId前面。}
St.Add('AWSAccessKeyId');
St.Add('Action');
St.CaseSensitive :=True; //true或false,比较结果,都是大小写不敏感,是否delphi的bug。
//St.Sorted :=false;
St.Sort;
if 'AWSAccessKeyId' >'Action' then
ShowMessage('AWSAccessKeyId 大')
else ShowMessage('Action 大');
ShowMessage(St.Strings[0] +' ' +St.Strings[1]);
//显示为Action AWSAccessKeyId,说明大小写不敏感的。
//而我要的是大小写敏感的。
end;
type
TMyStringList = class(TStringList)
protected
function CompareStrings(const S1, S2: string): Integer; override;
end;
{ TMyStringList }
function TMyStringList.CompareStrings(const S1, S2: string): Integer;
begin
if CaseSensitive then
Result := CompareStr(S1, S2)
else
Result := CompareText(S1, S2);
end;
procedure TForm1.Button1Click(Sender: TObject);
var St :TStringList;
begin
St :=TMyStringList.Create;
St.Add('AWSAccessKeyId');
St.Add('Action');
st.CaseSensitive := True;
St.Sort;
showmessage(st.Text);
st.free;
end;