Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать размер файла


Страницы:   1 2

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]

Удалено модератором


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо