0
$\begingroup$

When I try to open my Mathematica file I find a problem:

There was a syntax error in the file being read. Do you want to open it as plain text? A syntax error indicates that the file has become corrupted, or was generated incorrectly. If you choose yes, the file will be opened as a plain text file, with the position of syntax error selected. If you are able to fix the error, save the file and open it again.

$\endgroup$
3
  • $\begingroup$ What format has your file? What is the code you tried? Can you give a simple example? $\endgroup$ Oct 15 '21 at 8:54
  • $\begingroup$ Provide a link to your file, if you can. $\endgroup$
    – Syed
    Oct 15 '21 at 8:58
  • $\begingroup$ And did you open it as a plain text file? And learn anything? $\endgroup$ Oct 15 '21 at 10:03
3
$\begingroup$

If the corruption is minor, you can run the restore utility and follow these directions: Link to Restore discussion

Quiet[<<AuthorTools`]
NotebookRestore[]

However, sometimes that won't work. As a last resort if you have to recover at least some of the contents of your file, you can open it as a text file and excise a complete cell component (with all matching parentheses and brackets) and paste into a new notebook. Not easy.

For the corrupted cells, you would have to manually match up closing parentheses and brackets. Tedious, but possible.

If you want to see what an uncorrupted complete cell looks like, highlight a cell in your notebook by clicking the cell border on the right, then select Cell/Show Expression. Try and excise the complete cell and paste it into a new cell. You will have to convert it to standard input form.. If any of the parentheses or brackets are not matched, you'll have to fix them. Here's an example of the process:

(1) Open up an input cell and write:

(*
 hellow world
*) 

(2) Click the cell border, choose Cell/Show Expression. This formats the cell in text form as you would obtain by opening a notebook in text form although much simpler:

Cell[BoxData[
 RowBox[{"(*", "\[IndentingNewLine]", " ", 
  RowBox[{"hellow", " ", "world"}], "\[IndentingNewLine]", "*)"}]], "Input",
 CellChangeTimes->{{3.843290123752791*^9, 3.843290127360959*^9}}]

Notice all matching parenthesis and brackets. Select this text.

(3) Open up a new (blank) input cell and choose Cell/Show Expression and copy the cell text from above. Now go back to Cell/Show Expression and unselect it to display the cell back to the original Hello World.

$\endgroup$

Not the answer you're looking for? Browse other questions tagged or ask your own question.