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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> "сетевая Грабилка", делов то... :) 
:(
    Опции темы
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   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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