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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с фаилами 
:(
    Опции темы
chelHide
  Дата 22.4.2006, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 15.3.2006

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



Пацаны, вот хочу сделать пргогу для копирования, удаления и сравния фаилов. Пользуюсь потоком, но 
вот только почему то при копировании одного фаила в директорию, которую я сам выбрал, но  мне Компилятор выдаёт такую вещь:
 картинку с ошибкой можно посмотреть здесь: 
http://stastankist.ucoz.ru/111.bmp
 
{-------Код----------}
Код

Procedure FileCopy(SourceFileName, TargetFileName:TFileName;Gauge:TGauge);
Var
  S,T   : TFileStream;
  SizeOfFiles:Integer;
  SplitFileName:String;
  i:Word;
  Begin
Gauge.Progress:=0;
 S := TFileStream.Create(sourcefilename,fmOpenRead or fmShareDenyNone);
 try
 SplitFileName := ChangeFileExt(SourceFileName, '.'+ FormatFloat('stas', i));
   T := TFileStream.Create(targetfilename, fmCreate or fmShareExclusive);
   try
   if s.Size - s.Position < SizeofFiles then
          SizeofFiles := s.Size - s.Position;
    T.CopyFrom(S, S.Size );
    Gauge.Progress := Round((s.Position / s.Size) * 100);
   finally
   T.Free;
  end;
 finally
  S.Free; 
 end; 
end; 


{-------}
Помогите чем сможите, пацаны! Если можно, то глянте код! smile   

Это сообщение отредактировал(а) Girder - 22.4.2006, 12:14
PM MAIL WWW   Вверх
x77
Дата 22.4.2006, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



могу ошибаться, но по-моему, ты просто не являешься администратором на своей машине.  


--------------------
Я никогда не сопротивлялся искушению, поскольку узнал: что мне
не нравится, то меня не искушает.
© Джордж Бернард Шоу (Ирландия)
PM MAIL ICQ   Вверх
vood
Дата 22.4.2006, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



а чем тебе шеллапи не нревиться?
















З.Ы. Я вернулся!! 


--------------------
Вы все еще курите ? Тогда мы идем к вам
 
PM MAIL ICQ   Вверх
ne0n
Дата 22.4.2006, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


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

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



Е-е-е, а может CopyFile подойдет, зачем лишний раз мучиться? 
PM MAIL ICQ   Вверх
Sunvas
Дата 23.4.2006, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


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

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



Может просто эту директорию нужно создавать? 


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
chelHide
Дата 24.4.2006, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 15.3.2006

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



vood
 А я разве сказал, что я имею что-то против ShellApi имею? 
Мне может напротив этот модуль очень даже нравится!
 smile  
PM MAIL WWW   Вверх
vood
Дата 29.4.2006, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ну так пользуйся ими они виндовские и ошибок быть недолжно

Добавлено @ 09:45 
В DRKB про них написанно 


--------------------
Вы все еще курите ? Тогда мы идем к вам
 
PM MAIL ICQ   Вверх
chelHide
Дата 30.4.2006, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 15.3.2006

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



А кто-нибудь знает как можмоно отобразить процесс копирования не с потоковым копированием, а с обичным ??? 
Например 
Код

var f:File
Assign(f,'name.txt')
Rewrite(f);
...
  

Это сообщение отредактировал(а) chelHide - 30.4.2006, 09:28
PM MAIL WWW   Вверх
Yanis
Дата 30.4.2006, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(chelHide @  30.4.2006,  09:27 Найти цитируемый пост)
А кто-нибудь знает как можмоно отобразить процесс копирования не с потоковым копированием, а с обичным ??? 

Скорее всего ты копируешь файл сначала считывая часть в буфер, а потом записываешь этот буфер в другой файл. Так вот в процентном соотношении весь объём файла будет 100%; размер буфера в процентах: 
Цитата

(размер буфера в байтах * 100) / размер файла в байтах
При каждой итерации цикла нужно прибавлять к какой-либо переменной размер буфера в процентах, т.к. теоретически уже известно кол-во итераций копирования. Значение переменной и будет процентное отображение состояния копирования.

Ещё один немного изменённый способ. Размер всего файла у тебя 100%, размер файла в который копируешь у тебя и есть текущее положение вещей. Просто нужно высчитать это в процентном отношению к объёму оригинального файла. 
Цитата

сколько скопировано в процентах = (размер скопированого файла в байтах * 100) / размер оригинального файла в байтах

В случае с "паскалевским копированием" при перезаписи файла вторым параметром указываешь, что за одну запись стоит принимать 1 байт файла:
Код

  rewrite(f, 1);
, и теперь размер всего файла в байтах можно получить так:
Код

var
  nFileSize: Integer;
begin
  { ... }
 nFileSize := FileSize(f);
  { ... }
end;


P. S. для тех кто в танке, так и быть напишу код при надобности smile 


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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