Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> "сетевая Грабилка", делов то... :) 
:(
    Опции темы
DonPager
  Дата 19.6.2003, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Колдырь
**


Профиль
Группа: Участник
Сообщений: 327
Регистрация: 28.3.2003
Где: Воронеж

Репутация: нет
Всего: 2



Прости мне конечно мою лень....
просто наверняка уже кто- то занимался этим вопросом.... и может подсказать
Итак для грабилки файлов нужно реализовать:
1)возможность докачки файла... (самое важное и я не знаю как sad.gif )
2) создать табличку в которой вместо строк:
кнопка, флажок,поле, поле,прогресбарчик,поле....
(я знал но забыл....)
подскажите....


--------------------
кодер + лодырь = колдырь
PM MAIL ICQ Skype GTalk   Вверх
dm9
Дата 19.6.2003, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

Репутация: 6
Всего: 137



По второму вопросу: сделай компонент, в основе которого - Panel или ScrollBox. Положи на него нужные тебе вещи - прогрессбары, эдиты, чекбоксы и прочее. Затем создавай такие компоненты, запихивай, например, в динамический массив, располагй один под другим, и все будет ОК. Я похожее когда-то делал.
PM MAIL ICQ   Вверх
SmaLL
Дата 20.6.2003, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 557
Регистрация: 17.12.2002
Где: Voronezh

Репутация: 1
Всего: 2



Грабилка файлов из локальной сети или из инета?


--------------------
Что ни делается - всЁ к лучшему! SmallWeb
Мой адрес не дом и не улица, мой адрес родной пивзавод!
PM MAIL WWW ICQ   Вверх
altarasjuk
Дата 20.6.2003, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 7.5.2003
Где: Харьков

Репутация: 1
Всего: 1



Цитата
По второму вопросу: сделай компонент, в основе которого - Panel или ScrollBox. Положи на него нужные тебе вещи - прогрессбары, эдиты, чекбоксы и прочее. Затем создавай такие компоненты, запихивай, например, в динамический массив, располагй один под другим, и все будет ОК. Я похожее когда-то делал.
Ну ты и садист....
Я щас делаю примерно такое же, только без прогрессбара. Вообще это всё можно найти уже готовым, если кто знает где, то скажите, плиз. А я делаю так: Беру обычный стринг грид и в его ячейках рисую то, что мне надо(кнопочки и чекбоксы) ну и прогресс там реализовать думаю будет не сложно.


--------------------
Правда - изобретение маньяков: колет глаза и режет уши.
PM MAIL ICQ   Вверх
dm9
Дата 20.6.2003, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

Репутация: 6
Всего: 137



Хотелось бы спросить, что значит "рисую"? Просто сам обрабатываешь OnDrawCell и рисуешь ручками кнопки и чекбоксы? Если так, то экономия памяти налицо... но и гораздо сложнее.
PM MAIL ICQ   Вверх
altarasjuk
Дата 20.6.2003, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 7.5.2003
Где: Харьков

Репутация: 1
Всего: 1



Цитата
Просто сам обрабатываешь OnDrawCell и рисуешь ручками кнопки и чекбоксы? Если так, то экономия памяти налицо... но и гораздо сложнее.
Ага карандашом на мониторе.... biggrin.gif А если серьёзно, то некоторые вещи (например все кнопки - картинки) загнал в один графический вайл, и потом рисую их Canvas.CopyRect, а некоторые и руками: результат налицо - если много дескрипторов на графику - на 98 появляется экран смерти(там где предлагают разместить твою рекламу smile.gif ).... А так получаем один единственный дескриптор на всё приложение (я и другую графику так рисовал.....). И Дядя Билли может спать спокойно - 98 работает. А вот под 2000|XP такой проблемы нет.

Это сообщение отредактировал(а) altarasjuk - 20.6.2003, 18:23


--------------------
Правда - изобретение маньяков: колет глаза и режет уши.
PM MAIL ICQ   Вверх
DonPager
Дата 21.6.2003, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Колдырь
**


Профиль
Группа: Участник
Сообщений: 327
Регистрация: 28.3.2003
Где: Воронеж

Репутация: нет
Всего: 2



Цитата
Я щас делаю примерно такое же, только без прогрессбара. Вообще это всё можно найти уже готовым, если кто знает где, то скажите, плиз. А я делаю так: Беру обычный стринг грид и в его ячейках рисую то, что мне надо(кнопочки и чекбоксы) ну и прогресс там реализовать думаю будет не сложно.

так немного не красиво получается... приходится два раза таб нажимать...да и прогресы обновлять каждый раз надо... лажечка получается....
2 Small
Цитата
Грабилка файлов из локальной сети или из инета?

из локалки....

Хех, вот вы и наказали меня за размещение 2х вопросов....
...ответили на тот, который меня меньше интерисовал...
Самое главное щас для меня реализовать докачку...


--------------------
кодер + лодырь = колдырь
PM MAIL ICQ Skype GTalk   Вверх
altarasjuk
Дата 21.6.2003, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 7.5.2003
Где: Харьков

Репутация: 1
Всего: 1



Цитата
Самое главное щас для меня реализовать докачку...
по http протоколу?


--------------------
Правда - изобретение маньяков: колет глаза и режет уши.
PM MAIL ICQ   Вверх
Mikel
Дата 21.6.2003, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: 1
Всего: 2



Можно конечно самому написать используя WinInet, но и можно скачать JVCL- там есть такой компонент


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
DonPager
Дата 21.6.2003, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Колдырь
**


Профиль
Группа: Участник
Сообщений: 327
Регистрация: 28.3.2003
Где: Воронеж

Репутация: нет
Всего: 2



Цитата
по http протоколу?

по полной тсп/ип (ЛОКАЛКА!!!) само собой это будет работать и на фтп и на нттр и т.д..
2Mikel
а стандартными средствами никак не получится?



--------------------
кодер + лодырь = колдырь
PM MAIL ICQ Skype GTalk   Вверх
altarasjuk
Дата 21.6.2003, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 7.5.2003
Где: Харьков

Репутация: 1
Всего: 1



ну если по локалке, то очень просто начинаешь читать файл с нужного байта.
А если по http, то так не получится, надо почитать доку, не все сервера это поддерживают, для http если я не ошибаюсь при запросе в стриме надо передавать байт с которого начинать читать, но опять же скажу надо почитать доку.
И кстати если не секрет, то зачем докачка по локалу?


--------------------
Правда - изобретение маньяков: колет глаза и режет уши.
PM MAIL ICQ   Вверх
DonPager
Дата 21.6.2003, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Колдырь
**


Профиль
Группа: Участник
Сообщений: 327
Регистрация: 28.3.2003
Где: Воронеж

Репутация: нет
Всего: 2



Цитата
И кстати если не секрет, то зачем докачка по локалу?

допустим хочешь ты фильму перекачать , качаешь.... а у етого гада вдруг на последнем проценте пробки выбивает или ещё что....
а по поводу открываешь , читаешь....
почуть поподробней....
я делаю так:
открываю файл , читаю его размер , запоминаю...начинаю читать по биту

создаю файл, пишу в него по биту и считаю..... и запоминаю....
.... ну и т.д...
проблема с автоматическим пуском докачки ......вешает сеть...



--------------------
кодер + лодырь = колдырь
PM MAIL ICQ Skype GTalk   Вверх
DonPager
Дата 21.6.2003, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Колдырь
**


Профиль
Группа: Участник
Сообщений: 327
Регистрация: 28.3.2003
Где: Воронеж

Репутация: нет
Всего: 2



smile.gif только што решил проблему...
пускаю ачала пинги....


--------------------
кодер + лодырь = колдырь
PM MAIL ICQ Skype GTalk   Вверх
Mikel
Дата 22.6.2003, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: 1
Всего: 2



Я отдал статью на сайт по WinInet. Как опубликуют, так дам ссылку. Там есть пример закачки файла.


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
altarasjuk
Дата 23.6.2003, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 7.5.2003
Где: Харьков

Репутация: 1
Всего: 1



Цитата
открываю файл , читаю его размер , запоминаю...начинаю читать по биту
не по биту а по байту


--------------------
Правда - изобретение маньяков: колет глаза и режет уши.
PM MAIL ICQ   Вверх
DonPager
Дата 24.6.2003, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Колдырь
**


Профиль
Группа: Участник
Сообщений: 327
Регистрация: 28.3.2003
Где: Воронеж

Репутация: нет
Всего: 2



Цитата
не по биту а по байту
smile.gif НУ ДА
.... только вот одна проблемка с этим sad.gif - больше 4б за раз не получается передавть....
а так ооооооочень медленно...


--------------------
кодер + лодырь = колдырь
PM MAIL ICQ Skype GTalk   Вверх
altarasjuk
Дата 24.6.2003, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 7.5.2003
Где: Харьков

Репутация: 1
Всего: 1



>больше 4б за раз не получается передавть....
ПОЧЕМУconfused.gifconfused.gifconfused.gif?
ИМХО, нужно это дело буфферизировать.
Смотри пример:
Код

procedure TCoreBackup.Execute;
var
 readlen: Integer;
 inf: file;
 outf: file;
 buffer: array[1..131072] of Char;
begin
 try
   FilePos:= 0;
   AssignFile(inf,fSourceFileName);
   Reset(inf,1);
   AssignFile(outf,fDestignationFileName);
   Rewrite(outf,1);
   repeat
     BlockRead(inf, buffer, 131072, readlen);
     BlockWrite(outf, buffer, readlen);
     FilePos:= FilePos+readlen;
     if Self.Terminated then begin
       CloseFile(inf);
       CloseFile(outf);
       try
         if FileExists(fDestignationFileName) then
           DeleteFile(fDestignationFileName);
       finally
         Synchronize(SyncRaiseEventEnd);
         Self.Suspend;
       end;
       Exit;
     end;
   until readlen=0;
   CloseFile(inf);
   CloseFile(outf);
   Synchronize(SyncRaiseEventEnd);
 except
   Synchronize(SyncRaiseEventEnd);
 end;
end;



--------------------
Правда - изобретение маньяков: колет глаза и режет уши.
PM MAIL ICQ   Вверх
DonPager
Дата 24.6.2003, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Колдырь
**


Профиль
Группа: Участник
Сообщений: 327
Регистрация: 28.3.2003
Где: Воронеж

Репутация: нет
Всего: 2



Я тоже через буфер делаю... только что-то не могу его больше 4х байт сделать...
[CODE]var
Src, Dest : TFileStream;
TMP: TMemoryStream;
P :Int64;
cnt : Int64;

begin
STOP := false;
Src := TFileStream.Create(DataFileNew[CntDownload-1].InFile,fmOpenRead);
Dest := TFileStream.Create(DataFileNew[CntDownload-1].OutFile,fmOpenWrite);
ProgressBar1.Max := DataFileNew[CntDownload-1].FileSize;
Tmp := TMemoryStream.Create;
cnt := DataFileNew[CntDownload-1].Loaded;
P := Src.Seek(cnt,soFromBeginning);
Src.Position := P;
Dest.Position := P;

try
while (cnt <= DataFileNew[CntDownload-1].FileSize)and(not STOP) do
begin
Dest.Write(TMP,Src.Read(TMP,4));
//ProgressBar1.Position := cnt;
Memo1.Lines.Add(IntToStr(cnt));
Inc(cnt,4);
if cnt > DataFileNew[CntDownload-1].FileSize then
cnt := DataFileNew[CntDownload-1].FileSize;
Application.ProcessMessages;
end;
finally
DataFileNew[CntDownload-1].Loaded := cnt;
Tmp.Free;
Src.Free;
Dest.Free;
end;
end;[CODE]



--------------------
кодер + лодырь = колдырь
PM MAIL ICQ Skype GTalk   Вверх
altarasjuk
Дата 24.6.2003, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 7.5.2003
Где: Харьков

Репутация: 1
Всего: 1



Нафига ты такие сложности написал ? Возьми тот исходник, щють-щють подкорректируй, тебе там собственно только на if Self.Terminated then begin надо чёто менять и юзай на здоровье и не парся. Там ты чё-то такого навоял, что глаз режет. И кстати, я б тебе советовал почитать про рефакторинг. Тогда и код будет легче писать. smile.gif


--------------------
Правда - изобретение маньяков: колет глаза и режет уши.
PM MAIL ICQ   Вверх
DonPager
Дата 25.6.2003, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Колдырь
**


Профиль
Группа: Участник
Сообщений: 327
Регистрация: 28.3.2003
Где: Воронеж

Репутация: нет
Всего: 2



Цитата
Нафига ты такие сложности написал ?

сам по себе то кодик маленький...
Код
Src := TFileStream.Create(InFileName,fmOpenRead);
Dest := TFileStream.Create(OutFileName,fmOpenWrite);
Tmp := TMemoryStream.Create;
while (cnt < InFilesize) do
begin
Dest.Write(TMP, Src.Read(TMP,4));
Inc(cnt,4);
end;

просто он из проекта выдернут ....
и никаких сложностей... smile.gif кроме того что не работает..


--------------------
кодер + лодырь = колдырь
PM MAIL ICQ Skype GTalk   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0698 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.