Форум: "Основная";
Текущий архив: 2004.06.27;
Скачать: [xml.tar.bz2];
ВнизКопирование Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.063 c