![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать размер файла
Andrewtitoff © (2008-02-04 17:02:00)Как узнать размер файла, для работы с файлами хочу использовать функции :
_lcreat(PathName: PChar; Attribute: Integer):
_lclose(FileHandle: Integer): Integer;
_lopen(PathName: Char; ReadWrite: Integer): Integer;
_lread(FileHandle: Integer; Buffer: PChar; Bytes: Integer): Word;
_lwrite(FileHandle: Integer; Buffer: PChar; Bytes: Integer): Word;
Так вот как просто скопировать файл т.е.
_lcreat(PathName1,Attribute);
_lcreat(PathName2,Attribute);
как тут узнать сколько байт считывать?, или придется читать по байту пока не возвратится 0?
_lread(FileHandle,Buffer,Bytes);
_lwrite(FileHandle,Buffer,Bytes);
_lclose(FileHandle1);
_lclose(FileHandle1);
ketmar (2008-02-04 18:38:00) [21]>[11] Andrewtitoff©(04.02.08 18:06)
нет, как раз подуматьты забыл…
clickmaker (2008-02-04 18:22:00) [22]
> [10] Andrewtitoff © (04.02.08 18:05)
память кто под buf выделять будет?
Andrewtitoff (2008-02-04 18:06:00) [23]Не ну просто сказали на родных ОСовских лучше , вот я и подумал... =)))
Andrewtitoff (2008-02-04 18:05:00) [24]Чего то я запутался....
А как?, в чем ошибка?, какого типа должен быть Buf?
var
FHandle1 : Integer;
FHandle2 : Integer;
FileSize : integer;
Buf : PChar;
implementation
{$R *.dfm}
procedure CopyF(Name1,Name2 : PAnsiChar);
begin
FHandle1:=_lopen(Name1,0);
FHandle2:=_lcreat(Name2,0);
FileSize := GetFileSize(FHandle1, nil);
If FHandle1 = -1 then showmessage('Error'+Inttostr(IOResult)) else
begin
_lread(FHandle1,Buf,FileSize);
_lwrite(FHandle2,Buf,FileSize);
end;
_lclose(FHandle1);
_lclose(FHandle2);
end;
Сергей М. (2008-02-04 17:37:00) [25]Ну хорошо.
Пусть не я. но кто-то ведь тебе задавал вопрос, почему именно это самое "хочу"
> для работы с файлами хочу использовать функции
> (далее следует сишная солянка-абракадабра)
ты вдруг захотел ?)
Есть же дельфийсий ФайлСтрим, есть кроме него огромнаякуча дельфийских "инструментов" для великолепного по наглядности/удобству/эффективности доступа к файловой подсистеме.
Эта куча чемтебя не удовлетворила ?)
ketmar (2008-02-04 17:35:00) [26]>[2] Andrewtitoff©(04.02.08 17:11)
есть такое соглашение: функции, начинающиеся с подчёркивания — несколько интимны, и лучше их не использовать.
Andrewtitoff (2008-02-04 17:27:00) [27]2 Сергей М.
Пасиба
Ну не ты именно, но вы все там утверждали что это верно что нужно все переделывать через хендлы или стримы..
Сергей М. (2008-02-04 17:19:00) [28]Удалено модератором
clickmaker (2008-02-04 17:18:00) [29]
> [3] Andrewtitoff © (04.02.08 17:13)
> Как нить через хендл можно сделать?...
можно и без хэндла: FindFirstFile
Сергей М. (2008-02-04 17:17:00) [30]
> Как нить через хендл можно сделать?
Можно и "через".
GetFileSize
Get = Получить
File = Файл
Size = Размер
Andrewtitoff (2008-02-04 17:13:00) [31]Как нить через хендл можно сделать?...
Andrewtitoff (2008-02-04 17:11:00) [32]Так в FileSize(f); нужно указывать переменную типа file, а значит assign(f,'xz.txt') и т.д...,
сами же сказали что нужно пользоваться стандартными ОСовскими функциями что бы небыло проблем.... =(((
Сергей М. (2008-02-04 17:05:00) [33]Удалено модератором