read_cvs accepts '\t' notation as write_cvs and update help page 04/2104/2
Allan CORNET [Mon, 27 Sep 2010 13:01:05 +0000 (15:01 +0200)]
Change-Id: Id01958c10b047761c29ee146f6fbcc371cc56d76

scilab/modules/spreadsheet/help/en_US/read_csv.xml
scilab/modules/spreadsheet/help/en_US/write_csv.xml
scilab/modules/spreadsheet/macros/read_csv.sci

index d73eb87..d879443 100644 (file)
 
         <listitem>
           <para>a character string. Field separator used, default value is
-          ","</para>
+          ",".</para>
+
+          <para>ascii(9) or "\t" for a tabulation separator are
+          accepted.</para>
         </listitem>
       </varlistentry>
 
index 30b763c..00fa1b0 100644 (file)
@@ -57,7 +57,7 @@
         <term>sep</term>
 
         <listitem>
-          <para>column separator mark, by default a tabulation: ascii(9)</para>
+          <para>column separator mark, by default a tabulation: ascii(9) or "\t".</para>
         </listitem>
       </varlistentry>
 
index 0cc1213..12dd505 100644 (file)
@@ -9,32 +9,36 @@
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
 
-function mat = read_csv(fname,sep)
+function mat = read_csv(fname, sep)
 // Given an ascii  file created by Excel using "Text and comma" format
 // read_csv(fname) returns the corresponding Scilab matrix of strings.
 
   if (type(fname) <> 10) then
-    error(msprintf(gettext("%s: Wrong type for input argument #%d: a string expected.\n"), 'read_csv', 1));
+    error(msprintf(gettext("%s: Wrong type for input argument #%d: a string expected.\n"), "read_csv", 1));
   end
   
-  if (size(fname,'*')<> 1) then
-    error(msprintf(gettext("%s: Wrong size for input argument #%d: a string expected.\n"), 'read_csv', 1));  
+  if (size(fname,"*")<> 1) then
+    error(msprintf(gettext("%s: Wrong size for input argument #%d: a string expected.\n"), "read_csv", 1));  
   end
   
   if argn(2)<2 then 
-    sep = ',';
+    sep = ",";
+  end
+  
+  if sep == "\t" then
+    sep = ascii(9);
   end
   
   if ~isfile(fname) then
-    error(msprintf(gettext("%s: file %s does not exist.\n"), 'read_csv', fname));
+    error(msprintf(gettext("%s: file %s does not exist.\n"), "read_csv", fname));
   end
   
   v = mgetl(fname);
-  v(v == '') = [];
+  v(v == "") = [];
   ns = length(sep);
   mat = [];
   ki = 1;
-  for i = 1 : size(v,'*')
+  for i = 1 : size(v,"*")
     line = v(i);
     K = [strindex(line, sep)];
     ki = 1;
@@ -46,9 +50,9 @@ function mat = read_csv(fname,sep)
     row = [row, part(line, ki:length(line))];
     if (i > 1) then
       if size(row,2) > size(mat,2) then
-        mat($,size(row,2)) = '';
+        mat($,size(row,2)) = "";
       elseif size(row,2) < size(mat,2) then
-        row(1, size(mat,2)) = '';
+        row(1, size(mat,2)) = "";
       end
     end
     mat = [mat; row];