[델파이]문자열 배열의 정렬
문자열 배열의 정렬 소스
var
arSort: array[1..12] of string
= ('d','e','f','a','b','c','h','a','i','j','k','l');
procedure TForm1.Button1Click(Sender: TObject);
var
sLst: string;
iIdx: Integer;
bSortingEnd: Boolean;
bChange: boolean;
i : integer;
begin
Listbox1.Clear;
repeat
bSortingEnd := False;
iIdx := 1;
repeat
bChange := false;
if checkbox1.Checked then
begin // 내림차순(c, b, a ...)
if CompareStr(arSort[iIdx+1], arSort[iIdx]) > 0 then bChange := true
end
else
begin // 오름차순(a, b, c ...)
if CompareStr(arSort[iIdx], arSort[iIdx+1]) > 0 then bChange := true;
end;
if bChange then
begin
sLst := arSort[iIdx];
arSort[iIdx] := arSort[iIdx+1];
arSort[iIdx+1] := sLst;
bSortingEnd := True;
end;
Inc(iIdx);
until(iIdx > High(arSort) - 1);
until(bSortingEnd = False);
for i := Low(arSort) to High(arSort) do
begin
Listbox1.Items.Add(arSort[i]);
end;
end;