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

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

Отключение Exception: Stream.LoadFromFile(FileName); [D7, Win95/98, WinXP]


Leaner ©   (2004-09-25 17:39:00) 

Подскажите, пожалуйста, каую директиву компилятора надо временно
изменить ( не в свойствах проекта ),
чтобы при отладке  Stream.LoadFromFile(FileName);
не давал исключения ?
Спасибо.


Leaner   (2004-09-25 18:36:00) [1]

Спасибо !


Palladin   (2004-09-25 18:31:00) [2]


> FileSize, GetFileSize, FileSizeByName

Я уже перечислил функции предназначеные именно для этого...
FileSize и FileSizeByName используют GetFileSize из WinAPI, причем FileSizeByName функция от третьих разработчиков... Какой воспользоватся? Зависит от ситуации... если работать с файлами через WinAPI то соответственно и использовать GetFileSize, работая с функциями из System, соответственно использовать FileSize...


Leaner   (2004-09-25 18:26:00) [3]

А какой способ Вы порекомендуете ?


Palladin   (2004-09-25 18:23:00) [4]

Даже невооруженным взглядом, следуя простой логике, понятно что чтобы узнать размеры всех файлов в директории тебе нужно их все последовательно позагружать в память... и это один из самых неоптимальных способов, второй после способа: читать по байту из файла и прибавлять к переменной по единице... начинающий то понятно, но голова то на плечах должна быть...


Leaner   (2004-09-25 18:19:00) [5]

Я начинающий. Вот и пытаюсь сравнивать разные способы.


Palladin   (2004-09-25 18:15:00) [6]

с ума сойти, а FileSize, GetFileSize, FileSizeByName кому даны? тоесть что бы узнать размер 4 гигабайтного файла ты собрался его весь грузить в память? оригинальное решение...


Leaner   (2004-09-25 18:13:00) [7]

Эта процедура будет очень много раз запрашиваться.
Надо подобрать самый быстрый алгоритм полученя
размера файла.
Вот я и сравниваю разные


Palladin   (2004-09-25 18:05:00) [8]

1 Не понял смысла функции...
2 Чем тебе лишние проверки не угодили?

function Get_FileSizeStream(const FName:string;Ms:TMemoryStream):Int64;
begin
If Not FileExists(FName) Then Result:=-1 Else
try
 Ms.LoadFromFile(FName);
 Result:=Ms.Size;
except
 Result:=-1;
end;
End;

Религия не позволяет?


Leaner   (2004-09-25 18:02:00) [9]

>Проверить на существование прежде чем делать LoadFromFile...
Хотелось бы, не делая лишних проверок.
function Get_FileSizeStream(const FName:string;Ms:TMemoryStream):Int64;
begin
try
 Ms.LoadFromFile(FName);
 Result:=Ms.Size;
except
 Result:=-1;
end;
end;


Palladin   (2004-09-25 17:54:00) [10]

Проверить на существование прежде чем делать LoadFromFile...


Leaner   (2004-09-25 17:52:00) [11]

>Какого исключения? Они разные могут возникнуть...
Не найден файл.


Palladin   (2004-09-25 17:42:00) [12]

Какого исключения? Они разные могут возникнуть...


Наверх

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