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

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

Глюки с открытием файла [Delphi]


*Pavel ©   (2004-05-07 16:23:00) 

Использую unit uCRC32;
В нем есть
function  CRC32Stream(FName: String; Count: Integer;
const BufSize: Cardinal = 1024): Cardinal;
Вызываю ее из основной программы
if CRC32Stream(OpenSaveDialog.FileName, FSize) = CRC then label1.Caption := 'ОК';
Вываливается exception '......... Stream read error.......'
в следующем месте (в uCRC32)

function  CRC32Stream(FName: String; Count: Integer;
const BufSize: Cardinal = 1024): Cardinal;
var
N: Cardinal;
Buffer: Pointer;
     source : TFileStream;
begin
     source := TFileStream.Create(FName, fmOpenRead);   // <---вылет тут
     ..................

Самое интересное - все это прекрасно работает в классическом VCL project'e.

Может кто знает в чем траблы ?


SPeller   (2004-05-07 18:51:00) [1]

А если скомпилить проект без замены системных библиотек, ошибка есть?


Gandalf   (2004-05-07 17:52:00) [2]

Это KOL модуль? У нас нет TFileStream...


*Pavel   (2004-05-07 17:46:00) [3]

Вариант с уже открытым файлом не катит по одной причине (повторяюсь): Классический VCL проект работает прекрасно на любой версии Delphi и Windows. Но стоит подрубить этот юнит (uCRC32) к KOL_MCK проекту и вызвать ту самую функцию - возникает exception.


*Pavel   (2004-05-07 17:35:00) [4]

>> Speller

Нет, файл не был открыт, т.к. инструкция
source := TFileStream.Create(FName, fmOpenRead);
стоит первой в этой функции.

Вываливается ошибка на всех абсолютно файлах.
Существуют два вида ошибок: либо "Cannot open file *******.***"
либо "Stream read error", но первая возникает значительно чаще.
Есть у меня предчувствие, что тут причастны следующие юниты:
....\Delphi6\Kol\sysdcu_d6\*.dcu. (судя по инструкции - альтернативная замена делфийским)


SPeller   (2004-05-07 16:54:00) [5]

Может этот файл был открыт до этой функции? Кстати, что говорит ошибка в случаях кроме "иногда" ?


*Pavel   (2004-05-07 16:37:00) [6]

Иногда вываливается в том же месте сообщение:
Vta.exe raised exception class EFOpenError with message 'Cannot open file D:\Vta\test1.exe'. Process stopped. Use step or Run to continue.


Наверх

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