<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>I find it safer to process the data without returning to a disk
file. As mentioned I actually prefer to start with mgeti() and
read the file as binary, as then all byte values are accepted.</p>
<p>But anyway with the data separated in lines, it is relatively
simple to split up with the wanted separators and decimal sign :</p>
<pre style="font-family:Monospaced;font-style:normal;font-size:12.0;"><span style="color:rgb(50,185,185);">clear</span> <span style="color:rgb(188,143,143);">dataset</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(0,0,0);">headerlines</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(188,143,143);">3</span>:
<span style="color:rgb(0,0,0);">footerlines</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(188,143,143);">2</span>:
<span style="color:rgb(160,32,240);">for</span> <span style="color:rgb(0,0,0);">k</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(255,170,0);">:</span><span style="color:rgb(50,185,185);">size</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">in_text</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(74,85,219);">)</span>
<span style="color:rgb(160,32,240);">if</span> <span style="color:rgb(0,0,0);">k</span><span style="color:rgb(92,92,92);">></span><span style="color:rgb(0,0,0);">headerlines</span> <span style="color:rgb(92,92,92);">&</span><span style="color:rgb(92,92,92);">&</span> <span style="color:rgb(0,0,0);">k</span><span style="color:rgb(92,92,92);"><</span><span style="color:rgb(0,0,0);">n</span><span style="color:rgb(92,92,92);">-</span><span style="color:rgb(0,0,0);">footerlines</span> <span style="color:rgb(160,32,240);">then</span>
<span style="color:rgb(0,0,0);">datatemp</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(50,185,185);">strtod</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(50,185,185);">strsplit</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">in_text</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">k</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(74,85,219);">[</span><span style="color:rgb(50,185,185);">ascii</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">9</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">;</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(74,85,219);">]</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">,</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(0,0,0);">dataset</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">k</span><span style="color:rgb(92,92,92);">-</span><span style="color:rgb(0,0,0);">headerlines</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(255,170,0);">:</span><span style="color:rgb(50,185,185);">length</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">datatemp</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(0,0,0);">datatemp</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(160,32,240);">end</span>
<span style="color:rgb(160,32,240);">end</span>
<span style="color:rgb(50,185,185);">disp</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">in_text</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(255,170,0);">:</span><span style="color:rgb(0,0,0);">headerlines</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(74,85,219);">)</span>;
<span style="color:rgb(50,185,185);">disp</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">dataset</span><span style="color:rgb(74,85,219);">)</span>;
<span style="color:rgb(50,185,185);">disp</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">in_text</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(255,170,0);">$</span><span style="color:rgb(92,92,92);">-</span><span style="color:rgb(0,0,0);">footerlines</span><span style="color:rgb(92,92,92);">+</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(255,170,0);">:</span><span style="color:rgb(255,170,0);">$</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(74,85,219);">);</span>
<span style="color:rgb(160,32,240);"></span><span style="color:rgb(160,32,240);"></span></pre>
<p>JÅ<br>
</p>
<p><br>
</p>
<div class="moz-cite-prefix">On 2020-04-28 10:14 AM, Rafael Guerra
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:VI1PR0802MB2624E79097C3785533DC89A0CCAC0@VI1PR0802MB2624.eurprd08.prod.outlook.com">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="Generator" content="Microsoft Word 15 (filtered
medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:"Calibri Light";
panose-1:2 15 3 2 2 2 4 3 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
{font-family:Monospaced;
panose-1:0 0 0 0 0 0 0 0 0 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
h2
{mso-style-priority:9;
mso-style-link:"Heading 2 Char";
mso-margin-top-alt:auto;
margin-right:0in;
mso-margin-bottom-alt:auto;
margin-left:0in;
font-size:18.0pt;
font-family:"Calibri",sans-serif;
font-weight:bold;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
pre
{mso-style-priority:99;
mso-style-link:"HTML Preformatted Char";
margin:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Courier New";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
p.msonormal0, li.msonormal0, div.msonormal0
{mso-style-name:msonormal;
mso-margin-top-alt:auto;
margin-right:0in;
mso-margin-bottom-alt:auto;
margin-left:0in;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
span.Heading2Char
{mso-style-name:"Heading 2 Char";
mso-style-priority:9;
mso-style-link:"Heading 2";
font-family:"Calibri Light",sans-serif;
color:#2F5496;}
span.HTMLPreformattedChar
{mso-style-name:"HTML Preformatted Char";
mso-style-priority:99;
mso-style-link:"HTML Preformatted";
font-family:Consolas;}
span.EmailStyle22
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:1834947257;
mso-list-type:hybrid;
mso-list-template-ids:1825707904 -1052064264 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:-;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Calibri",sans-serif;
mso-fareast-font-family:Calibri;
color:windowtext;}
@list l0:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l0:level3
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l0:level4
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l0:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l0:level6
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l0:level7
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l0:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l0:level9
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<div class="WordSection1">
<p class="MsoNormal">Antoine,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">One workflow that works fast for me, for
large data files, is to load first the whole file with mgetl,
then remove all empty lines using isempty in a loop (as shown
below), process the header block, isolate the data block and
save it to a temporary backup file to disk using mputl, then
load very efficiently from disk that backup file using
fscanfMat.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Monospaced",serif;color:black">tlines</span><span
style="font-size:9.0pt;font-family:"Monospaced",serif;color:#5C5C5C">=</span><span
style="font-size:9.0pt;font-family:"Monospaced",serif">
<span style="color:#32B9B9">mgetl</span><span
style="color:#4A55DB">(</span><span style="color:black">fid,</span><span
style="color:#5C5C5C">-</span><span
style="color:rosybrown">1</span><span
style="color:#4A55DB">)</span><span style="color:black">;</span>
<i><span style="color:#64AE64">// reads lines until end of
file into 1 column text vector</span></i><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Monospaced",serif;color:black">bool</span><span
style="font-size:9.0pt;font-family:"Monospaced",serif;color:#5C5C5C">=</span><span
style="font-size:9.0pt;font-family:"Monospaced",serif">
<span style="color:#5C5C5C">~</span><span
style="color:black">cellfun</span><span
style="color:#4A55DB">(</span><span style="color:black">isempty,tlines</span><span
style="color:#4A55DB">)</span><span style="color:black">;</span><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Monospaced",serif;color:black">tlines</span><span
style="font-size:9.0pt;font-family:"Monospaced",serif;color:#5C5C5C">=</span><span
style="font-size:9.0pt;font-family:"Monospaced",serif">
<span style="color:black">tlines</span><span
style="color:#4A55DB">(</span><span style="color:black">bool</span><span
style="color:#4A55DB">)</span><span style="color:black">;</span>
<i><span style="color:#64AE64">// removes empty lines</span></i><o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Monospaced",serif;color:#B01813">function</span><span
style="font-size:9.0pt;font-family:"Monospaced",serif">
<b><span style="color:#834310">out_text</span></b><span
style="color:#5C5C5C">=</span><u><span style="color:black">cellfun</span></u><span
style="color:#4A55DB">(</span><b><span
style="color:#834310">fun</span></b><span
style="color:black">,
</span><b><span style="color:#834310">in_text</span></b><span
style="color:#4A55DB">)</span><o:p></o:p></span></p>
<p class="MsoNormal"><i><span
style="font-size:9.0pt;font-family:"Monospaced",serif;color:#64AE64">//
Applies function to input text (column strings vector),
line by line</span></i><span
style="font-size:9.0pt;font-family:"Monospaced",serif"><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Monospaced",serif">
<span style="color:black">n</span><span
style="color:#5C5C5C">=</span><span style="color:#32B9B9">size</span><span
style="color:#4A55DB">(</span><b><span
style="color:#834310">in_text</span></b><span
style="color:black">,</span><span style="color:rosybrown">1</span><span
style="color:#4A55DB">)</span><span style="color:black">;</span><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Monospaced",serif">
<span style="color:#A020F0">for</span> <span
style="color:black">i</span><span style="color:#5C5C5C">=</span><span
style="color:rosybrown">1</span><span
style="color:#FFAA00">:</span><span style="color:black">n;</span><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Monospaced",serif">
<b><span style="color:#834310">out_text</span></b><span
style="color:#4A55DB">(</span><span style="color:black">i</span><span
style="color:#4A55DB">)</span><span style="color:#5C5C5C">=</span><b><span
style="color:#834310">fun</span></b><span
style="color:#4A55DB">(</span><b><span
style="color:#834310">in_text</span></b><span
style="color:#4A55DB">(</span><span style="color:black">i</span><span
style="color:#4A55DB">))</span><span style="color:black">;</span><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Monospaced",serif">
<span style="color:#A020F0">end</span><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Monospaced",serif;color:#B01813">endfunction</span><span
style="font-size:9.0pt;font-family:"Monospaced",serif"><o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span lang="PT">Regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="PT">Rafael<o:p></o:p></span></p>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:users@lists.scilab.org">users@lists.scilab.org</a>
<a class="moz-txt-link-freetext" href="http://lists.scilab.org/mailman/listinfo/users">http://lists.scilab.org/mailman/listinfo/users</a>
</pre>
</blockquote>
</body>
</html>