1 * Сохранение файлов и форматы.

Вопрос о сохранении имеет даже большее практическое значение чем вопрос о стирании файлов. Он менее очевиден и прост, а последствия незнания обернутся бо'льшими потерями. Это маловероятно но важно.

Для начала не требуется зубрить, и можно даже пропустить эту главу в её детальном описании но при вопросах возникающих при закрытии файлов, при проблемах с неадекватным содержимым файлов, при сбоях, при неожиданном замедлении работы программы и для прояснения вопроса о паузах её работы и кажущемся «зависании» из-за автосохранения эта тема актуальна. Обычно начинающий пользователь может ограничиться знанием для простой работы где ему важно чтобы форма файла был подходящим а все вопросы сохранения сводятся к правильному ответу на запрос при закрытии файла. Тем не менее желательно хотя не сразу получить представление о том что конкретно происходит.

Подпрограммы ОС и приложения обычно созданы для редакции файлов. С помощью несчётного числа приложений вы в первую очередь занимаетесь перекраиванием файлов. Конечно у вас рябит в глазах от того что можно сделать в этих программах, но главное именно в редакции.

Когда вы запускаете программу, она часто создаёт пустой документ. Это может быть база данных и пр. Этот стандартный и пустой файл вам практически не важен, его утрата по любой причине не имеет значения поэтому приложения часто без запросов закрывают окна таких файлов, но все изменения в старых файлах, а также созданные в этом сеансе работы программы и изменённые – представляют ценность. Именно о них пойдёт речь.

Типичные методики обращения с открытым файлом.

Программа может в зависимости от своих возможностей, специфики и настроек по-разному поступать с файлом и вносимыми изменениями. Программа может комбинировать эти методы, но их совокупность для одной программы и одного состояния настроек одна. Возможно программа придерживается разной политики сохранения для разных форматов.

Роль временных файлов.

Программа может создавать временный файл для хранения технической информации о редактируемом файле; возможно такой файл лучше назвать снимком с открытого. Такой временный файл создаёт Word. Этот файл имеет название, начинающиеся с тильды («~») и удаляется автоматически после закрытия основного файла. Такой файл может содержать техническую информацию о состоянии данных на момент последнего автосохранения выполненного программой самостоятельно или о состоянии на момент явного сохранения выполненного вручную – смотря по тому, какое из этих событий было позже. Поэтому он может помочь при сбоях. Такой файл не является опасным. Его не следует стирать пока он используется. Его желательно назначить для резервного копирования (см. соот. главу).

Временный файл может сделать нежелательным выключение программы которая с ним работает. В таком случае при попытке своего выключения скорее всего программа выдаст сообщение. Если произошёл сбой или программа была выключена принудительно с помощью Диспетчера задач или иначе то её временный файл может привести к неправильной работе этой программы в следующем сеансе её работы или просто остаться неудалённым и занимать место не давая пользы.

Положение и размер временных файлов.

Временные файлы обычно возникающие при звукообработке, видеоработах и записи на CD\DVD такого размера что об их размещении надо думать заранее. Обычно временные файлы создаются в предназначенных по умолчанию каталогах в каталоге ОС и Мои документы. Это обычно C:\WINNT\Temp и C:\Documents and Settings\группа пользователей\Application Data соответственно. Или это каталоги определяемые программой, часто их положение можно настроить.

Резервная копия открытого файла.

Программа открывшая файл может инициировать создание резервной копии открытого или созданного файла. Эта резервная копия, которая часто имеет расширение BAK, не имеет отношения к резервному копированию и не требует никаких действий. Это копия открытого или созданного файла. Она также скорее всего стирается при закрытии основного файла и имеет то же значение как нечто полезное при сбоях.

Немедленная запись.

По мере изменения открытого или созданного файла программа может записывать изменённые данные сразу, постоянно переписывая основной, невременный файл – в данном случае он может быть единственным. При этом как обычно есть возможность отката, то есть отмены сделанных изменений, но файл уже изменён. Так работает Access.

Методика явного сохранения.

Файл сохраняется, переписываясь, при явном сохранении пользователем и закрывается при явном закрытии. Это значит что если вы не сохранили явно файл то все ваши изменения будут утеряны,и никакой временный файл вам не поможет. Обычно так работают примитивные программы которые редко используются и редко требуются.

Сохранение при закрытии.

Программа самостоятельно сохраняет файл при закрытии, без запроса. Это не типичный случай.

Что может происходить при ручном сохранении.

При сохранении, выполняемом явно, вручную может происходить следующее: а) сохранение состояния данных во временном файле, а в основном при закрытии б) сохранение в основном файле в) переписывание или очистка временного файла г) стирание «undo history» - истории изменений, благодаря которой вы могли отменять сделанные операции.

При закрытии файла происходит удаление резервных копий и временных файлов, а также в 99% случаев выдаётся запрос на сохранение; также определённо пропадает история изменений.

Закрытие окна файла или выключение программы открывшей его.

Обычно программа при этом спрашивает, сохранять ли изменённые данные если они ещё не сохранены. Например, она может выдать вопрос: «Save changes?” или “Exit without saving?”. Если такой вопрос отсутствует то либо

-изменений в файле не было либо

-программа записывает их сама при закрытии файла, либо

-считается что вы сами должны явным образом сохранять, и файл будет в том состоянии, в котором он был при последнем сохранении сделанном вручную.

Сохранение выделения, положения курсора и точек работы.

О текстовых программах. Мощные программы будут сохранять положение курсора несмотря на то что возможно при открытии вы увидите начало документа. Переместив курсор вы мгновенно перенесётесь к нему. Выделение современные программы не сохраняют но тк оно есть просто растянутый курсор то в текстовых приложениях выделение до закрытия было до или после курсора. Word и возможно другие программы запоминают несколько последних точек работы, для выпуска Word 1997 года насколько я помню это 4 точки. Они доступны через кнопки расположенные под вертикальной полосой прокрутки.

Нетекстовые приложения могут тоже что-то сохранять если это вообще не бессмысленный вопрос для конкретной программы. Так, например, конвертер не станет сохранять список обработанных файлов. Www-обозреватель IE имеет Журнал в котором записано какие файлы были открыты – и не только за текущий день.

Резюме по сохранению изменений.

Таким образом если вы сохранили файл, то он существует в том виде, в каком был при последнем сохранении – сделанном вручную или автоматически. При следующем открытии он будет иметь такой вид. С другой стороны, если сохранения не было то обычно несмотря на вашу работу и видимость изменений в файле, вы не получите ни изменений в основном, ни во временном файле – тк временный файл будет уже удалён.

Подробности о Word.

Word много используется поэтому заслуживает особого положения. Word при аварийном завершении работы не стирает временный файл. При следующем запуске он по этому файлу восстанавливает то что было сделано в сеансе работы, закончившимся аварийным завершением – по причине сбоя в Word или более обширном сбое. Поэтому не стирайте временные файлы какой бы программой они не создавались.

Такое восстановление теоретически может быть связано с именами файлов и форматами, в которых сохранён результат работы.

Сохранение в другом формате.

При сохранении файла в другом формате создаётся файл с другим расширением, но тем же именем - если вы не измените его при сохранении файла. Это делается так, чтобы сохранить в новом файле максимум свойств документа. При этом новый формат ограничивает возможности. Например, если вы сохраните файл формата “документ Word” в формате “текст DOS без разбиения на строки”, то потеряете статистику о количестве страниц, имя автора и информацию о шрифтах, а деление на строки будет уничтожено. В результате вы получите документ с огромными строками и набранный одним шрифтом, из него исчезнут все иллюстрации. Всё это является следствием бедности нового формата, его неспособности хранить информацию о шрифтах и пр. Объём нового файла будет гораздо меньше, поскольку меньше информация о документе. Файл – это массив компьютерной технической информации.

Тем не менее файл считается сохранённым и программа не выдаст запроса на сохранение если его закрыть сразу после сохранения в другом формате. Основной файл останется неизменным. То есть вы теперь работаете с файлом который может быть беднее того что вы видите и все ваши результаты работы которых не могут быть отражены в новом формате будут напрасны. Опасность состоит в том, что программа может после сохранения в другом формате и другом файле сохранять в этот новый файл. Практическая мораль в том чтобы следить за заголовком окна где обычно показано название и расширение файла. По этому вы узнаете какой файл находится в обработке. После сохранения в другом формате вы можете сохранить в исходном формате.

Что делать.

Чтобы выяснить что делать в конкретной ситуации я дам простой и общий совет: полазьте по настройкам программы и попробуйте работать с ней не ставя поду грозу ценные файлы пока вы не знаете её. Создайте документ и посмотрите как программа будет поступать с ним.

Что может уцелеть при проблемах.

Надо сделать оговорку имея в виду прежде всего составные документы. Как вы помните, документы бывают составными или простыми. Файл используемый в составном документе может избежать последствий методики сохранения и ваших ошибочных действий. Например, вы редактируете HTML-документ. В таком случае вы можете задать размеры для вывода иллюстрации, но сама она, как отдельный файл не меняется при этом, и не удаляется при удалении её из составного документа. Похожая картина имеется с данными, вставленными в документ с помощью пункта меню «вставить объект OLE» и при связывании объекта, которое выглядит очень похоже на вставку. Вы можете делать и связывание, и вставку одновременно.