![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
многопотовый загрузчик файлов [D7, Win2k, WinXP]
gedd © (2003-08-11 10:51:00)
Кто нибудь знает как сделать многопотовый загрузчик файлов
компоненты idhttp idftp не подходят!
Reindeer Moss Eater (2003-08-13 13:28:00) [21]
инди не умеет писать в середину потока
Тебе русским языком сказали, что не Indy пишет туда.
Пишет метод класса конкретного потока, экземпляр которого передан методу Get.
Zelius (2003-08-13 13:26:00) [22]
> Reindeer Moss Eater © (13.08.03 13:22) [33]
это тебе соседи по клетке подсказали?
я давно обошел это ограничение.
Не смотря на нашу базарную ругань, факт остается фактом - инди не умеет писать в середину потока. Можешь брызгать... слюной сколько угодно, но ты это не изменишь. А началось все именно с этого утверждения...
Reindeer Moss Eater (2003-08-13 13:22:00) [23]
Пишет так, как ему нужно, а работает так, как ему не нужно.
Любая шимпанзе в зоопарке уже давно бы догадалась попробовать сделать наоборот.
Reindeer Moss Eater (2003-08-13 13:19:00) [24]
...если я так написал, значит мне это было нужно...
Долго смеялся.
Zelius (2003-08-13 13:16:00) [25]
> Reindeer Moss Eater © (13.08.03 13:10) [29]
нет, ты все таки туповат от природы и ленив к тому же, если до сих пор не залез в исходники и не посмотрел как инди работает с потоком... У меня к тебе больше претензий нет, можешь не отвечать.
Zelius (2003-08-13 13:14:00) [26]
> Е-Моё имя © (13.08.03 13:08) [28]
ну-ну, добро пожаловать в клуб не внимательных... тупиц ( хотя хотелось выразиться крепче), а то Reindeer Moss Eater там одному скушно наверное... если я так написал, значит мне это было нужно... представь себе, что второй кусок скачается первым, не знаю, способен ли ты на это...
Reindeer Moss Eater (2003-08-13 13:10:00) [27]
Внимательный и умный Zelius. Пойми одну простую истину.
Данные в твой файл пишет не Indy.
В твой файл данные пишет метод класса TFileStream.
Перед тобой виноваты разработчики класса TFileStream, а не разработчики Indy.
Попробуй запусти, ты все поймешь... А для интереса, попробуй скачать не 10 Кб, а 10 Гб
Я это делал, делаю, и еще долго буду делать и без твоих любезных предложений.
Е-Моё имя (2003-08-13 13:08:00) [28]
ну ты братец и тупица...
fStream.Position := 0;
не ты ли написал?
Zelius (2003-08-13 13:00:00) [29]
> Reindeer Moss Eater ©
Извини, ты злой и невежливый одновременно, плюс еще и невнимательный, поверь наслово...
А в середину потока как раз инди писать и не умеет, что я и доказал примером. Попробуй запусти, ты все поймешь... А для интереса, попробуй скачать не 10 Кб, а 10 Гб
Reindeer Moss Eater (2003-08-13 12:21:00) [30]
Я злой, но я вежливый по возможности.
$hade (2003-08-13 12:16:00) [31]
наверное все-таки 2е...
только все равно - злой ты какой-то...:-)
Reindeer Moss Eater (2003-08-13 12:00:00) [32]
тем, что инди не умеет писать в середину потока,
Так это Indy не умеет, или маленький ослик не умеет пользоваться Indy?
Reindeer Moss Eater (2003-08-13 11:54:00) [33]
Тебе был дан пример, показывающий, что
Get пишет в ResponseContent с текущей позиции в потоке назначения, ничего в нем не меняя.
Из этого еще не следует, что тебе советовали в разных потоках создавать FileStream на один и тот же файл.
Тебе давали понять, что запись в итоговый файл данных, полученных в разных нитках - это твоя забота, а не разработчиков компонент.
Собирай данные в памяти, и пиши поблочно в свой файл наздоровье, соблюдая нужные смещения.
Вот так-то, молодой человек без хобби.
Zelius (2003-08-13 11:52:00) [34]
> Reindeer Moss Eater © (13.08.03 11:41) [21]
Я написал тот код, который мне нужен. Или ты считаешь, что многопоточная закачка файлов идет последовательно? Значит я не ошибся с написанным сообщением. Ладно, остынь, ты безнадежен, слушать старших, впавших досрочно в старческий маразм, не моё хобби.
Reindeer Moss Eater (2003-08-13 11:41:00) [35]
посмотри в конце размер файла и извинись...
Посмотри на свой код, пойми что ты делаешь, и задумайся над своей способностью понимать советы старших.
Zelius (2003-08-13 11:35:00) [36]
> Reindeer Moss Eater © (13.08.03 10:59) [19]
посмотри в конце размер файла и извинись...
procedure TForm1.Button1Click(Sender: TObject);
var
Msg: string;
fStream: TFileStream;
begin
Msg := "Я самый умный, потому что сам не пробовал, но думаю, что все должно работать так как Я хочу!"#13#10+
"Поэтому могу выпендриваться и раздовать дурацкие советы направо и налево, хотя сам никогда не пробовал так делать!"#13#10;
fStream := TFileStream.Create( "test.txt", fmCreate);
try
fStream.Size := 100000;
fStream.WriteBuffer( Msg[1], Length(Msg));
fStream.Position := 0;
IdHTTP1.Get( " http://www.delphimaster.ru/cgi-bin/forum.pl?n=4", fStream);
finally
fStream.Free;
end;
end;
Reindeer Moss Eater (2003-08-13 10:59:00) [37]
На, не плач. Может тоже что-нибудь увидишь.
var
Msg :string;
fStream :=TFileStream;
begin
Msg:="Я сильно заблуждался насчет библиотеки Indy"#13#10;
fStream:=TFileStream.Create("test.txt",fmOpenWrite);
fStream.WriteBuffer(Msg[1],Length(Msg));
IdHTTP1.Get(" http://www.delphimaster.ru/cgi-bin/forum.pl?n=4",fStream) ;
fStream.Free;
end;
Zelius (2003-08-13 10:53:00) [38]
> Reindeer Moss Eater © (13.08.03 10:29) [17]
конечно, могу тебе объяснить ( хотя уже все и так объяснил, а ты не смог понять), а то ты бедняга смотришь в книгу и видишь фигу, только выеживаться и умеешь...
Reindeer Moss Eater (2003-08-13 10:29:00) [39]
Zelius ©
в отличии от тебя, похоже, я исходный код видел...
Похвально.
Понял в нем что-нибудь?
Zelius (2003-08-13 10:27:00) [40]
> Reindeer Moss Eater © (13.08.03 09:32) [15]
в отличии от тебя, похоже, я исходный код видел...