changeset 19485:8d7e760bfa68 stable

importdata.m: better regexp pattern to assess delimiter (bug #43393)
author Philip Nienhuis <prnienhuis@users.sf.net>
date Sat, 11 Oct 2014 16:01:28 +0200
parents d60b44acfff7
children ed1bf35dc11c
files scripts/io/importdata.m
diffstat 1 files changed, 13 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/io/importdata.m
+++ b/scripts/io/importdata.m
@@ -176,7 +176,7 @@
     ## If no delimiter determined yet, make a guess.
     if (isempty (delimiter))
       ## This pattern can be fooled, but mostly does the job just fine.
-      delim = regexp (row, '[-+\d.eE*ij ]+([^-+\d.ij])[-+\d.ij]',
+      delim = regexpi (row, '[-+\d.e*ij ]+([^-+\de.ij])[-+\de*.ij ]',
                       'tokens', 'once');
       #delim = regexp (row, '[+-\d.eE\*ij ]+([^+-\d.ij])[+-\d.ij]',
       #                     'tokens', 'once');
@@ -498,6 +498,18 @@
 %! assert (d, "\t");
 %! assert (h, 0);
 
+%!test
+%! ## Distinguish double from complex when no delimiter is supplied (bug #43393)
+%! fn  = tmpnam ();
+%! fid = fopen (fn, "w");
+%! fputs (fid, "2.0000e+02   4.0000e-04");
+%! fclose (fid);
+%! [a, d, h] = importdata (fn);
+%! unlink (fn);
+%! assert (a, [2e2, 4e-4]);
+%! assert (d, " ");
+%! assert (h, 0);
+
 %!error importdata ()
 %!error importdata (1,2,3,4)
 %!error <FNAME must be a string> importdata (1)