Change the content in an m-file based on check-box input from gui

조회 수: 2 (최근 30일)
Luffy
Luffy 2015년 10월 13일
댓글: Walter Roberson 2015년 10월 14일
Hi,
I have a checkbox in my gui based on which i want to make some changes in another m-file & later run it.
The format of other m-file is like this:-
tclstart = {...
'# ...there is further code above.. #',...
'# .......................... #',...
'set compile 1',...
'# .......................... #',...
'# there is further code below'
}
Based on check-box value
get(h.checkbox1, 'Value');
if it is 1,i want set compile to be 1 in that m-file otherwise 0 as an m-file is similar to txt file,i'm doing this-
content = fileread('tcl.m'); % name of that other m-file
index = regexp(content,'set compile')
Here i'm getting starting index of the matched sub-string,now how can i change the value from 1 to 0/vice-versa.

채택된 답변

Walter Roberson
Walter Roberson 2015년 10월 13일
newvalue = char('0' + get(h.checkbox1, 'Value'));
newcontent = regexprep(content, '(?<=set compile\s+)[01]', newvalue);
  댓글 수: 4
Luffy
Luffy 2015년 10월 13일
편집: Luffy 2015년 10월 13일
Yeah,didn't see this ?<=. But anyway trying that above snippet doesn't change the value in the m file.
To do a quick test,i did this:
content = fileread('tcl.m'); % name of that other m-file
newvalue = '0';
newcontent = regexprep(content, '(?<=set compile\s+)[01]', newvalue);
but the value in the m file remains unchanged
Walter Roberson
Walter Roberson 2015년 10월 14일
The code snippet does not change the .m file: it returns the variable newcontent with the updated information. You can then write newcontent to whatever file.
fid = fopen('tcl.m', 'w');
fwrite(fid, newcontent);
fclose(fid);

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Environment and Settings에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by