(Moderator)
Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
Delphi 11 Alexandria
|
AW: String intelligent Kürzen
18. Jun 2011, 16:31
In etwa so
Delphi-Quellcode:
function KuerzeDateiname( orig: string): string;
var
sl: TStrings;
s: string;
i, j, g, ab: Integer;
begin
//Ungueltige Zeichen entfernen
s := '';
for i := 1 to length( orig) do
begin
if orig[i] in [' ', 'a'..'z', 'A'..'Z'] then
s := s + orig[i];
end;
//Nach Wörter trennen
try
sl := TStringList.Create;
sl.Delimiter := ' ';
sl.StrictDelimiter := True;
sl.DelimitedText := s;
ab := 14 DIV sl.Count; //Anzahl Buchstaben pro Wort
for i := 0 to sl.Count -1 do
begin
g := min( Length( sl[i]), ab);
for j := 1 to g do
begin
result := result + sl[i][j];
end;
end;
finally
sl.Free;
end;
end;
Es besteht natürlich noch Überarbeitungsbedarf
Markus Kinzler
Geändert von mkinzler (18. Jun 2011 um 17:04 Uhr)
Grund: Kleine Korrekturen; Kein Fehler wenn Länge Wort < zu kopierende Anzhal Buchstaben
|