source: issm/branches/trunk-larour-NatGeoScience2016/externalpackages/export_fig/user_string.m@ 21243

Last change on this file since 21243 was 19993, checked in by seroussi, 9 years ago

BUG: reverting back to old export_fig (too many problems)

  • Property svn:executable set to *
File size: 2.4 KB
Line 
1%USER_STRING Get/set a user specific string
2%
3% Examples:
4% string = user_string(string_name)
5% saved = user_string(string_name, new_string)
6%
7% Function to get and set a string in a system or user specific file. This
8% enables, for example, system specific paths to binaries to be saved.
9%
10% IN:
11% string_name - String containing the name of the string required. The
12% string is extracted from a file called (string_name).txt,
13% stored in the same directory as user_string.m.
14% new_string - The new string to be saved under the name given by
15% string_name.
16%
17% OUT:
18% string - The currently saved string. Default: ''.
19% saved - Boolean indicating whether the save was succesful
20
21% Copyright (C) Oliver Woodford 2011-2013
22
23% This method of saving paths avoids changing .m files which might be in a
24% version control system. Instead it saves the user dependent paths in
25% separate files with a .txt extension, which need not be checked in to
26% the version control system. Thank you to Jonas Dorn for suggesting this
27% approach.
28
29% 10/01/2013 - Access files in text, not binary mode, as latter can cause
30% errors. Thanks to Christian for pointing this out.
31
32function string = user_string(string_name, string)
33if ~ischar(string_name)
34 error('string_name must be a string.');
35end
36% Create the full filename
37string_name = fullfile(fileparts(mfilename('fullpath')), '.ignore', [string_name '.txt']);
38if nargin > 1
39 % Set string
40 if ~ischar(string)
41 error('new_string must be a string.');
42 end
43 % Make sure the save directory exists
44 dname = fileparts(string_name);
45 if ~exist(dname, 'dir')
46 % Create the directory
47 try
48 if ~mkdir(dname)
49 string = false;
50 return
51 end
52 catch
53 string = false;
54 return
55 end
56 % Make it hidden
57 try
58 fileattrib(dname, '+h');
59 catch
60 end
61 end
62 % Write the file
63 fid = fopen(string_name, 'wt');
64 if fid == -1
65 string = false;
66 return
67 end
68 try
69 fprintf(fid, '%s', string);
70 catch
71 fclose(fid);
72 string = false;
73 return
74 end
75 fclose(fid);
76 string = true;
77else
78 % Get string
79 fid = fopen(string_name, 'rt');
80 if fid == -1
81 string = '';
82 return
83 end
84 string = fgetl(fid);
85 fclose(fid);
86end
87end
Note: See TracBrowser for help on using the repository browser.