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

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

Как определить размер Application.ExeName ??


сергей ©   (2009-10-03 05:03:00) 

Пробовал и так

procedure GetSize(FileName:pchar);
type TSize = Record
 Bait: byte;
end;
var F: File of TSize;
 Size: Integer;
begin
Size:=0;

     AssignFile(F, FileName);
     Reset(F);
     while (not EOF(F)) do
       begin
         Size:=Size+1;
         seek(F, Size);
       end;

Form1.Caption:=IntToStr(Size);
CloseFile(F);
end;


и так

procedure GetSize(FileName:pchar);
var F: TFileStream;
begin
     F:=TFileStream.Create(Filename, fmOpenRead);
     form1.Caption:=IntToStr(F.Size);
     F.Free;
end;

Все равно возникает ошибка чтения... Подскажите как точно определить размер самого себя, без копирования?


Юрий Зотов   (2009-10-03 13:11:00) [1]

> сергей   (03.10.09 05:03)

1. Тип TSize не нужен, можно сразу объявить file of byte.

2. Чтобы определить размер файла, читать его вообще не нужно (тем более, что это ужасно медленный способ). Нужно прочитать не сам файл, а информацию о нем в файловой системе, что гораздо быстрее:

procedure TForm1.FormCreate(Sender: TObject);
var
 SR: TSearchRec;
begin
 if FindFirst(Application.ExeName, faAnyFile, SR) = 0 then
 try
   Caption := IntToStr(SR.Size)
 finally
   FindClose(SR)
 end
end;

Подробности см. в справке по FindFirst.


Жорж   (2009-10-03 10:41:00) [2]


> procedure GetSize(FileName:pchar);


Воистину ужасный код.

см. GetFileSize
или
FindFirst


Семён. А   (2009-10-03 07:54:00) [3]


> а, все.. сам понял) сори)


И что ж ты понял?


сергей   (2009-10-03 06:52:00) [4]

а, все.. сам понял) сори)


Наверх

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