Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > Полезные функции

Полезные функции Выкладываем полезные функции, чтоб не изобретать велосипед заново...

Ответ
 
Опции темы
Старый 26.07.2006, 21:41   #1
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Радость Скачка файла

;|------------------------------------------------------| 
;| ?2006 by www.Marius-Rabung.de | [email protected]| 
;|------------------------------------------------------| 

Function Download(Inputfile$,outputfile$, Port%=80) 

 Local host$ 
 Local host_tmp 
 Local stream 
 Local file 

;------------------------------- Den Host aus InputFile$ rausfiltern 
 host$=right(inputfile$,len(inputfile$)-7) ; http:// rausschneiden 
 host_tmp=instr(host$,"/")-1               ; Das erste Slash im String suchen und 1 abziehen 
 host$=left(host$,host_tmp)                ; Den Text bis zu dem ersten Slash-1 k?rzen 
 ;------------------------------ TCPStream zum Host ?ffnen 
 stream = OpenTCPStream(host$,Port%) 
;------------------------------- Datei Anfordern 
 WriteLine stream, "GET "+Inputfile$+ " HTTP/1.1" 
 WriteLine stream, "Host: "+host$ 
 WriteLine stream, "" 
;------------------------------- Datei auf der Festplatte erstellen 
 file = writeFile(outputfile$) 
;------------------------------- Das Ende des HTTP Headers suchen 
 For a=0 To 100 
  tmp$=ReadLine(stream) 
  If Instr(Lower$(tmp), "content-type")>0 Then ReadLine(stream) : Exit 
 Next 
;------------------------------- Datei downloaden 
 While Not Eof(stream)        
  WriteByte file, ReadByte(stream)    
 Wend 
;------------------------------- Alles wieder Schlie?en 
 CloseFile file 
 CloseTCPStream stream 
End Function
взято с разрешения, от сюда:
http://www.freecoder.chat-blitz.de/
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
НубеГ (08.07.2008), Program23 (25.09.2010)
Старый 26.07.2006, 21:43   #2
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Re: Скачка файла

юзание
Download("http://mariusrabung.ma.funpic.de/Temp/Download.bb", "C:/Download.bb")
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 25.09.2010, 02:09   #3
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Скачка файла

Чот напрягает меня заголовок цикла
For a=0 To 100
Кто тут в протоколах шарил - не надо ли там поставить цикл до условия If Instr(Lower$(tmp), "content-type")>0 ?
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 25.09.2010, 10:31   #4
cyberblut
Знающий
 
Регистрация: 14.06.2009
Сообщений: 338
Написано 139 полезных сообщений
(для 257 пользователей)
Ответ: Скачка файла

Не надо. Этот цикл вообще от криворукости Нужно читать построчно заголовки пока не будут найдены подряд две пустые строки (\n\n) - они отделяют заголовки от тела. Ну автор вполне себе адекватно решил, что больше 100 заголовков не будет. Но только content-type может быть в любой позиции заголовков, а после него вполне себе content-length и что угодно другое. Оно в конце концов и запишется в файл, что естественно сделает его нечитаемым.
Ещё и файл может быть недоступен, тогда сервер вернёт соответствующий код результата (404, 403 и т.д), но проверки на это нету, а надо бы.
(Offline)
 
Ответить с цитированием
Старый 25.09.2010, 11:05   #5
Program23
Бывалый
 
Аватар для Program23
 
Регистрация: 26.04.2009
Адрес: Россия, Уфа
Сообщений: 680
Написано 182 полезных сообщений
(для 406 пользователей)
Ответ: Скачка файла

Полезная штука,можно качать обновления игры на Blitz3d с сервера.
__________________
Фриланс:
Freelancer.com
Upwork
(Offline)
 
Ответить с цитированием
Старый 25.09.2010, 16:29   #6
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Скачка файла

Ещё многие сервера настроены, чтобы контент чунками отдавать, это другой механизм, отличный от Content-Length, оттуда тоже эта функция скачает с ошибками и файл будет битый. Да и вообще функция кривая, да.
(Offline)
 
Ответить с цитированием
Старый 25.09.2010, 19:30   #7
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Скачка файла

http://blitzmax.com/codearcs/codearcs.php?code=24
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 26.09.2010, 03:17   #8
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Скачка файла

предыдущий код тоже устарел.
http://blitzbasic.com/codearcs/codearcs.php?code=2279
вот это прошёл почти все мои тесты. Однако срезался на некоторых - в а именно, когда сервер не присылал в ответе content-length - почему он (сервер) это делал непонятно, однако (по идее) это является корректным ответом.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 26.09.2010, 16:00   #9
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Скачка файла

Сообщение от impersonalis Посмотреть сообщение
предыдущий код тоже устарел.
http://blitzbasic.com/codearcs/codearcs.php?code=2279
вот это прошёл почти все мои тесты. Однако срезался на некоторых - в а именно, когда сервер не присылал в ответе content-length - почему он (сервер) это делал непонятно, однако (по идее) это является корректным ответом.
Я же выше написал. Сервер может отдавать контент чунками, это фича протокола HTTP/1.1. Отправляется заголовок:
Transfer-Encodingchunked 
Почитать об этом можно в википедии для начала, а дальше гугл :
http://ru.wikipedia.org/wiki/Chunked_transfer_encoding

Я до позавчерашнего дня тоже думал, что это некорректный ответ и когда на PHP свой класс писал для HTTP давно как-то, тоже не знал как из такой ситуации выходить, и в итоге сделал всё на CURL. А вот позавчера надо было замутить простенький прокси-сервер и опять столкнулся с этой проблемой. Начал гуглить по названиям http заголовков, которые шлёт сервер, и вот на это вышел. Ты наверно тоже читаешь справку по HTTP/1.0, как и я раньше.
(Offline)
 
Ответить с цитированием
Старый 26.09.2010, 16:52   #10
DeeJex
Разработчик
 
Аватар для DeeJex
 
Регистрация: 24.02.2010
Адрес: Новороссийск
Сообщений: 485
Написано 112 полезных сообщений
(для 329 пользователей)
Ответ: Скачка файла

http://forum.boolean.name/showthread.php?t=12424
Net_SaveFile
И никаких проблем/ошибок/битых файлов.
__________________
299 792 458
(Offline)
 
Ответить с цитированием
Старый 26.09.2010, 21:15   #11
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Скачка файла

Сообщение от Phantom Посмотреть сообщение
Я же выше написал. Сервер может отдавать контент чунками, это фича протокола HTTP/1.1. Отправляется заголовок:
Transfer-Encodingchunked 
Почитать об этом можно в википедии для начала, а дальше гугл :
http://ru.wikipedia.org/wiki/Chunked_transfer_encoding
см. код
Case "transfer-encoding"
					If Lower(l2$) = "chunked" Then chunk = True
Сообщение от DeeJex Посмотреть сообщение
http://forum.boolean.name/showthread.php?t=12424
Net_SaveFile
И никаких проблем/ошибок/битых файлов.
. lib "blitz_net.dll"

Net_Init%()
Net_SaveFile%(url$,file$)
Net_GetHeader$(url$)
Net_GetUrlPart$(url$,par%,parc$)
Net_SetUrlPart$(url$,par%,parc$,val$)
Net_UrlEncode$(url$)
Net_UrlDecode$(url$)
я вообще планировал в память файл заливать,а не винт дрючить.
Но тем, у кого были другие цели - может подойти
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Phantom (26.09.2010)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расширение файла impersonalis Полезные функции 19 28.02.2015 15:21
Структура Dll файла AndruXa Болтовня 3 09.12.2007 17:06
чтение из файла SubZer0 Программирование 1 31.07.2007 23:21
Считывание из файла nJunk 3D-программирование 12 19.04.2007 15:44
Чтение из файла Gnom 3D-программирование 2 15.03.2006 01:40


Часовой пояс GMT +4, время: 14:56.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com