How to read from a *.txt file to assign variables and paths
9 次查看(过去 30 天)
显示 更早的评论
I would like to read from a text file that has the format of the following:
BASEPATH="'/Users/asdf/xyz'"
FILENAME1="'HELLO.txt'"
FILENAME2="'GOODBYE.txt'"
XVALUE="1"
YVALUE="2"
The purpose is to use this as an input file to import other files, HELLO.txt and GOODBYE.txt (in the same directory - /Users/asdf/xyz), and assign values for a few variables (XVALUE = 1 and YVALUE = 2).
Any help will be appreciated. Thanks!
0 个评论
采纳的回答
Matt Kindig
2013-7-24
编辑:Matt Kindig
2013-7-24
Easiest way is to parse with regular expressions and read into an output structure with named fields.
%read in file
str = fileread('/path/to/your/file.txt');
%extract fields and values
pieces = regexp(str, '(?<field>\w+)=(?<value>[^\n]+)', 'names');
out = struct(); %your variables
for k=1:length(pieces),
field = pieces(k).field;
val = pieces(k).value;
tf= ismember(val, char([34 39])); %remove " and ' from string
val = strtrim(val(~tf)); %also remove spaces
%try to convert to double. If successful, use converted value,
%otherwise use original (string) value
valn = str2double(val);
if ~isnan(valn), %conversion successful, use as numeric
val = valn;
end
%add to output structure
out.(field) = val;
end
4 个评论
Matt Kindig
2013-7-27
To clarify, you want to combine together the contents of all files which have the same 4-letter combo immediately prior to the file extension? If so, this is a bit different than the posted question, so you're better off starting a new question in this forum.
Matt Kindig
2013-7-27
In particular, there are several Linux tools that would probably be faster and better for this task. Also, this can probably be done quite efficiently in Perl.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Type Conversion 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!