Thema: Delphi Stringfilter

Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#18

Re: Stringfilter

  Alt 28. Jun 2009, 11:49
Hier eine Funktion die ich mal zur Überprüfung von Pfaden geschrieben habe:

Delphi-Quellcode:
function IsValidPath(s: String): Boolean;
var
  i: Integer;
  t: String;
begin
  Result := False;

  if Length(s) < 1 then Exit;
  if s[Length(s)] <> '\then s := s + '\';
  if not (((s[1] in ['a'..'z', 'A'..'Z']) and (Copy(s, 2, 2) = ':\')) or
    (Copy(s, 1, 2) = '\\')) then Exit;
  if Copy(s, 1, 2) = '\\then Delete(s, 1, 2) else Delete(s, 1, 3);

  while Length(s) > 0 do begin
    t := Copy(s, 1, Pos('\', s) - 1);
    if t = 'then Exit;
    for i := 1 to Length(t) do if Pos(t[i], '\/:*?"<>|') > 0 then Exit;
    Delete(s, 1, Pos('\', s));
  end;

  Result := True;
end;
Ist schon paar Jahre alt, aber ich denke, daß sie funktionierte.

Übrigens, wenn du eine Funktion suchst die überprüft ob Bezeichner aus diesen Buchstaben besteht: 'A'..'Z', 'a'..'z', '0..'9', '_', dann gibt es bereits eine fertige Funktion:

  if not IsValidIdent(s) then ...
  Mit Zitat antworten Zitat