Abstract: A method and computer-readable medium are provided for loading the contents of an electronic data file. According to the method, corrupted portions of a data file are identified and an attempt is made to repair these portions. If the corrupted portions carmot be repaired, the loading of these portions is skipped. The uncorrupted and repaired portions of the data file are then loaded into memory. If portions of the data file cannot be repaired or skipped, an attempt is made to load only the user data contained in the data file. In this manner, the user data contained in the data file may be loaded even in cases of severe corruption.
METHOD AND COMPUTER-READABLE MEDIUM FOR LOADING THE CONTENTS OF A DATA FILE
CROSS-REFERENCE TO RELATED APPLICATIONS
This apphcation is related to concurrently filed U S Patent Application
No __/ (Attorney Docket No 60001 0465US01, which is entitled "Method
and Computer-Readable Medium For Venfying and Saving an Electromc Document,' which IS expressly incorporated herein by reference
BACKGROUND OF THE INVENTION
Computers are utilized pervasively m today's society to perform a wide vanety of tasks and for entertauiment purposes For instance, computers today are utilized for gaming, commumcations, research, and a virtually endless vanety of other applications One of the most common uses of computers, by both businesses and individuals alike, is the creation of electronic and pnnted documents Computer application programs exist for creating all kinds of electromc documents, including spreadsheets, presentations, word processing documents, graphical documents such as diagrams and digital images, computer-aided design documents, and many other types of electronic documents
Electronic documents often include content that is very important Moreover, the content of an electronic document m many cases would be difficult or impossible to recreate if lost For instance, highly complicated legal, busmess, marketing, and techmcal documents are often created that could not easily be recreated if the data file stonng the document were corrupted or destroyed Even in cases where the contents of a document could be easily be recreated, it can be very frustrating for a user to lose even a small portion of their data Accordingly, it is very important that the data contained m electromc documents be protected against destruction and corruption
Modem computer systems include error checking and other mechamsms to protect against the inadvertent destruction or corruption of data files Unfortunately,
even with these mechanisms in place, it is quite common for the data files in which electromc documents are stored to become corrupted Corruption may occur while the data file is bemg saved to mass storage or may occur as a result of a faulty storage device or controller hardware Data files may also become corrupted during network transmission or by the occurrence of many other types of events Because the loss of any amount of data can be fiaistratmg to a user and because the time and effort necessary to recreate a corrupted document is often very high, it is important that as much data as possible be recovered fi'om a corrupted data file
It is with respect to these considerations and others that the vanous embodiments of the present invention have been made
BRIEF SUMMARY OF THE INVENTION In accordance with the present mvention, the above and other problems are solved by a method and computer-readable medium for loading the contents of an electromc data file Through the use of the vanous embodiments of the present invention, dunng the load of a data file corrupted portions, or records, of the file are identified and an attempt is made to repair these portions If the corrupted portions cannot be repaired, the loading of these portions is skipped The uncorrupted and repau-ed portions of the data file are then loaded into memory If portions of the data file cannot be repaired or skipped, an attempt can also be made to load only the user data contained in the data file In this manner, the user data contained in the data file may be loaded even in cases of severe corruption to the remainder of the data file
According to one aspect of the mvention, a method is provided for loading a data file that includes one or more portions According to the method, a number of load modes are provided In the "normal" load mode an attempt is made to load each portion of the data file m a normal fashion The normal load mode includes mimmal integnty checking on each of the portions of the data file so that the file can be loaded quickly If a portion of the data file is encountered that is missmg or corrupt while in the normal mode, a second mode, called the "safe" load mode, is utilized to attempt to load the portions of the data file A portion of the data file may be
considered corrupt and therefore unloadable if it causes an error m or crash of the application program attempting to load it, if the portion includes an unexpected data value, if the portion is missmg data, if the portion includes invalid records or mvahd extensible markup language ("XML"), and for other causes
In the safe load mode extensive integnty checking is performed on each portion of the data file In the safe load mode an attempt may also be made to repair the corrupted portions of the data file Any portions that can be repaired are then loaded If a portion of the data file is encountered in the safe load mode that is missing or corrupt and which is also unrepairable, the loading of the unrepairable portion is skipped If portions of the data file are encountered that are not repairable and for which loading cannot be skipped, a third load mode, called the "recovery" load mode, is utilized to attempt to load the portions of the data file
In the recovery load mode only the portions of the data file that include user data are loaded For instance, user data may comprise text data or numerical data that was entered by a user As an example, if the data file contams a spreadsheet, an attempt is made m the recovery load mode to load only the data contained m the cells of the spreadsheet No attempt is made in the recovery mode to load other types of data that may be contamed in the data file, such as pivot tables, list objects, named ranges, auto filters, styles, formatting, and application or user preferences
According to other embodiments of the invention, a computer-readable medium is also provided on which is stored computer-executable instructions When the computer-executable instructions are executed by a computer, they cause the computer to provide a first loadmg mode for loading-a data file that has one or more portions In the first loadmg mode minimal integnty checking is performed on the portions of the data file as they are loaded The computer-executable instructions also cause the computer to provide a second loading mode for loading the data file in which more extensive integnty checking is performed on the portions of the data file than in the first loadmg mode In the second loading mode an attempt may also be made to repair portions that are unloadable Moreover, in the second loading mode the loading of any unloadable portions is skipped
The computer-executable instructions also cause the computer to begin loadmg a data file m the first loading mode If a portion of the data file is determined to be unloadable m the first loading mode, the computer switches to the second loading mode and attempts to load the data file in this loading mode If, in the second loadmg mode, an unloadable portion is encountered that may be repaired, the unloadable portion is repaired and loaded If the unloadable portion cannot be repaired, loadmg of the unloadable portion is skipped
According to an embodiment of the mvention, the computer-executable mstructions also cause the computer to provide a third loading mode wherein only the portions of the data file that mclude user data are loaded If, m the second loadmg mode. It is determined that a portion of the data file is unloadable and that the unloadable portion cannot be repaired or skipped, an attempt is made to load the contents of the data file in the third loadmg mode
The mvention may be implemented as a computer process, a computmg system, or as an article of manufacture such as a computer program product or computer readable media The computer program product may be a computer storage media readable by a computer system and encoding a computer program of instructions for executmg a computer process The computer program product may also be a propagated signal on a earner readable by a computing system and encoding a computer program of mstructions for executing a computer process
These and various other features, as well as advantages, which charactenze the present mvention, will be apparent from a readmg of the followmg detailed descnption and a review of the associated drawmgs
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
FIGURE 1 is a computer system architecture diagram illustrating a
computer system utilized m and provided by the vanous embodiments of the invention, FIGURE 2 is a block diagram illustrating aspects of a data file and the
vanous loading modes provided by the embodiments of the invention, and
FIGURES 3A-3B are flow diagrams showing an illustrative process for loadmg a data file according to the vanous embodiments of the mvention
DETAILED DESCRIPTION OF THE INVENTION Refemng now to the drawings, in which like numerals represent hke elements, vanous aspects of the present invention will be descnbed In particular, FIGURE I and the corresponding discussion are intended to provide a bnef, general descnption of a suitable computing environment in which embodiments of the mvention may be implemented While the invention will be descnbed m the general context of program modules that execute on an operating system on a personal computer, those skilled in the art will recognize that the invention may also be implemented in combination with other types of computer systems and program modules
Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types Moreover, those skilled in the art will appreciate that the invention may be practiced with other computer system configurations, includmg handheld devices, multiprocessor systems, microprocessor-based or programmable consumer electromcs, minicomputers, mainframe computers, and the like The invention may also be practiced in distnbuted computing environments where tasks are performed by remote processmg devices that are linked through a communications network In a distnbuted computing environment, program modules may be located in both local and remote memory storage devices
Refemng now to FIGURE 1, an illustrative computer architecture for a computer 2 utilized in the vanous embodiments of the mvention will be descnbed The computer architecture shown in FIGURE 1 illustrates a conventional desktop or laptop computer, including a central processmg unit 5 ("CPU"), a system memory 7, including a random access memory 9 ("RAM") and a read-only memory ("ROM") 11, and a system bus 12 that couples the memory to the CPU 5 A basic input/output system containing the basic routines that help to transfer mformation between elements within the computer, such as dunng startup, is stored m the ROM 11 The computer 2 further
includes a mass storage device 14 for stonng an operatmg system 16, application programs, and other program modules, which will be descnbed m greater detail below
The mass storage device 14 is connected to the CPUS through a mass storage controller (not shown) connected to the bus 12 The mass storage device 14 and its associated computer-readable media provide non-volatile storage for the computer 2 Although the description of computer-readable media contained herein refers to a mass storage device, such as a hard disk or CD-ROM dnve, it should be appreciated by those skilled m the art that computer-readable media can be any available media that can be accessed by the computer 2
By way of example, and not limitation, computer-readable media may compnse computer storage media and commumcation media Computer storage media includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data Computer storage media mcludes, but is not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other solid state memory technology, CD-ROM, digital versatile disks ('T)VD"), or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the computer 2
According to vanous embodiments of the mvention, the computer 2 may operate in a networked environment using logical cormections to remote computers through a network 18, such as the Internet The computer 2 may connect to the network 18 through a network interface umt20 connected to the bus 12 It should be appreciated that the network interface unit 20 may also be utilized to connect to other types of networks and remote computer systems The computer 2 may also include an input/output controller 22 for receiving and processing input from a number of other devices, including a keyboard, mouse, or electromc stylus (not shown in FIGURE 1) Similarly, an input/output controller 22 may provide output to a display screen, a pnnter, or other type of output device
As mentioned briefly above, a number of program modules and data files may be stored m the mass storage device 14 and RAM 9 of the computer 2, including an operating system 16 suitable for controlhng the operation of a networked personal computer, such as the WINDOWS XP operatmg system from MICROSOFT CORPORATION of Redmond, Washmgton The mass storage device 14 and RAM 9 may also store one or more program modules In particular, the mass storage device 14 and the RAM 9 may store a spreadsheet application program 10 As known to those skilled in the art, the spreadsheet application program 10 is operative to provide functionality for creatmg and editing electronic spreadsheets
According to one embodiment of the invention, the spreadsheet application program 10 compnses the EXCEL spreadsheet application program from MICROSOFT CORPORATION It should be appreciated, however, that other spreadsheet application programs from other manufacturers may be utilized to embody the various aspects of the present mvention It should also be appreciated that although the embodiments of the mvention described herein are presented m the context of a spreadsheet application program, the invention may be utilized with any other type of application program that loads data from a data file For mstance, the embodiments of the mvention described herein may be utihzed within a word processing application program, a presentation apphcation program, a drawing or computer-aided design apphcation program, or a database application program
In conjunction with the creation and editing of a spreadsheet document, the spreadsheet application program 10 provides functionality for saving the spreadsheet document m a data file 24 on the mass storage device 14 The data file 24 contams data representing the various aspects of a spreadsheet document, such as user data including the contents of the spreadsheet cells, application preferences, formatting information, and other data corresponding to the vanous features provided by the spreadsheet application program 10 Additional details regarding the structure of the data file 24 will be provided below with respect to FIGURE 2
Accordmg to the embodiments of the invention, the spreadsheet application program 10 provides functionality for restoring the contents of a spreadsheet
document by loading the data file 24 from the mass storage device 14 mto the random access memory 9 of the computer 2 As will be described m greater detail below with respect to FIGURES 2-3B, a method for loading the data file 24 is utilized by the spreadsheet application program 10 that accounts for the possibility of corruption m the data file 24 and that attempts to maxunize the amount of data that is loaded from the data file 24 even if the data file 24 becomes corrupted
Tummg now to FIGURE 2, additional details will be provided regarding the structure of the data file 24 and the operation of the loadmg mechamsm utibzed by the spreadsheet application program 10 As shown in FIGURE 2, the data file 24 is subdivided into a number of portions 26A-26N Each of the portions 26A-26N is utilized to store information relating to one or more features supported by the spreadsheet application program 10 Moreover, the information for different but related features may be stored in a smgle one of the portions 26A-26N For instance, as shown in FIGURE 2, the data for features A-C are stored in the portion 26A The data for feature D is stored in portion 26B The data for features E-G are stored m the portion 26C, and so on User data may be stored in any of the portions 26A-26N
As descnbed briefly above, and shown in FIGURE 2, it is possible for the data contained within the portions 26A-26N to be corrupted Corruption may occur while the data file is being saved to mass storage or may occur as a result of a faulty storage device or controller hardware Data files may also become corrupted dunng network transmission or by the occurrence of many other types of events The data for a particular portion may also be determined to be missing A portion of the data file may be considered corrupt and therefore unloadable if it causes an error in or crash of the application program attempting to load it, if the portion includes an unexpected data value, if the portion is missing data, if the portion includes invalid records or invalid extensible markup language ("XML"), and for other causes In the illustrative data file 24 shown in FIGURE 2, the portions 26B and 26D have become corrupted
As descnbed herem, portions of the data file 24 are loadable by the spreadsheet application progrcim 10 despite the corruption of the portions 26B and 26D FIGURE 2 also illustrates this loading process utilizing the illustrative data file 24 In
particular, the spreadsheet application program 10 begins loading the data file 24 in a normal loading mode In the normal loading mode, minimal integnty checking is performed on the portions 26A-26N of the data file If a corrupted portion of the data file 24 is encountered while loading in the normal mode, the spreadsheet application program 10 switches to a safe loading mode and begms loading the data file 24 fi-om the beginmng For instance, as shown in FIGURE 2, when the corrupted portion 26B is encountered in the normal loading mode, the loading mode is changed to the safe loadmg mode and loadmg begins again at the beginnmg of the data file 24
In the safe loading mode, additional integnty checking is performed on the portions 26A-26N of the data file 24 as compared to the normal loadmg mode Additionally, if a corrupted portion is encountered while loading in the safe mode, an attempt is made to repair the corrupted portion If the corrupted portion can be repaired, that portion is loaded If the corrupted portion cannot be repaired, then the loading of the corrupted portion is skipped For example, as shown in FIGURE 2 the portion 26B is corrupted and cannot be repau-ed Therefore, the loading of the portion 26B is skipped and the portion 26C is loaded
After the portion 26C has been loaded, an attempt is then made to load the portion 26D However, as shown in FIGURE 2, the portion 26D is corrupt Accordingly, an attempt is made to repair the portion 26D If the portion 26D cannot be loaded, the loadmg of the portion 26D is skipped and this process continues until the remaimng portions have been loaded or skipped Accordmg to an embodiment of the invention, the loading of the data file 24 may return to the beginnmg of the data file 24 after an unloadable portion has been encountered and determined to be unrepairable This is illustrated in FIGURE 2 Retummg to the beginmng of the data file 24 in this manner allows the loading of other portions of the data file 24 that are related to an unloadable portion to be skipped even though the related portions may not be corrupt
If, dunng the loading of the data file 24, a portion is encountered that is unloadable and unrepairable, the spreadsheet application program 10 may switch to a third loading mode, called the recovery loading mode In the recovery loading mode, an attempt is made to load only the user data fi-om the data file In particular, with
regard to a text document an attempt is made to load only the text of the document With regard to a spreadsheet document, an attempt is made to load the contents of the spreadsheet cells, including data input by a user, formulas, and formula generated data In this manner, even if portions of the data file are corrupt, some or all of the user data may be recovered and loaded This process is illustrated by the dotted Ime in FIGURE 2 and would be performed if the portion 26D was determined to be unloadable and unrepairable, and that the file should not be loaded at all without it Additional details regarding this process are provided below with respect to FIGURES 3A-3B
Refemng now to FIGURES 3A-3B, the routine 300 will be descnbed illustrating a process performed by the spreadsheet application program 10 for loading the contents of a data file 24 When reading the discussion of the routines presented herein, i( should be appreciated that the logical operations of various embodiments of the present invention are implemented (1) as a sequence of computer implemented acts or program modules rurming on a computing system and/or (2) as interconnected machine logic circuits or cu-cuit modules within the computing system The implementation is a matter of choice dependent on the performance requirements of the computing system implementmg the mvention Accordingly, the logical operations illustrated in FIGURES 3A-3B, and making up the embodiments of the present invention descnbed herein are referred to vanously as operations, structural devices, acts or modules It will be recognized by one skilled in the art that these operations, structural devices, acts and modules may be implemented in software, in firmware, in special purpose digital logic, and any combination thereof without deviating from the spint and scope of the present invention as recited within the claims set forth herein
It should be appreciated that the routine 300 utilizes several vanables m Its operation In particular, the "mode" variable keeps track of the current loading mode This variable may be set to either "safe," "normal," or "recovery " The "skip counter' variable is a data structure used to identify individually each of the portions that should be skipped dunng loadmg A "number of records to skip" vanable descnbes the current number of sections that should be skipped on the current load attempt A "current record" vanable identifies the current section within the data file
bemg processed It should be appreciated that more or fewer vanables may be utihzed to perform the same task Moreover, it should be appreciated that the routine 300 illustrated in FIGURE 3 represents but one possible implementation of the invention and that many other implementations will be apparent to those skilled in the art
The routine 300 begins at either operation 302, 304, or 306 In particular, according to embodiments of the invention, a user interface may be provided that allows a user to select whether a data file is loaded normally (operation 304), is loaded m the safe loadmg mode (operation 302), or is loaded m the recovery loadmg mode (306) This user mterface may be presented to a user when the user requests that a file be loaded Based on the user's selection within the user mterface, the routme 300 begms its operation at either operation 302, 304, or 306
If loadmg is to begm in the safe loading mode, the routine 300 begins at operation 302, where the mode vanable is set to "safe " The routine 300 then continues to operation 308 If loading is to begin in the normal loading mode, the routme 300 begins at operation 304, where the mode vanable is set to "normal" The routine 300 then continues from operation 304 to operation 308 If loadmg is to begin in the recovery loading mode, the routine begins at operation 306, where the mode vanable is set to "recovery " From operation 306, the routine 300 continues to operation 348, descnbed below
At operation 308, the skip counter vanable is imtialized to indicate that no records should be skipped The routme 300 then contmues to operation 310 where the current record is set to the first record in the data file The number of records to skip vanable is mitialized as well On the first pass, this sets the number of records to skip equal to zero From operation 310, the routine 300 continues to operation 312
At operation 312, an attempt is made to load the current record in the current mode For instance, if the mode vanable is equal to "normal," mimmal integnty checking is perfomied on the section bemg loaded If the mode vanable is equal to "safe," additional integnty checking is performed From operation 312, the routine 300 continues to operation 314, where a determination is made as to whether the current record is unloadable (i e either corrupt or missing) If the current record is loadable,
the routine 300 branches to operation 316 where a determmation is made as to whether more records remain to be loaded If more records exist, the routine 300 branches from operation 316 to operation 318 where the current record vanable is set to the next record m the data file The routine 300 then continues to operation 321, where the next record is loaded If, at operation 316, it is determined that no additional records remain to be loaded, the routine 300 branches to operation 320 where it ends In this manner, all records are loaded m the current mode if no corrupt or missing records exist
It should be appreciated that, m embodiments of the invention, some integrity checks may be performed at the feature level as opposed to the record level To perform such featiu-e level mtegnty checking, all of the records for a particular feature are loaded Then, a determination is made as to whether the data for the feature is vabd If the data is mvalid, the skip data structure is updated with the records for the feature to be skipped and the file is reloaded File-level consistency checks may also be made in a similar manner
If, at operation 314, it is determmed that the current record is unloadable, the routine 314 contmues to operation 322 where a determination is made as to whether the current mode is the normal mode If the current mode is the normal mode, the routme 300 branches to operation 324, where the record is flagged in the skip counter vanable indicatmg that a portion of the data file has been identified that may need to be skipped The routine 300 then continues to operation 326, where the mode vanable is set to "safe " In this mamier, the loading mode is switched from normal to safe upon encountenng an unloadable portion of the data file The routine 300 then returns back to operation 310, where the processmg the of the data file returns to the beginning
If, at operation 322, it is determmed that the current loading mode is not the normal mode, the routine 300 contmues to operation 328 where a determmation is made as to whether the current loading mode is the safe mode Because only the normal or safe loading modes should be possible values m this portion of the routme 300, the routine branches to operation 330 where an error is returned if the current loadmg mode is not the safe mode The routine 300 then contmues from operation 330
to operation 320, where it ends If, however, at operation 328 it is determined that the current mode is the safe mode, the routine 300 continues to operation 332
At operation 332, an attempt is made to repair the current record At operation 334, a determination is made as to whether the current record was repairable If the record was repairable, the routine 300 branches to operation 336, where the current record is loaded At operation 336, the skip counter vanable is also updated to mdicate that loading of the current record should not be skipped because the record was repairable From operation 336, the routine 300 branches back to operation 316, where the remainder of the records of the data file are processed vn the manner descnbed above
If, at operation 334, it is determmed that the current record could not be repaired, the routine 300 branches to operation 338 At operation 338, a determination is made as to whether the number of records to skip is equal to zero This would be the case where loading was started m the normal mode and where the first corrupt record was encountered and the record is unrepairable In this case, the routme 300 branches to operation 340, where the skip counter vanable is updated to indicate that the record should be skipped The routme 300 then returns to operation 310, where processing of the data file returns to the beginmng in the manner descnbed above
If, at operation 338, it is determined that the number of records to skip is not equal to zero, the routine 300 contmues to operation 342, where an attempt is made to skip the loadmg of the current record At operation 344 a determination is made as to whether the loading of the current record may be skipped If loadmg of the current record can be skipped, the routme 300 branches to operation 346 where the record is flagged m the skip record vanable The routine then continues to operation 316, descnbed above
If, at operation 344, it is determined that the current record cannot be skipped, the routine 300 continues to operation 306 where the mode variable is set to "recovery " The routine 300 then continues to operation 348, where an attempt is made to load the data file in the recovery mode As descnbed above, only user data is loaded in the recovery mode Moreover, an attempt is made to load as much of the user data as
possible if the user data also is corrupted The routine 300 then contmues to operation 320, where it ends
Based on the foregoing, it should be appreciated that the vanous embodiments of the invention include a method, system, apparatus, and computer-readable medium for loading the contents of a data file The above specification, examples and data provide a complete descnption of the manufacture and use of the composition of the invention Smce many embodiments of the invention can be made without departing from the spint and scope of the mvention, the invention resides in the claims hereinafter appended.
We Claim:
1. (Amended) A method for loading a data file including at least one
portion, the method comprising:
attempting to load the at least one portion of the data file in a first mode, wherein attempting to load the at least one portion comprises;
initializing a skip counter to identify each of the at least one portions that can be skipped, and
performing integrity checking on each of the at least one portions; determining in the first mode whether a portion of the at least one portion is unloadable, wherein determining in the first mode whether the portion of the at least one portion is unloadable comprises determining whether a current mode is at least one of the following: normal mode and safe mode; and
in response to determining that the portion of the at least one portion is unloadable,
flagging the skip counter to indicate that the unloadable portion can be skipped,
switching to a second loading mode, and
attempting to load the data file in the second mode wherein additional integrity checking is performed on each of the at least one portions, wherein loading of each unloadable portion and loading of each portion related to each unloadable portion are skipped, wherein while attempting to load the data file in the second mode determining whether the unloadable portion may be repaired, and in response to determining that the unloadable portion may be repaired, repairing the unloadable portion, unflagging the skip counter, and loading a repaired portion.
2. (Amended) The method of Claim 1, further comprising in response
to determining that the unloadable portion may not be repaired, skipping the
loading of the unloadable portion.
3. (Currently Amended) The method of Claim 2, further comprising:
determining whether the loading of the unloadable portion may be
skipped; and
in response to determining that the loading of the unloadable portion cannot be skipped, attempting to load the data file in a third mode, wherein in the third mode only portions of the data file corresponding to user data are loaded.
4. (Original) The method of Claim 3, wherein the user data comprises text data entered by a user.
5. (Original) The method of Claim 3, wherein the user data comprises numerical data entered by a user.
6. (Amended) A computer-readable storage medium having computer-executable instructions stored thereon which, when executed by a computer, will cause the computer to:
provide a first loading mode for loading a data file having at least one portion, wherein providing the first loading mode, initialize a skip counter to identify each of the at least one portion that can be skipped and wherein integrity checking is performed on each of the at least one portions when loading in the first loading mode;
provide a second loading mode for loading the at least one portion of the data file, wherein additional integrity checking is performed on each of the at least one portions and wherein loading of each unloadable portion, and loading of each portion related to an unloadable portion are skipped;
begin loading the data file in the first loading mode, wherein while loading the data file, determine whether a current mode is at least one of the following: normal mode and safe mode;
determine when operating in the first loading mode whether a portion of the data file is unloadable and in response to determining that the portion is
unloadable, flag the skip counter to indicate that the unloadable portion can be skipped and switch to the second loading mode; and to
attempt to load the data file in the second mode, wherein while attempting to load the data file in the second mode, determine whether the unloadable portion may be repaired, and in response to determining that the unloadable portion may be repaired, repair the unloadable portion, unflag the skip counter, and load the repaired portion
7. (Amended) The computer-readable storage medium of Claim 6, wherein in the second loading mode the loading of the unloadable portion is skipped in response to determining that an unloadable portion may not be repaired.
8. (Amended) The computer-readable storage medium of Claim 7 comprising further computer-readable instructions which, when executed by the computer, cause the computer to:
provide a third loading mode wherein in the third mode only portions of the data file corresponding to user data are loaded;
to determine while operating in the second loading mode whether the loading of an unloadable portion may be skipped; and
in response to determining that the loading of an unloadable portion cannot be skipped, switching to the third loading mode.
9. (Amended) The computer-readable storage medium of Claim 8, wherein the user data comprises text data entered by a user.
10. (Amended) The computer-readable storage medium of Claim 9, wherein the user data comprises numerical data entered by a user.
11. (New) A method for loading a data file including at least one record, the method comprsing;
selecting a load mode by a user;
initializing a skip counter indicating that no records can be skipped;
initializing a number of records to be skipped counter indicating the number of records to be skipped;
loading the data file in a first mode, wherein loading the data file comprises performing integrity checking on each of the at least one record;
determining in the first mode whether a record of the data file is unloadable;
in response to determining that the record of the data file is unloadable, determining in the first mode whether a current mode is a normal mode, wherein flagging the skip counter to indicate that the unloadable record can be skipped and switching the current mode to a safe mode wherein loading the data file from the beginning;
in response to determining in the first mode that the current mode is not the normal mode, determining whether the current mode is the safe mode, wherein returning an error if the current loading mode in not the safe mode;
attempting to load the data file in a second mode, wherein while attempting to load the data file in the second mode, determining whether to repair the unloadable record;
in response to determining whether to repair the unloadable record, unflagging the skip counter and loading the record if the record is repaired and determining the number of records to be skipped when the record is not repaired; and
wherein in response to determining that the number of records to be skipped, flagging the skip counter if the records to be skipped is equal to zero and attempting to skip loading of the record if the number of records to be skipped is not equal to zero.
12. (New) The method of Claim 11, further comprising in response to determining that an unloadable record may not be repaired, skipping the loading of the unloadable record.
13. (New) The method of Claim 12, further comprising:
determining whether the loading of an unloadable record may be skipped;
and
in response to determining that the loading of an unloadable record cannot be skipped, attempting to load the data file in a third mode, wherein in the third mode only record of the data file corresponding to user data are loaded.
14. (New) The method of Claim 13, wherein the user data comprises text data entered by a user.
15. (New) The method of Claim 13, wherein the user data comprises numerical data entered by a user.
| Section | Controller | Decision Date |
|---|---|---|
| # | Name | Date |
|---|---|---|
| 1 | 2978-DEL-2005-Form-13-(06-11-2008).pdf | 2008-11-06 |
| 1 | 2978-DEL-2005-US(14)-HearingNotice-(HearingDate-24-03-2021).pdf | 2021-10-03 |
| 2 | 2978-DEL-2005-Correspondence to notify the Controller [09-03-2021(online)].pdf | 2021-03-09 |
| 2 | 2978-DEL-2005-GPA-(16-06-2010).pdf | 2010-06-16 |
| 3 | 2978-DEL-2005-Correspondence-Others-(16-06-2010).pdf | 2010-06-16 |
| 3 | 2978-DEL-2005-Correspondence to notify the Controller [08-03-2021(online)].pdf | 2021-03-08 |
| 4 | Other Patent Document [01-11-2016(online)].pdf | 2016-11-01 |
| 4 | 2978-DEL-2005-Form-1-(29-12-2010).pdf | 2010-12-29 |
| 5 | 2978-DEL-2005_EXAMREPORT.pdf | 2016-06-30 |
| 5 | 2978-DEL-2005-Correspondence-Others-(29-12-2010).pdf | 2010-12-29 |
| 6 | Abstract.pdf | 2015-07-06 |
| 6 | 2978-del-2005-gpa.pdf | 2011-08-21 |
| 7 | Claims_clean.pdf | 2015-07-06 |
| 7 | 2978-del-2005-form-5.pdf | 2011-08-21 |
| 8 | CS amended_marked up-claims.pdf | 2015-07-06 |
| 8 | 2978-del-2005-form-3.pdf | 2011-08-21 |
| 9 | 2978-del-2005-form-2.pdf | 2011-08-21 |
| 9 | FORM 1-2-5-CS.pdf | 2015-07-06 |
| 10 | 2978-del-2005-form-18.pdf | 2011-08-21 |
| 10 | new covering letter.pdf_8.pdf | 2015-07-06 |
| 11 | 2978-del-2005-form-13.pdf | 2011-08-21 |
| 11 | RTFER_PD000900IN-SC_DN-AG.pdf | 2015-07-06 |
| 12 | 2978-del-2005-form-1.pdf | 2011-08-21 |
| 12 | Details under section 8.pdf | 2015-05-12 |
| 13 | 2978-del-2005-drawings.pdf | 2011-08-21 |
| 13 | new covering letter.pdf | 2015-05-12 |
| 14 | 2978-del-2005-description (complete).pdf | 2011-08-21 |
| 14 | new covering letter.pdf_24.pdf | 2015-05-12 |
| 15 | 2978-del-2005-correspondence-others.pdf | 2011-08-21 |
| 15 | FORM-6-601-700(PRS).76.pdf | 2015-03-13 |
| 16 | 2978-del-2005-abstract.pdf | 2011-08-21 |
| 16 | 2978-del-2005-claims.pdf | 2011-08-21 |
| 17 | 2978-del-2005-assignment.pdf | 2011-08-21 |
| 18 | 2978-del-2005-claims.pdf | 2011-08-21 |
| 18 | 2978-del-2005-abstract.pdf | 2011-08-21 |
| 19 | 2978-del-2005-correspondence-others.pdf | 2011-08-21 |
| 19 | FORM-6-601-700(PRS).76.pdf | 2015-03-13 |
| 20 | 2978-del-2005-description (complete).pdf | 2011-08-21 |
| 20 | new covering letter.pdf_24.pdf | 2015-05-12 |
| 21 | 2978-del-2005-drawings.pdf | 2011-08-21 |
| 21 | new covering letter.pdf | 2015-05-12 |
| 22 | 2978-del-2005-form-1.pdf | 2011-08-21 |
| 22 | Details under section 8.pdf | 2015-05-12 |
| 23 | 2978-del-2005-form-13.pdf | 2011-08-21 |
| 23 | RTFER_PD000900IN-SC_DN-AG.pdf | 2015-07-06 |
| 24 | new covering letter.pdf_8.pdf | 2015-07-06 |
| 24 | 2978-del-2005-form-18.pdf | 2011-08-21 |
| 25 | 2978-del-2005-form-2.pdf | 2011-08-21 |
| 25 | FORM 1-2-5-CS.pdf | 2015-07-06 |
| 26 | 2978-del-2005-form-3.pdf | 2011-08-21 |
| 26 | CS amended_marked up-claims.pdf | 2015-07-06 |
| 27 | 2978-del-2005-form-5.pdf | 2011-08-21 |
| 27 | Claims_clean.pdf | 2015-07-06 |
| 28 | 2978-del-2005-gpa.pdf | 2011-08-21 |
| 28 | Abstract.pdf | 2015-07-06 |
| 29 | 2978-DEL-2005-Correspondence-Others-(29-12-2010).pdf | 2010-12-29 |
| 29 | 2978-DEL-2005_EXAMREPORT.pdf | 2016-06-30 |
| 30 | 2978-DEL-2005-Form-1-(29-12-2010).pdf | 2010-12-29 |
| 30 | Other Patent Document [01-11-2016(online)].pdf | 2016-11-01 |
| 31 | 2978-DEL-2005-Correspondence-Others-(16-06-2010).pdf | 2010-06-16 |
| 31 | 2978-DEL-2005-Correspondence to notify the Controller [08-03-2021(online)].pdf | 2021-03-08 |
| 32 | 2978-DEL-2005-GPA-(16-06-2010).pdf | 2010-06-16 |
| 32 | 2978-DEL-2005-Correspondence to notify the Controller [09-03-2021(online)].pdf | 2021-03-09 |
| 33 | 2978-DEL-2005-US(14)-HearingNotice-(HearingDate-24-03-2021).pdf | 2021-10-03 |
| 33 | 2978-DEL-2005-Form-13-(06-11-2008).pdf | 2008-11-06 |