Newer
Older
function result = save(self)
%
% save tsg_nc objet in csv file with header description
%
% $Id$
% return filename
% ---------------
% Open the file
% -------------
fid = fopen( self.file, 'wt' );
%if fid ~= -1
%fid = 1;
% get header information from object
% ----------------------------------
key = keys(self.header);
type = values(self.header);
nb = numel(key);
% Write the date and time when the file is saved
% ----------------------------------------------
% TODOS: a changer, le nom tsg_platform ne doit pas etre en dur !!!!!
%
fprintf( fid, '%% tsg_platform.csv: %d members & %d lines with data; VERSION = %5.3f\n',...
self.members, self.size, VERSION) ;
fprintf( fid, '%% $Id$\n%%\n');
% write header
% ------------
for i=1:nb-1;
fprintf( fid, '%s;', key{i});
end
fprintf( fid, '%s\n', key{nb});
for i=1:nb-1;
fprintf( fid, '%s;', type{i});
end
fprintf( fid, '%s\n', type{i});
% get header information from object
% ----------------------------------
data = keys(self.hashtable);
% write data
% ----------
for i=1:self.size;
str = [];
for j=1:nb;
switch type{j}
case 'char'
format = '%s';
case 'integer'
format = '%d';
case 'float'
format = '%f';
case 'double'
format = '%lf';
otherwise
format = '%s';
end
switch j
case 1
str = [str, '#;'];
case nb
str = [str, '#'];
case 2
str = [str,sprintf('%s;', data{i})];
otherwise
value = get(self, data{i}, key{j});
if isempty(value)
str = [str, ';'];
else
str = [str, sprintf(strcat(format, ';'), value)];
end
end
end
fprintf( fid, '%s\n', str);
end
% close file
% ----------
fclose(fid);