Приветствую Вас, Elvis! WinAPI функция GetFileSizeEx(HANDLE hFile, PLARGE_INTEGER pliFileSize); Разбираемся: hFile - дескриптор файла, например, получаемый при вызове вункции CreateFile pliFileSize - адрес объединения типа LARGE_INTEGER, которое позволяет ссылаться на 64-х разрядное значение со знаком как на два 32-х разрядных или как на одно 64-х разрядное. Функция возвращает BOOL, стало быть можно проверить результат. Но функция возвращает логический размер файла. Для физического размера файла вызывай GetCompressedFileSize. Описание в MSDn или хелпе по Win32. Можно использовать и GetFileSize вместо GetFileSizeEx Ответ отправлен: 22.10.2002, 13:43 Отправитель: Jadd Отвечает Рыжик
Здравствуйте, Elvis! Чтобы узнать размер файла: procedure TMainForm.Button1Click(Sender: TObject); var f: file of Byte; size: Longint; begin AssignFile(f, FileName); Reset(f); try size := FileSize(f); Edit1.Text:=IntToStr(size); finally CloseFile(f); end; end; Размер файла указан в битах. Если нужно в мегабайтах - разделить на 1024.
Ответ отправлен: 22.10.2002, 12:15 Отправитель: Рыжик Отвечает Pablo
Приветствую Вас, Elvis! Можешь попробовать либо использование TFileStream или обычные функции работы с файлами: 1. TFileStream *f = new TFileStream("file.name",fmOpenRead | fmShareCompat); Edit1->Text = AnsiString(f->Size); delete f; 2. FILE *f = fopen("file.name","r"); int l = 0; if(f) { fseek(f,0L,SEEK_END); l = ftell(f); fclose(f); } Edit1->Text = AnsiString(l); Ответ отправлен: 22.10.2002, 09:07 Отправитель: Pablo Отвечает Idle Sign
Доброе время суток, Elvis! ===== Pro bono publico, no bloody panico! ===== Один из способов: с помощью структуры TSearchRec (см. приложение). В качестве параметра FileName процедуре передается имя файла (с путем соответсвенно). Заранее оговорюсь, что размер будет предоствален в байтах. Чтобы получить размер в Кб нужно sr.Size разделить на 1024... Надеюсь сам догадаешься как получить размер в Мб. ПиС: дели на 1048576.
Приложение: Ответ отправлен: 22.10.2002, 15:39 Отправитель: Idle Sign
Вопрос № 233
Здравствуйте, Господа Программисты!!! Не могли бы Вы подсказать алгоритм рисования огня и если есть реализация на Delphi пожалуйста вышлите мне на e-mail Зарание спасибо
Приветствую Вас, the_white! Я однажды писал огонь, получилось довольно похоже, но под DirectX(использует DelphiX), если надо - напиши(mko@atnet.ru), пришлю. В общем, идея такая: создаешь массив размера огня, нижнюю строчку каждый раз создаешь случайным образом(r := random(128)+128;g := random(r); fire[x,h] := rgb(r,g,0);), а дальше сверху вниз идешь по массиву, считая среднее арифметическое четырех точек - трех нижних соседок и одной верхней. И для реалистичности в 2 случаях из 25 делишь результат на два. Надеюсь, всё понятно ^_^
Приложение: Ответ отправлен: 21.10.2002, 21:56 Отправитель: Necro
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.