MATLAB Answers

Robert
0

How to programmatically create a script with text without saving it?

Asked by Robert
on 14 Aug 2018
Latest activity Edited by Robert
on 14 Aug 2018
Accepted Answer by Jan
What I'm trying to do is have my function start a new m-file and add text to it, but without saving it.
fopen directly saves the file and edit does not let me append content without typing it in the script myself.
The solution could look something like:
contents = 'Hello world!';
edit('tmp.m', contents);
Where contents is to be printed in the file without saving it. I know that edit only takes filenames for inputs but this is just for illustration.

  2 Comments

"fopen directly saves the file"
Not really: fopen opens a file for writing or reading, or both. It does not save any data to any files.
What I meant was that when using fopen with a non-existing file name, the file is created and stored on disk, which wasn't what I wanted.

Sign in to comment.

Products


Release

R2016b

1 Answer

Answer by Jan
on 14 Aug 2018
Edited by Jan
on 14 Aug 2018
 Accepted Answer

Str = sprintf('Hello!\n'Here I am.\n');
EditorService = com.mathworks.mlservices.MLEditorServices;
EditorService.newDocument(Str);
doc matlab.desktop.editor

  1 Comment

Thanks Jan for the quick response. newDocument was not accepted as a method for EditorService, but this worked for me:
str = sprintf('Hello!\nHere I am.\n');
editorService = com.mathworks.mlservices.MLEditorServices;
editorApplication = editorService.getEditorApplication();
editorApplication.newEditor(str);
One small thing: Your string contains a quote that shouldn't be there. Thanks again!

Sign in to comment.