DMUG-Archiv 2011

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: NotebookGetExpression

Das geht zwar, aber schön ist es nicht gerade (man kann InitializationCell->True unten auch weglassen, aber so ist es klarer):

args1 = {x, y};
(* Falls die "Notebook-DumpSave-Initialization-Cell" schon geladen ist, überspringe die Berechnung:*)
If[DownValues[sophisticatedExpensiveResult] === {},
   Print["test 1"];
   sophisticatedExpensiveResult[a_, b_] := {{a, b}}
  ];
If[ !ValueQ[r1], Print["test 2"];
    r1 = sophisticatedExpensiveResult[Sequence @@ args1]];
SetAttributes[DumpSaveToCell, HoldFirst];
DumpSaveToCell[zuspeichern_List] := Block[{tmp,nb=EvaluationNotebook[],nf},
 SetDirectory[$TemporaryDirectory]; DumpSave["aName.mx", zuspeichern];
     tmp = Import["aName.mx", "Binary"]; DeleteFile["aName.mx"];
     NotebookWrite[nb,"LESEZEICHEN","Text",CellTags->"Lesezeichen"];
     SelectionMove[nb,Before,Notebook];
     NotebookWrite[nb,
Cell[StringJoin["Import[#,\"MX\"]&@StringToStream@ExportString[", ToString[tmp], ",\"Binary\"]"], "Input",
        InitializationCell -> True, CellTags -> "DumpSaveCell"]];
       nf= NotebookFind[nb,"Lesezeichen",All,CellTags];
       SelectionMove[nb,After,Cell];
       NotebookDelete[nb];
       ResetDirectory[]];
If[NotebookFind[EvaluationNotebook[], "DumpSaveCell", All, CellTags] === $Failed,
   DumpSaveToCell[{sophisticatedExpensiveResult, args1, r1}]];
r1

(* ****************************************************************** *)

Rolf Mertig
GluonVision GmbH, Berlin
http://www.gluonvision.com

Am 18.05.2011 13:51, schrieb Nowak Robert:
Na ja,

hilft schon, ist aber nicht besser als "manuell"

wenn man das Dump  z.B. in das Notebook selbst dranbasteln könnte ok.

LG Robert



Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html