@Koroko1999: Glaube nicht, daß das funzt.
Das ist getestet:
Delphi-Quellcode:
function Zusammenfassen(st:String):String;
var sl:TStringlist; i,j:Integer;
begin
Result:='';
sl:=TStringlist.Create;
sl.CommaText:=st;
if sl.Count>0 then
begin
i:=0;
Result:=sl.Strings[0];
for j:=1 to sl.Count-1 do
if StrToInt(sl.Strings[j])<>StrToInt(sl.Strings[j-1])+1 then
begin if (j-i)>1
then Result:=Result+'-'+sl.Strings[j-1]+', '+sl.Strings[j]
else Result:=Result+', ' +sl.Strings[j];
i:=j;
end;
if (j-i)>1
then Result:=Result+'-'+sl.Strings[j-1]
end;
sl.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Text:=Zusammenfassen(Edit1.Text);
end;