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

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

Ошибки с Tstream


Max ©   (2012-01-30 23:13:00) 

stream1 := tFileStream.Create('1.csv',fmOpenRead  or fmShareDenyNone);
stream1.Seek(-35,soEnd);
stream1.Read(TempStr1,11);
Label1.Caption:=TempStr1+'/';
Stream1.Free;
stream1.Create('2.csv',fmOpenRead  or fmShareDenyNone);
stream1.Seek(-35,soEnd);
stream1.Read(TempStr2,11);
Label21.Caption:=TempStr2+'/';
Stream1.Free;


возникает ошибка чтения...почему?


Ega23   (2012-01-31 12:56:00) [1]


> Этого я не заказывал.


Если первый конструктор отработает, то утечка в любом случае будет.


Германн   (2012-01-31 12:51:00) [2]


> Ega23 ©   (31.01.12 08:41) [5]
>
>
> > Обоснуй. :)
>
>
> ...
> 2. Эмулируем ошибку после stream1.free;

Этого я не заказывал.


Ega23   (2012-01-31 08:41:00) [3]


> Обоснуй. :)


1. Включаем ReportMemoryLeaksOnShutdown := True;
2. Эмулируем ошибку после stream1.free;
3. Запускаем, проверяем. Утечки нет, exception есть
4. Убираем stream1.free;
5. exception есть, на выходе :

---------------------------
Unexpected Memory Leak
---------------------------
An unexpected memory leak has occurred. The unexpected small block leaks are:

13 - 20 bytes: TFileStream x 1

93 - 100 bytes: UnicodeString x 1


Германн   (2012-01-31 01:59:00) [4]


> К первой ошибке добавится ещё и утечка памяти.
>

Обоснуй. :)


Ega23   (2012-01-31 01:56:00) [5]


> Германн ©   (31.01.12 01:19) [2]
>
> Хм.
> А если убрать первую строчку
> 1
>  
> Stream1.Free;
> что будет?


К первой ошибке добавится ещё и утечка памяти.


Германн   (2012-01-31 01:19:00) [6]

Хм.
А если убрать первую строчку Stream1.Free;что будет?


И. Павел   (2012-01-30 23:38:00) [7]


> возникает ошибка чтения...почему?

Потому что объект создаете неправильно:

> stream1.Create('2.csv',fmOpenRead  or fmShareDenyNone);


Наверх

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