![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Размер [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 как ни странно...