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

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

Размер [D6, D7, WinXP]


Ivolg ©   (2004-07-08 20:33:00) 

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


KilkennyCat   (2004-07-08 22:56:00) [1]


> Palladin ©   (08.07.04 22:54) [17]


вообще-то, тема кислотно-щелочного баланса у файлов - актуальна.
Знал бы, что потом за оффтоп не удалят - расписал бы :)


Palladin   (2004-07-08 22:54:00) [2]

Может кислотно-щелочной баланс?


KilkennyCat   (2004-07-08 22:51:00) [3]


> Fay ©   (08.07.04 22:48) [15]


Это имелось в виду, что мнение о Р и Н уже есть, сложено и аксиомно... но можно послушать и чужое :)


Fay   (2004-07-08 22:48:00) [4]

2Ivolg   (08.07.04 20:54) [5]

> ИМХО. А что такое H и P?

Вы как-то не очень ясно выразили своё скромное мнение. Нельзя ли подробнее его изложить?


Palladin   (2004-07-08 22:25:00) [5]

Я, кстати, хотел это сделать, пройтись обратно по массиву, опираясь на мысль, что слон от хвоста до хобота пять метров, а от хобота до хвоста три, но подумал что и так маразма через чур :))


KilkennyCat   (2004-07-08 22:23:00) [6]


> Palladin ©   (08.07.04 22:13) [12]


я бы добавил проверку. раз есть массив данных (файла), то можно прогнать его еще раз, чтобы убедиться, что все верно считано, вдруг, пропустили что? А чтоб проверка была быстрее, то ее лучше делать в памяти. для этого создадим еще один массив...


Palladin   (2004-07-08 22:13:00) [7]

фу блин.. пиво расслабляетъ...
 try
  setlength(l,length(l)+1);
 except
  on EOutOfMemory do ShowMessage('Нехватает памяти для определения размера файла');
 end;


Palladin   (2004-07-08 22:11:00) [8]

Фигня все это...

Function DummyProger_GetFileSizeEx(филенаме:стринг):int64;
var
f:file of byte;
l:array of byte;
i:integer;
begin
l:=nil;
assignfile(f,филенаме); reset(f);
while not eof(f) do
 begin
  try
  except
   on EOutOfMemory do ShowMessage('Нехватает памяти для определения размера файла');
  end;
  setlength(l,length(l)+1);
  read(f,l[high(l)]);
 end;
closefile(f);
result:=0;
for i:=0 to high(l) do result:=result+1;
end;


KilkennyCat   (2004-07-08 22:05:00) [9]


> Fay ©   (08.07.04 21:19) [9]


черт, а я думал, я первый придумал... :) придется в своих программах не использовать, а то скажут, что плагиат :))


Fay   (2004-07-08 21:19:00) [10]

2KilkennyCat ©   (08.07.04 21:06) [8]
Я видел подобные вещи в рабочих программах. 8) Не перевелись ещё маньяки...


KilkennyCat   (2004-07-08 21:06:00) [11]


> Palladin ©   (08.07.04 20:47) [3]


Зачем же так... мона ведь и пример :)

var
 f : File of byte;
 b : byte;
 i : int64;
begin;
 assignfile(f, 'imya_fayla');
 reset(f);
 i := 0;
 while not EOF(f) do begin
   read(f, b);
   inc(i);
 end;
 closefile(f);
 ShowMessage('Razmer = ' + inttostr(i));
end;

можно оптимизировать...


Fay   (2004-07-08 21:05:00) [12]


> срашшая

!!! 8)


Fay   (2004-07-08 21:03:00) [13]

дескриптор файла и указатель на DWORD, в котором срашшая часть размера файла. p может быть равен nil. Если работаешь с файлами > 4Gb юзай GetFileSizeEx.

Удачи.


Ivolg   (2004-07-08 20:54:00) [14]

Fay

ИМХО. А что такое H и P?


Fay   (2004-07-08 20:48:00) [15]

Size := GetFileSize(h, p);
8)


Palladin   (2004-07-08 20:47:00) [16]

Удалено модератором: Отборнейший мат.


Ivolg   (2004-07-08 20:46:00) [17]

А пример мона!!!!!!!! ПЛИЗЗЗ!!!!!!!!


Palladin   (2004-07-08 20:34:00) [18]

GetFileSize, FileSizeByName, FileSize как ни странно...


Наверх

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