Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.27;
Скачать: CL | DM;

Вниз

Копирование   Найти похожие ветки 

 
Ivolg   (2004-06-10 20:55) [0]

Здрасьте. Как мона копировать файл.Спасисбо!!


 
Apocalepse ©   (2004-06-10 20:57) [1]

Что ты имееш ввиду скопировать? Всмысле чтобы твоя прога копировала файл?


 
Ivolg   (2004-06-10 21:01) [2]

Apocalepse

да


 
Apocalepse ©   (2004-06-10 21:20) [3]

Вот процедуры работы с файлами
ChangeFileExt Изменяет расширение файла FileName на Extension.
DateTimeToFileDate Преобразует значение типа TDateTime в формат DOS для дат и времени, который используют процедуры FileAge, FileGetDate, FileSetDate и поле Time записи TSearchRec, используемое в FindFirst и FindNext.
DeleteFile Удаляет файл FileName, возвращая true в случае успеха.
DiskFree Возвращает свободную область в байтах диска Drive, который задается следующим образом: 0 - текущий диск, 1 - диск A, 2 - диск B, 3 - диск C и т.д. При ошибочном задании Drive возвращается -1.
DiskSize Возвращает размер диска Drive в байтах. Drive задается следующим образом: 0 - текущий диск, 1 - диск A, 2 - диск B, 3 - диск C и т.д. При ошибочном задании Drive возвращается -1.
ExpandFileName Возвращает полный путь и имя файла FileName.
ExpandUNCFileName Возвращает в формате UNC полный путь в сети и имя файла FileName.
ExtractFileDir Возвращает путь к каталогу (включая указание диска), вырезанный из строки с полным именем файла FileName.
ExtractFileDrive Возвращает символы диска, вырезанные из строки с полным именем файла FileName. Если строка записана в формате UNC, то возвращается и путь в сети (сервер)
ExtractFileExt Возвращает символы расширения, вырезанные из строки с полным именем файла FileName.
ExtractFileName( const FileName: string):                     string Возвращает имя файла с расширением, вырезанное из строки с полным именем файла FileName.
ExtractFilePath( const FileName: string):                    string Возвращает путь к каталогу (включая указание диска и слэш перед именем файла), вырезанный из строки с полным именем файла FileName.
FileAge( const FileName: string):                   Integer Возвращает время создания файла FileName.
FileClose(Handle: Integer) Закрывает файл, указанный его дескриптором Handle (см. FileCreate и FileOpen).
FileCreate(const FileName: string):                   Integer Создает новый файл с именем FileName и возвращает его дескриптор.
FileDateToDateTime(      FileDate: Integer):                 TDateTime Преобразует в значение типа TDateTime формат DOS для дат и времени, который используют процедуры FileAge, FileGetDate, FileSetDate и поле Time записи TSearchRec, используемое в FindFirst и FindNext.
FileExists( const FileName: string):                   Boolean Возвращает true, если существует файл FileName.
FileGetAttr( const FileName: string):                   Integer Возвращает атрибуты файла FileName. Наличие тех или иных атрибутов может быть проверено сложением по операции AND возвращенного значения с константами faXXXX (см. режимы доступа к файлам).
FileGetDate(       Handle: Integer):                   Integer Возвращает в формате DOS дату и время создания файла, определенного своим дескриптором Handle (см. FileCreate и FileOpen).
FileOpen(  const FileName: string;  Mode: Integer): Integer Открывает файл FileName в режиме Mode и возвращает дескриптор файла, который можно использовать в процедуре FileClose. Режим Mode можно формировать, комбинируя операцией OR константы fmOpenXXXX и fmShareXXXX(см. режимы доступа к файлам).
FileRead(Handle: Integer;         var Buffer;         Count: Integer):                   Integer Читает из файла, указанного своим дескриптором Handle (см. FileCreate и FileOpen) в Buffer число байтов Count. Возвращает число действительно прочитанных байтов.
FileSearch(    Const Name, DirList:           string): string Ищет файл Name в списке каталогов DirList, записанном в формате DOS для PATH: каталоги, разделенные точками с запятой. Если файл найден - возвращается полный путь к нему, в противном случае - пустая строка.
FileSeek(   Handle,Offset,Origin:                 Integer):                   Integer Устанавливает в открытом файле, указанном дескриптором Handle (см. FileCreate и FileOpen), позицию, определяемую параметром сдвига Offset, отсчитываемым от начала, определяемого значением Origin: 0 - от начала файла, 1 - от текущей позиции, 2 - от конца файла. Возвращает новую позицию в файле или -1 в случае неудачи.
FileSetAttr(  const FileName: string;  Attr: Integer): Integer Задает атрибуты Attr файла FileName. При успешном завершении возвращает 0, в противном случае - код ошибки Windows. При формировании Attr можно складывать по операции OR константы faXXXX (см. режимы доступа к файлам).
FileSetDate(   Handle: Integer;   Age: Integer): Integer Устанавливает Age в качестве даты создания файла, указанного дескриптором Handle (см. FileCreate и FileOpen). Файл должен быть открыт в режиме, допускающем запись. При успешном завершении возвращает 0, в противном случае - код ошибки Windows. Age задается в формате DOS. Это значение можно получить из значения типа TDateTime функцией DateTimeToFileDate.
FileWrite(Handle: Integer;       const Buffer;       Count: Integer):                   Integer Записывает в файл, указанный своим дескриптором Handle (см. FileCreate и FileOpen) из Buffer число байтов Count. Возвращает число действительно записанных байтов.
FindClose(       var F: TSearchRec) Освобождает память, выделенную процедурой FindFirst, и прерывает последовательность поиска процедурами FindFirst и FindNext, использующего запись F типа TSearchRec.
FindFirst(   const Path: string;    Attr: Integer;   var F: TSearchRec):                   Integer Выделяет в памяти необходимые ресурсы для поиска в каталоге и шаблоне Path (например, c:\MyDir\*.*) файлов, удовлетворяющих шаблону и имеющих атрибуты Attr (см. FileSetAttr). При успешном завершении возвращает 0, в противном случае - код ошибки Windows. Результаты поиска заносятся в запись SearchRec. Из полей этой записи можно извлечь результаты: Time: Integer - время создания файла, Size: Integer - его размер, Attr: Integer - его атрибуты, Name - имя файла и некоторые другие.
FindNext(    var F: TSearchRec):                   Integer Продолжает поиск, начатый функцией FindFirst. Если нашелся новый файл, возвращает 0, в противном случае - код ошибки Windows. Результаты поиска заносятся в запись SearchRec (см. FindFirst).

       RenameFile(const OldName, NewName:                string ):                   Boolean Переименовывает файл OldName, давая ему новое имя NewName. При успешном завершении возвращает true.

Многовато наверно :-)


 
Apocalepse ©   (2004-06-10 21:23) [4]

Блин вот про копирование никогда не слыхал :-( Я сам то можно сказать начинающий. Что то ничего на ум не приходит... У тебя хелпа то нет?


 
YurikGL ©   (2004-06-10 21:26) [5]

try
   stream1:=TFileStream.Create(Path1+"begin.xls",fmOpenRead);
   stream2:=TFileStream.Create(Path2+"end.xls",fmCreate);
   stream2.CopyFrom(stream1,stream1.Size);
except
   ShowMessage("Ошибка копирования.");
   err:=true;
end;
   stream1.free;
   stream2.free;


 
GuAV ©   (2004-06-10 21:58) [6]

YurikGL ©   (10.06.04 21:26) [5]
имхо, если вспомнил про try, то делай уже до конца правильно...

stream1:=TFileStream.Create(Path1+"begin.xls",fmOpenRead);
try
 stream2:=TFileStream.Create(Path2+"end.xls",fmCreate);
 try
   try
     stream2.CopyFrom(stream1,stream1.Size);
   except
     ShowMessage("Ошибка копирования.");
     err:=true;
   end;
 finally
   stream2.free;
 end;
finally
 stream1.free;
end;


 
YurikGL ©   (2004-06-10 22:31) [7]


> GuAV ©   (10.06.04 21:58) [6]

Круто...  В смысле это на самом деле так делать надо? В чем тогда отличие от [5]?


 
Гаврила ©   (2004-06-10 22:33) [8]

А чем вас, собственно, функция CopyFile не устроила ?
или я чего-то не понял?


 
YurikGL ©   (2004-06-10 22:34) [9]


> Гаврила ©   (10.06.04 22:33) [8]

Не ищем легких путей.


 
Profi ©   (2004-06-10 23:21) [10]

Сам писал как-то компоненту, используя нетипизированные файлы. Могу кинуть на мыло!


 
Palladin ©   (2004-06-11 00:57) [11]

Надо было COM объект написать... или сервер автоматизации...


 
GuAV ©   (2004-06-11 01:10) [12]


> Круто...  В смысле это на самом деле так делать надо? В
> чем тогда отличие от [5]?

Ситуация:
stream2:=TFileStream.Create(Path2+"end.xls",fmCreate);
raised EFCreateError - поток ес-сно не создан.
А потом stream2.free; - это уже AV будет. А AV - это плохо.
Я всегда в таких случаях try... finally пишу, не думая надо/не надо.


 
GuAV ©   (2004-06-11 01:18) [13]

А вот и пример AV
procedure TForm1.FormCreate(Sender: TObject);
var
 stream1,stream2: tfilestream;
 Path1,Path2: string;
 err: boolean;
begin
 stream1:=TFileStream(Random(MaxInt)); //Нормальная ситуация
 stream2:=TFileStream(Random(MaxInt)); //В стеке м.б. что угодно
 err:=false;
 // path1 и path2 пустые. в текущем кат файлов нет.
 // поэтому TFileStream.Create будет ошибка
try
  stream1:=TFileStream.Create(Path1+"begin.xls",fmOpenRead);
  stream2:=TFileStream.Create(Path2+"end.xls",fmCreate);
  stream2.CopyFrom(stream1,stream1.Size);
except
  ShowMessage("Ошибка копирования.");
  err:=true;
end;
  stream1.free;
  stream2.free;
end;


 
nikkie ©   (2004-06-11 01:34) [14]

>Надо было COM объект написать... или сервер автоматизации...
веб-сервис :))


 
GuAV ©   (2004-06-11 02:21) [15]


> Как мона копировать файл.

В потрепаться подскажут компонеент ;-)



Страницы: 1 вся ветка

Текущий архив: 2004.06.27;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.032 c
14-1086469407
KilkennyCat
2004-06-06 01:03
2004.06.27
Конкурс: Стих паскальный. Приз - Токай Ассу 3 пут. 1996 года


14-1086361745
Jeer
2004-06-04 19:09
2004.06.27
Терракт в Самаре


1-1086954047
DimonNew
2004-06-11 15:40
2004.06.27
TListView и CheckBox с запоминанием


3-1086069084
ORMADA
2004-06-01 09:51
2004.06.27
LoockUp поля


1-1086850034
Konstantin
2004-06-10 10:47
2004.06.27
Помогите пожалуйста с Excel, - <invalid variant operation>