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