# HG changeset patch # User Jaroslav Hajek # Date 1263203698 -3600 # Node ID debb5b35a1a746a3dffbb4cc8bf3673858a8d44f # Parent cf70ee43077c280acfc0124da02fdae77d841cf4 implement fileread diff --git a/scripts/ChangeLog b/scripts/ChangeLog --- a/scripts/ChangeLog +++ b/scripts/ChangeLog @@ -1,3 +1,7 @@ +2010-01-11 Jaroslav Hajek + + * io/fileread.m: New source. + 2010-01-10 Jaroslav Hajek * plot/private/__scatter__.m: Use alternative strategy for larger diff --git a/scripts/io/fileread.m b/scripts/io/fileread.m new file mode 100644 --- /dev/null +++ b/scripts/io/fileread.m @@ -0,0 +1,45 @@ +## Copyright (C) 2010 VZLU Prague +## +## This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 3 of the License, or +## (at your option) any later version. +## +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with this program; if not, see +## . + +## -*- texinfo -*- +## @deftypefn {Function File} {@var{str} =} fileread (@var{filename}) +## Read the contents of a file and return it as a string. +## @seealso{fread, textread} +## @end deftypefn + +function str = fileread (filename) + + if (nargin != 1) + print_usage (); + endif + + if (! ischar (filename)) + error ("fileread: argument must be a string"); + endif + + fid = fopen (filename, "r"); + if (fid < 0) + error ("fileread: cannot open file"); + endif + + unwind_protect + str = fread (fid, "*char"); + unwind_protect_cleanup + fclose (fid) + end_unwind_protect + +endfunction + diff --git a/scripts/io/module.mk b/scripts/io/module.mk --- a/scripts/io/module.mk +++ b/scripts/io/module.mk @@ -5,6 +5,7 @@ io/csvread.m \ io/csvwrite.m \ io/dlmwrite.m \ + io/fileread.m \ io/strread.m \ io/textread.m