Delete last 4 characters in a string variable
显示 更早的评论
In my script, I have used the 'uigetfile' function to acquire the FileName and PathName of a .txt file in order to read it. Later in the script I need to parse that file and write the parsed information to another .txt file. I want to name the file I am writing to to a similar name as the file I'm reading from. Example:
Open/read from: C:\Documents and Settings\blah\TestFile.txt
Write/parsed to: C:\Documents and Settings\blah\TestFileParsed.txt
Basically how do I delete the last four characters in a string variable? Thanks for the help!
采纳的回答
更多回答(2 个)
Walter Roberson
2011-3-29
Locating and removing the suffix:
idx = find(ismember(S,'./\:'),1,'last');
if S(idx) == '.'; S(idx:end) = []; end
The above includes protections against the possibility that the final component of the path does not include a '.'
If you are sure as sure as sure can be that the final component includes a '.', then
S(find(S=='.',1,'last'):end) = [];
1 个评论
Alexei
2014-7-30
Hi! I'm just curious to learn more about your suggestion. First, why did you include
'./\:'
in the string to compare S to, instead of just
'.'
?
Aren't we only interested in the period? It seems to me it should be
idx = find(ismember(S,'.'),1,'last');
Secondly, what is the benefit to using it this way of wrapping the find() function around the ismember() function, instead of using strfind() function?
Thanks
Steven Lord
2018-11-15
2 个投票
1 个评论
Walter Roberson
2018-11-16
fileparts is good because it does not assume that the extension is 3 characters long.
类别
在 帮助中心 和 File Exchange 中查找有关 Scope Variables and Generate Names 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!