annotate scripts/io/textread.m @ 10627:8dce19c3ecf7

fix typo in textread
author Jaroslav Hajek <highegg@gmail.com>
date Tue, 11 May 2010 10:28:16 +0200
parents b96e9239178e
children be55736a0783
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9746
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
1 ## Copyright (C) 2009 Eric Chassande-Mottin, CNRS (France)
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
2 ##
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
3 ## This program is free software; you can redistribute it and/or modify
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
4 ## it under the terms of the GNU General Public License as published by
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
5 ## the Free Software Foundation; either version 3 of the License, or
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
6 ## (at your option) any later version.
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
7 ##
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
8 ## This program is distributed in the hope that it will be useful,
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
9 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
10 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
11 ## GNU General Public License for more details.
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
12 ##
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
13 ## You should have received a copy of the GNU General Public License
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
14 ## along with this program; if not, see
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
15 ## <http://www.gnu.org/licenses/>.
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
16
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
17 ## -*- texinfo -*-
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
18 ## @deftypefn {Function File} {[@var{a}, @dots{}] =} textread (@var{filename})
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
19 ## @deftypefnx {Function File} {[@var{a}, @dots{}] =} textread (@var{filename}, @var{format})
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
20 ## @deftypefnx {Function File} {[@var{a}, @dots{}] =} textread (@var{filename}, @var{format}, @
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
21 ## @var{prop1}, @var{value1}, @dots{})
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
22 ## Read data from a text file.
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
23 ##
9758
09da0bd91412 Periodic grammar check of Octave documentation files to ensure common format
Rik <rdrider0-list@yahoo.com>
parents: 9746
diff changeset
24 ## The file @var{filename} is read and parsed according to @var{format}. The
9746
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
25 ## function behaves like @code{strread} except it works by parsing a file instead
9758
09da0bd91412 Periodic grammar check of Octave documentation files to ensure common format
Rik <rdrider0-list@yahoo.com>
parents: 9746
diff changeset
26 ## of a string. See the documentation of @code{strread} for details.
9746
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
27 ## In addition to the options supported by @code{strread}, this function
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
28 ## supports one more:
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
29 ## @itemize
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
30 ## @item "headerlines":
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
31 ## @end itemize
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
32 ## The first @var{value} number of lines of @var{str} are skipped.
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
33 ## @seealso{strread, load, dlmread, fscanf}
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
34 ## @end deftypefn
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
35
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
36 function varargout = textread (filename, formatstr = "%f", varargin)
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
37 ## Check input
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
38 if (nargin < 1)
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
39 print_usage ();
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
40 endif
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
41
10627
8dce19c3ecf7 fix typo in textread
Jaroslav Hajek <highegg@gmail.com>
parents: 9828
diff changeset
42 if (!ischar (filename) || !ischar (formatstr))
9746
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
43 error ("textread: first and second input arguments must be strings");
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
44 endif
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
45
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
46 ## Read file
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
47 fid = fopen (filename, "r");
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
48 if (fid == -1)
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
49 error ("textread: could not open '%s' for reading", filename);
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
50 endif
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
51
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
52 ## Maybe skip header lines
9828
b96e9239178e fix textread bug
Jaroslav Hajek <highegg@gmail.com>
parents: 9758
diff changeset
53 headerlines = find (strcmpi (varargin, "headerlines"), 1);
9746
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
54 if (! isempty (headerlines))
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
55 fskipl (fid, headerlines);
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
56 varargin(headerlines:headerlines+1) = [];
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
57 endif
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
58
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
59 str = fread (fid, "char=>char").';
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
60 fclose (fid);
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
61
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
62 ## Call strread to make it do the real work
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
63 [varargout{1:max (nargout, 1)}] = strread (str, formatstr, varargin {:});
31a22d48f41f scripts/io/strread.m scripts/io/textread.m: new functions
Soren Hauberg <hauberg@gmail.com>
parents:
diff changeset
64 endfunction