Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на Delphi

Выпуск № 091
от 25.10.2002, 11:00

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 242
Отправлено ответов: 431
Активность: 178.0 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Jadd
Статус: Профессиональный
Общий рейтинг: 145.67
[Подробней >>]
Рыжик
Статус: Начальный
Общий рейтинг: 118.42
[Подробней >>]
Pablo
Статус: Профессиональный
Общий рейтинг: 127.74
URL: Моя страничка
[Подробней >>]
 
Idle Sign
Статус: Доверительный
Общий рейтинг: 150.87
[Подробней >>]
Necro
Статус: Доверительный
Общий рейтинг: 110.52
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 232. Как я могу узнать размер файла(в MB) и поместить его в Edit1?! Заранее благодарю!!!! ... (ответов: 4)
Вопрос № 233. Здравствуйте, Господа Программисты!!! Не могли бы Вы подсказать алгоритм рисования огня и если есть ... (ответов: 1)

Вопросов: 2, ответов: 5


 Вопрос № 232

Как я могу узнать размер файла(в MB) и поместить его в Edit1?!
Заранее благодарю!!!!



Вопрос отправлен: 21.10.2002, 20:27
Отправитель: Elvis

[Следующий вопрос >>] [Список вопросов]

Отвечает Jadd

Приветствую Вас, 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
Зарание спасибо



Вопрос отправлен: 21.10.2002, 21:39
Отправитель: the_white (the_white@male.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Necro

Приветствую Вас, 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.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (42)
C / C++ (27)
Perl (4)
Delphi (18)
Pascal (25)
Basic / VBA (9)
Java / JavaScript (11)
PHP (7)
MySQL / MSSQL (11)
Пользователю
Windows 95/98/Me (37)
Windows NT/2000/XP (24)
"Железо" (32)
Поиск информации (14)
Администратору
Windows NT/2000/XP (13)
Linux / Unix (12)
Юристу
Гражданское право (11)
Семейное право (8)
Трудовое право (7)
КоАП (8)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное