Помогите придумать алгоритм определения является ли произвольный URL адресом файла или нет. Может решение совсем рядом, но никак не могу до него дойти, совсем уже запарился. Вариант проверять последние 3 символа отпадает, ибо масдай.
а если - записать адрес в рич-эдит, куда-нить чтоб не видно его было и поиск очень просто реализуется (34 кажется урок) - сначала ищем htm потом zip ну и т.д., не так уж и много бывает файлов.
Дело в том, что необходимо постоянно в цикле обрабатывать порядка 1к строк. На C++ Builder это будет медлено (
Veter Весь проект переписывать нет времени IceStudent Файл (zip,rar,exe и пр.) или это каталог, страничка (php, html, htm,asp...)
За отсутствием времени проблема решена способом, от которого первоначально было решено отказаться. Последние 3 символа строки проверяются на совпадение с rar,exe,zip,mp3,avi,wmv,flv,mpg,wma,mov,mkv,tgz,tar,wav,3gp,doc,pdf,msi,dll,vob и пр. Из недостатков - медленный и ненадежный способ (
да уж взять к примеру ссылку вида asd.asd/asd.php?asd=rar лучше делать запрос по этому урлу и парсеть заголовок ответа.. но в любом случае будут промахи
ds тебе нужно соорудить базу всех расширений ввиде бин. дерева - поиск будет в случае кучи расширений гораздо быстрей, чем при бруте. а для хитрых урлосов вида нужно парсить результ их работы.
ds Если в общем случае, то только по content-type + смотреть на сами данные (#8). Если у тебя URL'ы однозначные (вида host/file.ext), тогда проще твоим методом из #7.
А протокол проверить не судьба? file:///windows/notepad - протокол file:// http://server.domain.zone/file.extension Ясен фиг прото HTTP ну и так далее если без явного указания протолкола (/windows/notepad или /program%20files/office10/i386/mshta), то попробуй проверить на запускаемость. Типа bat файл создай Код (Text): REM checktool.bat @echo off %CH_MSG%="checking for" %URL%=%1% echo %CH_MSG% %URL% ...... start %1% echo [ OK ] ну типа того (я не знаю как условия ставить)