СПОСОБ И СЧИТЫВАЕМЫЙ КОМПЬЮТЕРОМ НОСИТЕЛЬ ДЛЯ ЗАГРУЗКИ СОДЕРЖИМОГО ФАЙЛА ДАННЫХ
METHOD AND COMPUTER-READABLE CARRIER FOR LOADING DATA FILE CONTENT

Перекрестная ссылка на связанные заявки
Настоящая заявка связана с одновременно поданной патентной заявкой США № 11/018916 (реестр поверенного номер 60001.0465US01, озаглавленной "Method and Computer-Readable Medium For Verifying and Saving an Electronic Document," который включен в настоящее описание по ссылке.
Предшествующий уровень техники
Компьютеры в современном обществе широко используются для выполнения обширного многообразия задач и для целей развлечения. В качестве примера, сегодняшние компьютеры используются для игр, для связи, для исследований, и, в сущности, - для бесконечного многообразия других применений. Одно из наиболее общепринятых использований компьютеров как для деловых людей, так и для индивидуалов - создание электронных и отпечатанных документов. Существуют прикладные компьютерные программы для создания всех видов электронных документов, включающих в себя электронные таблицы, презентации, документы обработки текстов, графические документы, такие как диаграммы и цифровые изображения, документы автоматизированного проектирования и многие другие типы электронных документов.
Электронные документы часто включают в себя содержимое, которое очень важно. Кроме того, содержимое электронного документа при потере во многих случаях может быть сложным или невозможным для восстановления данных. Например, часто создаются крайне сложные юридические, деловые, маркетинговые и технические документы, которые не могут быть легко восстановлены, если файл данных, хранящий документ, был испорчен или поврежден. Даже в случаях, когда содержимое документа может быть без труда восстановлено, может быть крайне нежелательным для пользователя потерять хотя бы малую часть этих данных. Соответственно, очень важно, чтобы эти данные содержались в электронных документах, которые защищены от разрушения и повреждения.
Современные компьютерные системы включают в себя проверку ошибок и другие механизмы для защиты от неизбежного повреждения или искажения файлов данных. К сожалению, даже с этими существующими механизмами очень часто файлы данных, в которых хранятся электронные документы, становятся поврежденными. Повреждение (искажение) может возникать во время сохранения файла данных на массовое устройство хранения или могут быть повреждены в результате сбоя запоминающего устройства или устройства контроллера. Файлы данных могут быть также испорчены во время передачи по сети или при наступлении многих других типов событий. Так как потеря любого количества данных может быть нежелательна для пользователя, и так как время и усилия, необходимые для восстановления испорченного документа, часто являются очень большими, важно, чтобы как можно больше данных было восстановлено из испорченного файла данных.
Это относится к настоящему рассмотрению и другим различным вариантам осуществления настоящего изобретения.
Краткое описание изобретения
В соответствии с настоящим изобретением вышеупомянутые и другие проблемы разрешаются способом и считываемым компьютером носителем для загрузки содержимого из электронного файла данных. Вследствие использования различных вариантов осуществления настоящего изобретения, во время загрузки файла данных испорченные части, или записи, или файл идентифицируют и выполняется попытка восстановления этих частей. Если поврежденные части не могут быть восстановлены, загрузка этих частей пропускается. Неповрежденные и восстановленные части файлов данных затем загружаются в память. Если части файлов данных не могут быть восстановлены или пропущены, может также быть сделана попытка загрузки только пользовательских данных, содержащихся в файле данных. Таким образом, пользовательские данные, содержащиеся в файле данных, могут быть загружены даже в случаях сильного искажения для остатка файла данных.
Согласно одному аспекту настоящего изобретения обеспечивается способ загрузки файла данных, который включает в себя одну или более частей. Согласно этому способу обеспечивается ряд режимов загрузки. В «нормальном» режиме загрузки делается попытка загрузить каждую часть файла данных обычным образом. Нормальный режим загрузки включает в себя минимальную проверку целостности каждой части файла данных, так что файл может быть быстро загружен. Если встречается часть файла данных, которая отсутствует или испорчена при нахождении в нормальном режиме, используется второй режим, называемый «безопасным» режимом загрузки, для попытки загрузки части файла данных. Часть файла данных может рассматриваться как испорченная, и поэтому не может быть загружаемой, если она вызывает ошибку или отказ (сбой) в прикладной программе, пытающейся ее загрузить, если эта часть включает в себя непредвиденное значение данных, если эта часть является отсутствующими данными, если часть включает в себя недостоверные записи или недостоверный расширяемый язык разметки документов («XML») и в других случаях.
В режиме безопасной загрузки выполняется тщательная проверка целостности в отношении каждой части файла данных. В режиме безопасной загрузки может быть также выполнена попытка восстановления поврежденных частей файлов данных. Любая часть, которая может быть восстановлена, затем загружается. Если в режиме безопасной загрузки встречается часть файла данных, которая отсутствует или повреждена и которая также не является восстанавливаемой, загрузка не поддающейся ремонту части пропускается. Если встречаются части файла данных, которые не поддаются восстановлению и для которых загрузка не может быть пропущена, используется третий режим загрузки, называемый «восстановительный» загрузочный режим для попытки загрузки части файла данных.
В восстановительном режиме загрузки загружаются только части файлов данных, которые включают в себя пользовательские данные. Например, используемые данные могут содержать текстовые данные или численные данные, которые были введены пользователем. Например, если файл данных содержит электронную таблицу, в восстановительном режиме загрузки выполняется попытка загрузить только данные, содержащиеся в ячейках (полях) электронной таблицы. В восстановительном режиме загрузки не выполняется попытка загрузить другие типы данных, которые могут содержаться в файле данных, таких как сводные таблицы, списочные объекты, именованные диапазоны, автоматические фильтры, стили, форматы и настройки (предпочтения) прикладной программы или пользователя.
Согласно другим вариантам осуществления настоящего изобретения также обеспечивается считываемый компьютером носитель, на котором хранятся выполняемые компьютером команды. Когда выполняемые компьютером команды выполняются компьютером, они вынуждают компьютер обеспечивать первый режим загрузки для загрузки файла данных, который имеет одну или более частей. В первом режиме загрузки выполняется минимальная проверка целостности в отношении частей файла данных, когда они загружаются. Выполняемые компьютером команды также вынуждают компьютер обеспечивать второй режим загрузки для загрузки файла данных, в котором более тщательно выполняется проверка целостности в отношении частей файла данных, чем в первом режиме загрузки. Во втором режиме загрузки может быть также выполнена попытка восстановления частей, которые не могут быть загружены. Кроме того, во втором режиме загрузки загрузка любых частей, которые не могут быть загружены, пропускается.
Выполняемые компьютером команды вынуждают компьютер начинать загрузку файла данных в первом режиме загрузки. Если часть файла данных определена как незагружаемая в первом режиме загрузки, компьютер переключается на второй режим загрузки и пытается загрузить файл данных в этом режиме загрузки. Если во втором режиме загрузки встречается незагружаемая часть, которая может быть восстановлена, эта незагружаемая часть восстанавливается и загружается. Если незагружаемая часть не может быть восстановлена, загрузка незагружаемой части пропускается.
Согласно варианту настоящего изобретения выполняемые компьютером команды также вынуждают компьютер обеспечивать третий режим загрузки, в котором загружаются только части файла данных, которые включают в себя пользовательские данные. Если во втором режиме загрузки определено, что часть файла данных является незагружаемой, и эта незагружаемая часть не может быть восстановлена или пропущена, делается попытка загрузить содержимое файла данных в третьем режиме загрузки.
Изобретение может быть реализовано как компьютерный процесс, компьютерная система или как изделие (продукт) изготовления, такой как компьютерный программный продукт или считываемый компьютером носитель. Компьютерный программный продукт может быть средой хранения компьютера, считываемой компьютерной системой и закодированной компьютерной программой команд для выполнения процесса компьютером. Компьютерный программный продукт может быть также распространяемым сигналом в среде, считываемой компьютерной системой и закодированной компьютерной программой для выполнения процесса компьютером.
Эти и многие другие команды, а также преимущества, которые характеризуют настоящее изобретение, очевидны из нижеследующего подробного описания и анализа прилагаемых чертежей.
Краткое описание чертежей
Фиг.1 является диаграммой, представляющей архитектуру компьютерной системы, иллюстрирующей компьютерную систему и снабженную различными вариантами осуществления настоящего изобретения;
Фиг.2 является диаграммой, иллюстрирующей аспекты файла данных и различные режимы загрузки, обеспеченные вариантом осуществления настоящего изобретения; и
Фиг.3А-3В являются диаграммами последовательности операций, иллюстрирующими процесс загрузки файла данных согласно различным вариантам осуществления настоящего изобретения.
Подробное описание настоящего изобретения
Ссылаясь на чертежи, на которых аналогичные ссылочные обозначения представляют собой аналогичные элементы, описаны различные аспекты настоящего изобретения. В частности, Фиг.1 и соответствующее описание предназначены для краткого общего описания подходящей компьютерной среды, в которой может быть реализован вариант осуществления настоящего изобретения. Хотя настоящее изобретение описано в общем контексте программных модулей, которые выполняются в операционной системе персонального компьютера, специалистам в данной области техники очевидно, что настоящее изобретение может быть также реализовано в комбинации с остальными типами компьютерных систем и программных модулей.
В общем случае программные модули включают в себя подпрограммы, программы, компоненты, структуры данных и другие типы структур, которые выполняют конкретные задачи или реализуют специфические абстрактные типы данных. Более того, специалистам в данной области техники очевидно то, что настоящее изобретение может быть реализовано с другими конфигурациями компьютерных систем, включающими в себя переносные устройства, микропроцессорные системы, основанные на микропроцессорах, или программируемые электронные устройства, миникомпьютеры, компьютеры общего назначения и им подобные. Настоящее изобретение может быть также применено в распределенных компьютерных средах, где задачи выполняются удаленным процессорным устройством, которое связано коммуникационной сетью. В распределенном окружении программные модули могут также находиться и в локальных и удаленных запоминающих устройствах.
Со ссылками на Фиг.1 описана примерная архитектура компьютера для компьютера 2, используемого в различных вариантах осуществления настоящего изобретения. Компьютерная архитектура, показанная на Фиг.1, показывает обычный настольный или портативный компьютер, включающий в себя центральное процессорное устройство 5 (процессор), системную память 7, включающую в себя память 9 с произвольной выборкой (RAM), и память 11 только для чтения (ROM) 11, и системную шину 12, которая соединяет память к центральному процессору. Базовая система ввода/вывода, содержащая основные операции, которые помогают передавать информацию между элементами в компьютере, например, во время запуска, хранятся в постоянном запоминающем устройстве 11. Компьютер 2 дополнительно включает в себя устройство 14 массовой памяти для хранения операционной системы 16, прикладных программ и других программных модулей, которые описаны ниже более подробно.
Устройство 14 массовой памяти соединено с компьютером 5 посредством контроллера массовой памяти (не показан), соединенного с шиной 12. Устройство 14 массовой памяти и его связанный считываемый компьютером носитель обеспечивают энергонезависимую память компьютера 2. Хотя описание считываемого компьютером носителя, содержащегося в нем, относится к устройству массовой памяти, такому как жесткий диск или накопитель на компакт-диске, специалистам в данной области техники должно быть понятно, что считываемый компьютером носитель может быть любой доступной средой, к которой может иметь доступ компьютер 2.
Для примера, а не ограничения, считываемый компьютером носитель может содержать компьютерную среду хранения и коммуникационную среду. Компьютерная среда хранения включает в себя энергозависимый и энергонезависимый, съемный и несъемный носитель, реализованный любым способом или технологией для хранения информации, например считываемых компьютером команд, структур данных, программных модулей и других данных. Компьютерная среда хранения включает в себя, но не ограничиваясь ими, оперативное запоминающее устройство (RAM), постоянное запоминающее устройство (ROM), стираемую программируемую постоянную память (EPROM), электронную перепрограммируемую постоянную память (EEPROM), флэш-память или твердотельную память другой технологии, запоминающее устройство на компакт-диске (CD-ROM), цифровые универсальные диски (DVD), или другие оптические запоминающие устройства, магнитные кассеты, магнитные пленки, запоминающие устройства на магнитных дисках или другие магнитные запоминающие устройства, или любые другие носители, которые могут быть использованы для хранения требуемой информации, и к которым может иметь доступ компьютер 2.
Согласно различным вариантам осуществления настоящего изобретения компьютер 2 может работать в сетевой среде, используя логические соединения с удаленными компьютерами через сеть 18, такую как Интернет. Компьютер 2 может подсоединяться к сети 18 через сетевой интерфейсный модуль 20, соединенный с шиной 12. Должно быть понятно, что сетевой интерфейсный модуль 20 может быть также использован для соединения с другими частями сети и удаленными компьютерными системами. Компьютер 2 может также включать в себя контроллер 22 ввода/вывода для приема и обработки ввода с рядом других устройств, включая клавиатуру, мышь или электронное перо (не показано на Фиг.1). Аналогично, контроллер 22 ввода/вывода может осуществлять вывод на экран дисплея, принтер или другое устройство вывода.
Как показано выше, ряд программных модулей и файлов данных может храниться в устройстве 14 массовой памяти и в ОЗУ (RAM) 9 компьютера 2, включающего в себя операционную систему 16, подходящую для управления работой сетевого персонального компьютера, такую как операционная система WINDOWS XP от корпорации MICROSOFT, Редмонт, штат Вашингтон. Устройство 14 массовой памяти и RAM 9 могут хранить программное приложение 10 для работы с электронными таблицами. Как известно специалистам в данной области техники, программное приложение 10 для работы с электронными таблицами предназначено для обеспечения функциональных возможностей с целью создания и редактирования электронных таблиц.
Согласно одному аспекту варианта осуществления программное приложение 10 работы с электронными таблицами содержит прикладную программу EXCEL для работы с электронными таблицами, от корпорации MICROSOFT. Должно быть понятно, однако, что другие прикладные программы электронных таблиц других производителей могут быть использованы для реализации различных аспектов настоящего изобретения. Также должно быть понятно, что хотя варианты осуществления настоящего изобретения, описанные здесь, представлены в контексте прикладной программы обработки электронных таблиц, настоящее изобретение может использоваться с любым другим типом прикладной программы, которая загружает данные из файла данных. Например, варианты осуществления настоящего изобретения, описанные здесь, могут быть использованы с прикладной программой обработки текстов, прикладной программой черчения или автоматизированного проектирования, или прикладной программой базы данных.
Вместе с созданием и редактированием документа электронной таблицы прикладная программа 10 для работы с электронными таблицами обеспечивает функциональные возможности для сохранения документа электронной таблицы в файле данных на устройстве 14 массовой памяти. Файл данных содержит данные, представляющие различные аспекты документа электронной таблицы, такие как данные пользователя, включающие в себя содержимое ячеек электронной таблицы, предпочтения приложения, информацию о форматировании и другие данные, соответствующие различным особенностям, обеспеченным прикладной программой 10 для работы с электронными таблицами. Дополнительные подробности относительно структуры файла данных приведены ниже со ссылками на Фиг.2.
Согласно вариантам осуществления изобретения прикладная программа 10 для работы с электронными таблицами обеспечивает функциональные возможности для восстановления содержимого документа электронной таблицы, посредством загрузки файла данных от устройства 14 массовой памяти в оперативную память 9 компьютера 2. Как более подробно описано ниже со ссылками на Фиг.2-3B, способ загрузки файла данных используется прикладной программой 10 для работы с электронными таблицами, который учитывает возможность искажения в файле данных и который пытается максимизировать количество данных, которые загружаются из файла данных, даже если файл данных становится поврежденным.
Со ссылками на Фиг.2 ниже описаны дополнительные подробности относительно структуры файла данных и работы механизма загрузки, используемого прикладной программой 10 для работы с электронными таблицами. Как показано на Фиг.2, файл данных подразделяется на ряд частей 26A-26N. Каждая из частей 26A-26N используется для сохранения информации, относящейся к одной или более особенностей (свойств), поддерживаемых прикладной программой 10 для работы с электронными таблицами. Кроме того, информация для различных, но связанных, особенностей может быть сохранена в одной из частей 26A-26N. Например, как показано на Фиг.2, данные для особенностей A-C сохранены в части 26A. Данные для особенности D сохранены в части 26B. Данные для особенностей E-G сохранены в части 26C, и так далее. Данные пользователя могут быть сохранены в любой из частей 26A-26N.
Как кратко описано выше и показано на Фиг.2, возможно, что данные, содержащиеся в частях 26A-26N, могут быть разрушены. Искажение может происходить во время сохранения файла данных в массовой памяти или может происходить в результате сбоя запоминающего устройства или аппаратных средств контроллера. Файлы данных могут также стать разрушенными во время передачи по сети или в результате многих других типов событий. Данные для конкретной части могут также быть определены, как отсутствующие. Часть файла данных может рассматриваться испорченной и поэтому незагружаемой, если она вызывает ошибку или отказ прикладной программы, пытающейся ее загрузить, если эта часть включает в себя неожидаемое значение данных, если часть является отсутствующими данными, если часть включает в себя недействительные записи или недействительный расширяемый язык разметки ("XML"), и по другим причинам. В иллюстративном файле данных, показанном на Фиг.2, части 26B и 26D стали разрушенными.
Как описано здесь, части файла 24 данных могут быть загружаемы прикладной программой 10 для работы с электронными таблицами, несмотря на искажение частей 26B и 26D. Фиг.2 также иллюстрирует этот процесс загрузки, используя иллюстративный файл 24 данных. В частности, прикладная программа 10 для работы с электронными таблицами начинает загружать файл данных в режиме нормальной загрузки. В режиме нормальной загрузки минимальная проверка целостности выполняется в отношении частей 26A-26N файла данных. Если встречается разрушенная часть файла данных при загрузке в нормальном режиме, прикладная программа 10 для работы с электронными таблицами переключается на режим безопасной загрузки и начинает загружать файл данных с начала. Например, как показано на Фиг.2, когда в режиме нормальной загрузки встречается разрушенная часть 26B, режим загрузки изменяется на режим безопасной загрузки, и загрузка начинается снова с начала файла 24 данных.
В режиме безопасной загрузки выполняется дополнительная проверка целостности в отношении частей 26A-26N файла 24 данных по сравнению с режимом нормальной загрузки. Дополнительно, если сталкиваются с разрушенной частью при загрузке в безопасном режиме, делается попытка восстановить разрушенную часть. Если разрушенная часть может быть восстановлена, эта часть загружается. Если разрушенная часть не может быть восстановлена, то загрузка разрушенной части пропускается. Например, как показано на Фиг.2, часть 26B разрушена и не может быть восстановлена. Поэтому загрузка части 26B пропускается, и загружается часть 26C.
После того как часть 26C была загружена, затем делается попытка загрузить часть 26D. Однако, как показано на Фиг.2, часть 26D является разрушенной. Соответственно, делается попытка восстановить часть 26D. Если часть 26D не может быть загружена, загрузка части 26D пропускается, и этот процесс продолжается, пока остающиеся части не будут загружены или пропущены. Согласно варианту осуществления изобретения загрузка файла 24 данных может возвращаться к началу файла данных после того, как столкнулись с незагружаемой частью, и определили, что она не поддается исправлению. Это проиллюстрировано на Фиг.2. Возвращение к началу файла 24 данных таким образом разрешает пропустить загрузку других частей файла 24 данных, которые относятся к незагружаемой части, даже при том, что связанные части могут быть не испорчены.
Если в течение загрузки файла 24 данных сталкиваются с частью, которая является незагружаемой и не поддающейся исправлению, прикладная программа 10 для работы с электронными таблицами может переключаться на третий режим загрузки, называемый режимом загрузки с восстановлением. В режиме загрузки с восстановлением делается попытка загрузить только данные пользователя из файла данных. В частности, в отношении текстового документа делается попытка загрузить только текст документа. В отношении документа электронной таблицы делается попытка загрузить содержимое ячеек электронной таблицы, включая в себя данные, введенные пользователем, формулы и данные, сформированные формулой. Таким образом, даже если части файла данных разрушены, некоторые или все данные пользователя могут быть восстановлены и загружены. Этот процесс проиллюстрирован пунктиром на Фиг.2 и может быть выполнен, если часть 26D была определена как незагружаемая и не поддающаяся исправлению, и что файл не должен быть загружен вообще без нее. Дополнительные подробности относительно этого процесса описаны ниже со ссылками на Фиг.3A-3B.
Подпрограмма 300 описана со ссылками на Фиг.3A-3B, иллюстрируя процесс, выполняемый прикладной программой 10 для работы с электронными таблицами с целью загрузки содержимого файла 24 данных. Из описания подпрограмм, представленных ниже, должно быть понятно, что логические операции различных вариантов осуществления настоящего изобретения осуществлены (1) в виде последовательности осуществляемых компьютером действий или программных модулей, выполняющихся на вычислительной системе и/или (2) в виде взаимосвязанных машинных логических схем или схемных модулей внутри вычислительной системы. Реализация является вопросом выбора, зависящим от требований к эффективности вычислительной системы, реализующей изобретение. Соответственно, логические операции, проиллюстрированные на Фиг.3A-3B, и реализацию вариантов осуществления описанного настоящего изобретения называют по-разному как операции, структурные устройства, действия или модули. Специалистам очевидно, что эти операции, структурные устройства, действия и модули могут быть осуществлены в виде программного обеспечения, программно-аппаратными средствами, цифровыми логическими средствами специального назначения, и любой их комбинацией без отклонения от объема и формы настоящего изобретения, как раскрыто в приложенной формуле изобретения.
Должно быть понятно, что подпрограмма 300 использует несколько переменных во время своей работы. В частности, переменная "режим" отслеживает текущий режим загрузки. Эта переменная может быть установлена равной или "безопасный", "нормальный" или "восстановление". Переменная "счетчик пропусков" является структурой данных, используемой для идентификации индивидуально каждой из частей, которые должны быть пропущены в течение загрузки. Переменная "число записей, подлежащих пропуску" описывает текущее число секций, которые должны быть пропущены в текущей попытке загрузки. Переменная "текущая запись" идентифицирует текущую секцию в обрабатываемом файле данных. Должно быть понятно, что может использоваться большее или меньшее количество переменных, чтобы выполнить ту же задачу. Кроме того, должно быть понятно, что подпрограмма 300, проиллюстрированная на Фиг.3, представляет только одно возможное выполнение изобретения, и что много других вариантов выполнения очевидны специалистам.
Подпрограмма 300 начинается на любой операции 302, 304 или 306. В частности, согласно вариантам осуществления изобретения может быть обеспечен интерфейс пользователя, что позволяет пользователю выбирать, загружен ли файл данных нормально (операция 304), загружен в режиме безопасной загрузки (операция 302) или загружен в режиме загрузки с восстановлением (306). Этот интерфейс пользователя может быть представлен пользователю, когда пользователь запрашивает, чтобы файл был загружен. На основании выбора пользователя в интерфейсе пользователя подпрограмма 300 начинает свою работу на любой из операций 302, 304 или 306.
Если загрузка должна начаться в режиме безопасной загрузки, подпрограмма 300 начинается на этапе 302, где значение переменной режима установлено равным "безопасный". Подпрограмма 300 затем переходит к этапу 308. Если загрузка должна начаться в режиме нормальной загрузки, подпрограмма 300 начинается на этапе 304, где значение переменной режима установлено равным "нормальный". Подпрограмма 300 затем переходит от операции 304 к операции 308. Если загрузка должна начаться в режиме загрузки с восстановлением, подпрограмма начинается на этапе 306, где значение переменной режима установлено равным "восстановление". От операции 306 подпрограмма 300 переходит к этапу 348, описанному ниже.
На этапе 308 переменная счетчика пропусков инициализируется, чтобы указать, что никакие записи не должны быть пропущены. Подпрограмма 300 затем переходит к этапу 310, где текущая запись устанавливается равной первой записи в файле данных. Значение переменной количества записей, подлежащих пропуску, также инициализируется. При первом проходе устанавливается число записей, подлежащих пропуску, равным нулю. От операции 310 подпрограмма 300 переходит к операции 312.
На этапе 312 делается попытка загрузить текущую запись в текущем режиме. Например, если значение переменной режима установлено равным "нормальный", выполняется минимальная проверка целостности в отношении загружаемой секции. Если значение переменной режима установлено равным "безопасный", выполняется дополнительная проверка целостности. От операции 312 подпрограмма 300 переходит к операции 314, где выполняется определение относительно того, является ли текущая запись незагружаемой (то есть или разрушенной, или отсутствующей). Если текущая запись является загружаемой, подпрограмма 300 переходит к этапу 316, где выполняется определение относительно того, остались ли еще записи для загрузки. Если еще записи существуют, выполнение подпрограммы 300 переходит от операции 316 к операции 318, где переменная текущей записи устанавливается равной следующей записи в файле данных. Подпрограмма 300 затем переходит к этапу 321, где загружается следующая запись. Если на этапе 316 определено, что никаких дополнительных записей не осталось для загрузки, подпрограмма 300 переходит к этапу 320, где ее работа завершается. Таким образом, все записи загружаются в текущем режиме, если не существует никаких разрушенных или отсутствующих записей.
Должно быть понятно, что в вариантах осуществления изобретения некоторые проверки целостности могут быть выполнены на уровне особенностей в противоположность уровню записей. Чтобы исполнять такую проверку целостности на уровне особенностей, загружают все записи для конкретной особенности. Затем выполняется определение относительно того, являются ли данные для этой особенности достоверными. Если данные являются недостоверными, структура данных пропуска обновляется записями с особенностями, подлежащими пропуску, и файл загружают повторно. Проверки соответствия файл-уровень могут быть также сделаны аналогичным образом.
Если на этапе 314 определено, что текущая запись является незагружаемой, подпрограмма 314 переходит к этапу 322, где выполняется определение относительно того, является ли текущий режим нормальным режимом. Если текущий режим является нормальным режимом, подпрограмма 300 переходит к этапу 324, где запись помечается флагом в переменной счетчика пропусков, указывающей, что была идентифицирована часть файла данных, которую может быть необходимо пропустить. Подпрограмма 300 затем переходит к этапу 326, где значение переменной режима установлено равным "безопасный". Таким образом, режим загрузки переключается от нормального к безопасному после встречи незагружаемой части файла данных. Подпрограмма 300 затем возвращается обратно к этапу 310, где обработка файла данных возвращается к началу.
Если на этапе 322 определено, что текущий режим загрузки не является нормальным режимом, подпрограмма 300 переходит к этапу 328, где выполняется определение относительно того, является ли текущий режим загрузки безопасным режимом. Поскольку только режимы нормальной или безопасной загрузки должны быть возможными значениями в этой части подпрограммы 300, выполнение подпрограммы переходит к этапу 330, где сообщается об ошибке, если текущий режим загрузки не является безопасным режимом. Подпрограмма 300 затем переходит от операции 330 к операции 320, где она завершается. Если, однако, на этапе 328 определено, что текущий режим является безопасным режимом, подпрограмма 300 переходит к этапу 332.
На этапе 332 делается попытка восстановить текущую запись. На этапе 334 выполняется определение относительно того, была ли текущая запись восстанавливаемой. Если запись была восстанавливаемой, подпрограмма 300 переходит к этапу 336, где загружается текущая запись. На этапе 336 переменная счетчика пропусков также обновляется, чтобы указать, что загрузка текущей записи не должна быть пропущена, так как запись была восстанавливаемой. От операции 336 управление подпрограммой 300 переходит к операции 316, где обрабатываются оставшиеся записи файла данных способом, описанным выше.
Если на этапе 334 определено, что текущая запись не может быть восстановлена, подпрограмма 300 переходит к этапу 338. На этапе 338 выполняется определение относительно того, является ли количество записей, которые должны быть пропущены, равным нулю. Это может иметь место, если загрузка была начата в нормальном режиме, и когда встретилась первая поврежденная запись, и эта запись является невосстанавливаемой. В этом случае подпрограмма 300 переходит к этапу 340, где переменная подсчета пропусков обновляется для указания, что запись должна быть пропущена. Подпрограмма 300 затем возвращается к этапу 310, где обработка файла данных возвращается к началу способом, описанным выше.
Если на этапе 338 определено, что число записей, которые должны быть пропущены, не равно нулю, подпрограмма 300 переходит к этапу 342, где делается попытка пропустить загрузку текущей записи. На этапе 344 выполняется определение относительно того, может ли быть пропущена загрузка текущей записи. Если загрузка текущей записи может быть пропущена, подпрограмма 300 переходит к этапу 346, где запись помещается флагом в переменной записей пропусков. Подпрограмма затем переходит к этапу 316, описанному выше.
Если на этапе 344 определено, что текущая запись не может быть пропущена, подпрограмма 300 переходит к этапу 306, где переменная режима устанавливается равной "восстановление". Подпрограмма 300 затем переходит к этапу 348, где делается попытка загрузить файл данных в режиме восстановления. Как описано выше, только данные пользователя загружаются в режиме восстановления. Кроме того, делается попытка загрузить столько данных пользователя, сколько возможно, если данные пользователя также являются поврежденными. Подпрограмма 300 затем переходит к этапу 320, где она завершается.
На основании вышеописанного, должно быть понятно, что различные варианты осуществления изобретения включают в себя способ, систему, устройство и считываемый компьютером носитель для загрузки содержимого файла данных. Вышеупомянутое описание, примеры и данные обеспечивают полное описание осуществления и использования изобретения. Так как много вариантов осуществления изобретения может быть сделано без отрыва от объема и формы изобретения, изобретение определено в прилагаемой формуле изобретения.