Einzelnen Beitrag anzeigen

mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: String intelligent Kürzen

  Alt 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
  Mit Zitat antworten Zitat