|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
12.09.2017, 15:50 | #1 |
Пользователь
Регистрация: 13.05.2007
Сообщений: 60
|
не закрывается TFileStream
Код:
Что я делаю не так? Во всех примерах в интернете с TFileStream в try выполняется create, а в finally выполняется Free. Собственно Free я тоже пробовал, результат тот же. |
12.09.2017, 17:09 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 19,042
|
Ну видимо занят монопольно другим приложением. И free или FreeAndNil не нужно если объект не создан, а он и не создается когда исключение при создании
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
12.09.2017, 17:31 | #3 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
или так
Код:
Код:
Код:
Не стесняемся, плюсуем!
Последний раз редактировалось Slym; 12.09.2017 в 17:33. |
13.09.2017, 01:06 | #4 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,859
|
2 Slym
Всё бы хорошо, но конструкция Код:
Ибо если исключение возникает в конструкторе объекта, то объект просто не создаётся. И его не нужно уничтожать. Т.е. конструкция для временного создания любого объекта с последующим его уничтожением должна выглядеть так: Код:
|
13.09.2017, 04:51 | #5 | |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
Цитата:
т.к. переменная в стеке - там мусор и может произойти "Garbage.Free" - AV но при начальной инициализации нилом все безопасно "nil.Free" - ОК пруф: Код:
Код:
Не стесняемся, плюсуем!
Последний раз редактировалось Slym; 13.09.2017 в 05:00. |
|
13.09.2017, 06:37 | #6 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Предположение: а у Вас NameL случайно не равно NameR?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
13.09.2017, 08:15 | #7 |
Пользователь
Регистрация: 13.05.2007
Сообщений: 60
|
Нет, NameL <> NameR.
Спасибо за ответы! InFileL:=nil;InFileR:=nil; наверно самый подходящий вариант. Меня просто насторожило, что практически все примеры в интернете сделаны так, как я сделал вначале. А в итоге получается, что я ловлю исключение, а в итоге исключение же и создаю. |
13.09.2017, 08:25 | #8 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Плохие примеры ИМХО лучше всё-таки не только на примерах учиться, есть же и нормальные учебники
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
13.09.2017, 09:42 | #9 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,238
|
Цитата:
90% кода в интернете - говно (Блог GunSmoker-а) |
|
14.09.2017, 01:47 | #10 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,859
|
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
TFileStream | Baburek | C++ Builder | 3 | 04.07.2013 10:13 |
Не закрывается форма | The SCS | Общие вопросы Delphi | 4 | 31.03.2012 14:57 |
Не закрывается приложение. | the_deer_one | C# (си шарп) | 5 | 08.06.2011 14:37 |
Закрывается окно | Никита_П | Общие вопросы C/C++ | 2 | 27.02.2010 17:22 |
TFilestream | UnD)eaD)Snake | Win Api | 1 | 27.09.2007 21:22 |