![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
![]()
Меня интересует вопрос о разнице...
программа ведет лог действий... действия могут совершаться как несколько раз в секунду, так и не совершаться на протяжении минут... меня интересует, есть ли разница между тем, что я буду открывать файл, записывать в него данные (не большие) и закрывать каждый раз при совершаемом действии.... и между тем, если открыть файл в начале программы, и не закрывая его, вести лог действий... так же в этом случае мне интересно, чем черевато то, что если строка о закрытии открытого файла "src.close();" прописана вовсе не будет, а программу закрыть? Вообщем поясните пожалуйста, и что лучше юзать |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 01.09.2008
Сообщений: 178
|
![]()
Открываешь в начале файл, пишешь туда все, что тебе нужно по мере выполнения программы. В любом месте, где обрабатываешь исключение и/или завершаешь прогу, позаботься о закрытии файла.
Разница есть. Если каждую секунду открывать-закрывать файл, то это скажется на быстродействии. Логично же, не?
Быть радикальным - значит понять вещь в её корне. К.Маркс
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
![]()
Тогда как обработать закрытие программы, что бы закрыть файл? Я консольное приложение писал
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 01.09.2008
Сообщений: 178
|
![]()
Если файл открывал с помощью CreateFile, то вызываешь CloseHandle, если с помощью потоков, то f.close().
Так же как и обычно: перед return закрой файл.
Быть радикальным - значит понять вещь в её корне. К.Маркс
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
![]()
т.е это в самом конце main() перед return 0?
Код:
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 01.09.2008
Сообщений: 178
|
![]()
Да, только не вместо, а перед
![]() Код:
Быть радикальным - значит понять вещь в её корне. К.Маркс
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
![]()
немножко не понимаю... у меня внутри майн, вызывается еще множество функций... и если программа на моменте выполнения одной из тех функций, при закрытии, не выполняется то, что я перед ретурном прописал... я проверил
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 01.09.2008
Сообщений: 178
|
![]()
Ты беспокоишься о том, что у тебя файл не закроется, а то, что программа вылетит - это нормально?
![]() Для того, чтобы программа всегда завершалась корректно, необходимо отслеживать где она может вылететь или где может быть сбой, чтобы в этом случае всегда обеспечить корректное завершение без потерь данных. Приведу пример. Допустим, ты открываешь свой файл и выделяешь память для массива: Код:
Код:
Для этого после запроса памяти необходимо осуществить проверку: Код:
Быть радикальным - значит понять вещь в её корне. К.Маркс
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
![]()
А разве данные не сразу сохраняются в файле, по мере их внесения? даже если не закрывать файл
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 01.09.2008
Сообщений: 178
|
![]()
Сразу. Но кто знает что с ними произойдет после некорректного завершения программы?
Быть радикальным - значит понять вещь в её корне. К.Маркс
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запись в файл | Lemo | Помощь студентам | 3 | 01.03.2009 19:06 |
Запись в файл | |{ot | Общие вопросы Delphi | 6 | 05.07.2008 02:24 |
Запись в файл | [Smarik] | Помощь студентам | 4 | 07.05.2008 23:26 |
Запись в файл | В_И_К_Т_О_Р | Помощь студентам | 9 | 30.01.2008 22:46 |
запись в файл | Prisian | Общие вопросы Delphi | 6 | 24.07.2007 13:43 |