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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите понять код копирования. Нужно описание 
V
    Опции темы
NEO_7
Дата 4.11.2006, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здрасте может мой вопрос покажется вам глупым но я только начал программировать.
Вопрос вот какой даже скорее не вопрос а просьба вот нашел пару методов копирование но просто не могу разобраться что к чему напишите пожалуйста с описанием и желательно примером где что надо вписать.
Я за место SourceFileName вписываю имя диска откуда копировать он мне ошибку пишет при компиляции имя файла тоже ошибку, Что и как там надо написать,,,,


Копирование методом потока 

Код

Procedure FileCopy(Const SourceFileName, TargetFileName: String); 
Var 
  S,T   : TFileStream; 
Begin 
 S := TFileStream.Create(sourcefilename, fmOpenRead ); 
 try 
  T := TFileStream.Create(targetfilename, fmOpenWrite or fmCreate); 
  try 
    T.CopyFrom(S, S.Size ) ; 
    FileSetDate(T.Handle, FileGetDate(S.Handle)); 
  finally 
   T.Free; 
  end; 
 finally 
  S.Free; 
 end; 
end; 


Копирование методом LZExpand 

Код

uses LZExpand; 
procedure CopyFile(FromFileName, ToFileName  : string); 
var 
  FromFile, ToFile: File; 
begin 
  AssignFile(FromFile, FromFileName); 
  AssignFile(ToFile, ToFileName); 
  Reset(FromFile); 
  try 
   Rewrite(ToFile); 
   try 
    if LZCopy(TFileRec(FromFile).Handle, TFileRec(ToFile).Handle)<0 then 
     raise Exception.Create('Error using LZCopy') 
   finally 
    CloseFile(ToFile); 
   end; 
  finally 
   CloseFile(FromFile); 
  end; 
end;



Это сообщение отредактировал(а) Snowy - 4.11.2006, 00:29
PM MAIL   Вверх
Snowy
Дата 4.11.2006, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Цитата(NEO_7 @  4.11.2006,  01:07 Найти цитируемый пост)
Я за место SourceFileName вписываю имя диска откуда копировать
А нужно имя файла.
PM MAIL   Вверх
bagira
Дата 4.11.2006, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2858
Регистрация: 25.10.2003
Где: в тайге Уральских гор

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



Цитата(Snowy @  4.11.2006,  02:30 Найти цитируемый пост)
А нужно имя файла.

... полное, вместе с путем smile


--------------------
Сегодня ты не бродил, не искал, не любил - можно сказать - и не жил...
Ф.Х. Дагларджа (Турция)
http://zveriolginovour.ru/
https://vmeste.yandex.ru/zveriolginovour 
PM MAIL WWW ICQ   Вверх
Zlo
Дата 5.11.2006, 00:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Дык он наверное в самой функции пишет пути...
Функцию вставь в код программы сразу после слова
Код

implementation

а по событию кнопки, напиши вызов этой функции, примерно так:

Код

FileCopy('С:\1.txt, 'E:\123.txt');

PM MAIL   Вверх
NEO_7
Дата 5.11.2006, 00:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Напишите пример с русским описание пожалуйста что б понять раз и навсегда как это делать… Конечно если не трудно.

Это сообщение отредактировал(а) NEO_7 - 5.11.2006, 00:58
PM MAIL   Вверх
Matematik
Дата 5.11.2006, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

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



Дык уже ответили, по-русски.
Что не понятно?
PM MAIL WWW ICQ   Вверх
Zero
Дата 5.11.2006, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

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



NEO_7, я надеюсь ты не в функции меняешь заголовок...
Надо именно скопировать твою функцию в редактор после слова  implementation  в том виде в каком она есть у тебя.
а далее положить на форму кнопку, сделать по ней двойной щелчок левой кнопкой мыши, в результате у тебя в редактор добавится обязательная часть кода на событие нажатия кнопки, и в нутрь между begin end добавь строку типа:
Код

FileCopy('С:\111.txt, 'С:\222.txt');

При этом файл 111.txt должен за ранее быть создан срествами Windows, на диске C:
После компиляции и нажатия на кнопку, ты увидешь на диске C: файл с именем 222.txt
PM MAIL ICQ   Вверх
Desperate
Дата 5.11.2006, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Есть такой еще варианты копирования 
1-ый вариант
Код

path:='c:\123.mp3';
 copyfile(pchar('path'),pchar('d:\vasya\'+ExtractFileName(path)),true);
{переменная Path типа String 
ExtractFileName(path) функция возвращает имя файла с расширением}


2-ой вариант
Код

.....
var
  FromF, ToF: file;
  NumRead, NumWritten: Integer;
  Buf: array[1..1024] of Char;
begin
 AssignFile(FromF, path_open);{path_open переменная с полным путем к файлу источнику. Например 'c:\123.mp3'}
    Reset(FromF, 1);
 AssignFile(ToF, path_save);{path_save переменная с полным путем к файлу приемнику. Например 'd:\vasya\music.mp3'}
        Rewrite(ToF, 1);
 repeat
BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
BlockWrite(ToF, Buf, NumRead, NumWritten);
until (NumRead = 0) or (NumWritten <> NumRead);
CloseFile(FromF);
CloseFile(ToF);
......
end;

но учти оба варианта работают если путь к файлу приемника существует т.е. каталоги а сам файл создается в процессе, если каталога не будет какого нибудь случится нехорошо! 
второй вариант в ХР не хочет копировать с CD
ПС:Чтоб скопировать полностью все файлы в подкаталоге или с CD нужно еще дописать процедурку составляющюю полный список файлов в каталоге и подкаталогах

PM MAIL   Вверх
NEO_7
Дата 5.11.2006, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Все спасибо огромное всем что помогли… Просто можно сказать я пару дней делфи занимаюсь поэтому все так сложно и непонятно но разобрался благодаря вам!!!!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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