DMUG-Archiv 2011

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

Re: NotebookGetExpression

Hallo Robert,

Hast du eine Idee wie man eine bestehende Cell mit Evaluatable -> False
versieht (natürlich automatisiert, nicht über das Menue)
Habe:
FrontEndTokenExecute[SelectedNotebook[], ...]
vesucht doch in der Doku für CellProperties scheint keine Möglichkeit auf.

Hab'ne Idee, man programmiert das Notebook mit den Ergebnissen von einem working notebook aus:


In[156]:= Remove[nb]
nb = NotebookPut[
   Notebook[{Cell[BoxData[RowBox[{"17", "^", "4"}]], "Input",
      CellTags -> {"thisOne"}],
     Cell[BoxData[RowBox[{"Sin", "[", "Pi/4", "]"}]], "Input"]}]];

In[158]:= SelectionMove[nb, Next, Cell]

In[159]:= SelectionMove[nb, Next, Cell]

In[160]:= SelectionEvaluateCreateCell[nb]

In[162]:= SetSelectedNotebook[nb]; NotebookLocate["thisOne"]

In[163]:= SelectionEvaluateCreateCell[nb]

In[165]:= NotebookPut[
 NotebookGet[nb] /.
  Cell[c_, "Output", p___, CellTags -> "thisOne", q___] :>
   Cell[c, "Input", Evaluatable -> False, Editable -> False, p, q], nb]

Out[165]= NotebookObject[
FrontEndObject[
LinkObject["eay_shm", 1, 1]], 49]

In[166]:= NotebookSave[nb, "nowakAutomated.nb"]
NotebookClose[nb]


Für die Anschaulichkeit wird als Finte erst auf die zweite Zelle gegangen und diese evaluiert. Dann kehrt man zur ersten Zelle - um die es gehen soll - zurück, evaluiert sie und wandelt das Ergebnis anhand ihres CellTag zu einer nichteditierbaren und nichtevaluierbaren Input-Zelle um. Voilà.

Wenn nowakAutomated.nb geöffnet wird, dann ist die Zelle mit dem Ergebnis 83521 weder editierbar noch evaluierbar, Mma gibt einen beep.

Gruss
Udo.



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

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