![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как из ссылки(URL), выделить имя файла? [D7, D2005, XP]
Stepper © (2008-04-02 12:25:00)Всем привет!
Есть Едит в него введена ссылка:http://mysite.ru/software/myproga.exe
Как из данной строки - получить (пропарсив) имя файла myproga.exe?
palva (2008-04-02 22:11:00) [1]> А как для сего реализовать?
Как-нибудь так:
Поискать символ # а потом отбросить этот символ и все, что после него следует.
Поискать символ ? а потом отбросить этот символ и все, что после него следует.
Stepper (2008-04-02 21:26:00) [2]Реализация:
function DelUrlStr(Url: string): string;
var
Pos: Integer;
begin
Pos := Length(Url);
while Url[Pos] '/' do
Dec(Pos);
Result := Copy(Url, Pos + 1, Length(Url) - Pos + 1);
end;
Функция корректно возвращает имя файла myproga.exe
А как для сего реализовать?
> palva © (02.04.08 14:38) [9]
>
> URL может включать себя: 1) :номер порта 2) #якорь 3) ?параметры&произвольного&вида
palva (2008-04-02 14:38:00) [3]Надо читать доки.
URL может включать себя: 1) :номер порта 2) #якорь 3) ?параметры&произвольного&вида
Кроме того в URL может отсутствовать имя файла
Так что, вообще говоря, функция должна быть сложной.
Если автору нужен функция для частного случая, тогда он должен написать полную спецификацию этого случая.
easy (2008-04-02 14:13:00) [4]
while pos('/', s)<>0 do
delete(s,1,pos('/', s));
showmessage(s);
Семеныч (2008-04-02 14:10:00) [5]> Stepper (02.04.08 14:05) [4]
Попробуйте:
ExtractFileName(StringReplace(URL, '/', PathDelimiter, [rfReplaceAll]))
Kolan (2008-04-02 14:09:00) [6]Можно для такой строки вообще с конца в ч\цикле пройти до первой '/'.
Reindeer Moss Eater (2008-04-02 14:09:00) [7]для начала поиск последнего слэша с помошью StrRScan
Stepper (2008-04-02 14:05:00) [8]Вот что нашел:
...
if Pos('http://', URL) > 0 then Delete(Url, 1, 7);
Result := Copy(Url, 1, Pos('/', Url) - 1);
if Result = '' then Result := URL + #0;
...
Из строки http://mysite.ru/software/myproga.exeполучаем mysite.ru
Кто поможет оптимизировать под мой сабж? Заранее благодарен!
Stepper (2008-04-02 12:29:00) [9]
> Kolan © (02.04.08 12:28) [2]
Окей!
> Ega23 © (02.04.08 12:27) [1]
Спс!
Kolan (2008-04-02 12:28:00) [10]Лучьше используй рег. выражения. В Delphi для них умные люди написали модуль RegExpr.
Ega23 (2008-04-02 12:27:00) [11]Pos, copy + F1