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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TFileStream, чтение/запись блоками 
:(
    Опции темы
Monty
  Дата 6.4.2003, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Advanced Lamer
****


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

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



Цитата
var
 FromF, ToF: file;
 NumRead, NumWritten: Integer;
 Buf: array[1..2048] of Char;
begin
 if OpenDialog1.Execute then                               { Display Open dialog box }
 begin
   AssignFile(FromF, OpenDialog1.FileName);
   Reset(FromF, 1); { Record size = 1 }
   if SaveDialog1.Execute then                              { Display Save dialog box}
   begin
     AssignFile(ToF, SaveDialog1.FileName); { Open output file }
     Rewrite(ToF, 1); { Record size = 1 }
     Canvas.TextOut(10, 10, 'Copying ' + IntToStr(FileSize(FromF))
       + ' bytes...');
     repeat
       BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
       BlockWrite(ToF, Buf, NumRead, NumWritten);
     until (NumRead = 0) or (NumWritten <> NumRead);
       CloseFile(FromF);
       CloseFile(ToF);
   end;
 end;
end;


а как мне сделать тоже самое но только с TFileStream confused.gif мне нужно что бы копировалось блоками


--------------------
...
О, вещая моя печаль,
О, тихая моя свобода
И неживого небосвода
Всегда смеющийся хрусталь!
PM MAIL ICQ   Вверх
SmaLL
Дата 7.4.2003, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Адаптированный вариант:
Код
var
FromF, ToF: TFileStream;
NumRead, NumWritten: Integer;
Buf: array[1..2048] of Char;
begin
if OpenDialog1.Execute then  { Display Open dialog box }
begin
  FromF:= TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
  try
    if SaveDialog1.Execute then  { Display Save dialog box}
    begin
      ToF:= TFileStream.Create(SaveDialog1.FileName, fmCreate);
      Canvas.TextOut(10, 10, 'Copying ' + IntToStr(FromF.Size) + ' bytes...');
      try
        repeat
          NumRead:= FromF.Read(Buf, SizeOf(Buf));
          NumWritten:= ToF.Write(Buf, NumRead);
        until (NumRead = 0) or (NumWritten <> NumRead);
      finally
        ToF.Free;
      end;
    end;
  finally
    FromF.Free;
  end;
end;
end;



--------------------
Что ни делается - всЁ к лучшему! SmallWeb
Мой адрес не дом и не улица, мой адрес родной пивзавод!
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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