Hi, ich habe eine Funktion gebastelt die mir aus einer
URL-Link-Adresse einen Dateinamen geben soll.
Mit normalen Web-Links klappt das alles soweit so gut.
Wenn nur eine Domäne in
URL steht, das hätte ich gerne zu "index.html" abgeändert, habt ihr eine Idee wie ich das lösen kann?
Hier der jetzige Code:
Delphi-Quellcode:
Function UrlToFilename (
Const sURL:
String ) :
String;
var
tmp:
String;
Cancel: Boolean;
i: Integer;
begin
tmp := '
'; Result := '
';
i := Length(sURL);
Cancel := False;
repeat // strip input string down to last part after "/"
if (sURL[i] <> '
/')
then
tmp := sURL[i]+tmp
else
Cancel := True;
Dec(i);
until (Cancel = True)
or ( i <= 0);
if tmp = '
'
then tmp := '
index.html';
// default name
for i := 1
to Length(tmp)
do // filter out some bad chars
begin
if ((Ord(Char(tmp[i])) >= $20)
and(Ord(Char(tmp[i])) <= $7F))
then // only use chars between ascii #32 and #127
if ((tmp[i]<>'
"')
and(tmp[i]<>'
$')
and(tmp[i]<>'
*')
and(tmp[i]<>'
<')
and(tmp[i]<>'
>')
and(tmp[i]<>'
/')
and(tmp[i]<>'
\'))
then // filter out bad filename chars
Result := Result + tmp[i];
end;
end;
Vielleicht habt ihr ja auch noch Vorschläge was für Zeichen
nicht in einen Dateinamen gehören?