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