CheckDB[exp, fil]
saves (with Put
) or retrieves (with Get
) exp
from a file fil
. It checks if the setting of the option Directory
is a valid directory name and if fil
is a valid file name and does exist. If it does, Get[fil]
is executed. If fil
does not exist, exp
gets evaluated and saved to fil
.
Saving and evaluating can be further controlled with the options ForceSave
and NoSave
. If the option Check
is set to False
the return value is what is evaluated (see above). If Check
is set to True
the return value is True
or False
depending on whether the evaluation of exp
agrees with what is loaded from fil
or fil
does not exist.
Default value of Check : False
. If fil
ends with ".Gen"
or ".Mod"
, the setting of Directory
is ignored and fil
is saved in the "CouplingVectors"
subdirectory of "Phi"
. If fil
ends with ".Fac"
, the setting of Directory is ignored and fil
is saved in the "Factors"
subdirectory of "Phi"
.
If fil
is a file name with full path, the setting of Directory
is also ignored.
The first time the Table function is evaluated and the result saved into the test.s file.
[Table[WriteString["stdout", "test "]; i, {i, 2}], "test.s"] CheckDB
test test
\{1,2\}
Executing the same a second time will just load the result from test.s and not evaluate the Table function.
[Table[WriteString["stdout", "test "]; i, {i, 2}], "test.s"] CheckDB
\{1,2\}
This shows the actual saved value of test.s.
Import[ToFileName[Directory /. Options[CheckDB], "test.s"], "Text"]
\text{$\{$1, 2$\}$}
DeleteFile[ToFileName[Directory /. Options[CheckDB], "test.s"]]