Hi Antoine,


did you also look at fscanfMat ? It's handy when  space or tab separators.



regards,



David

________________________________
De : users [[email protected]] de la part de Antoine Monmayrant 
[[email protected]]
Envoyé : lundi 27 avril 2020 17:40
À : Users mailing list for Scilab
Objet : [Scilab-users] parsing TSV (or CSV) file with scilab is a nightmare


Hi all,


This is both a rant and desperate cry for help.
I'm trying to parse some TSV data (tab separated data file) with scilab and I 
cannot find a way to navigate around the minefield of bugs present in 
meof/mgetl/mgetstr/csvRead.

A bit of context: I need to load into scilab data generated by a closed source 
software.
The data is in the form of many TSV files (that I cannot share in full, just 
some redacted bits) with a header and a footer.
I don't want to hand modify these files or edit them in any way (I need to keep 
this as portable as possible, so no sed/awk/grep...)

OPTION 1: csvRead

That's the most intuitive solution, however, because of 
http://bugzilla.scilab.org/show_bug.cgi?id=16391 and the presence of more than 
1 empty line in my header/footer, this crashes Scilab.

OPTION 2: hand parsing line by line using mgetl/meof

I tried:

filename="tsv.txt";
[fd, err] = mopen(filename, 'rt');
while ~meof(fd) do
    txtline=mgetl(fd,1);
end
mclose(fd)

Saddly, and contrary to what's written in "help mgetl", meof keeps on returning 
0, well passed the end of the file and the while never ends!

OPTION 3: hand parsing chunk by chunk using mgetstr/meof

"help meof" does not confirm that meof should work with mgetl, but mgetstr is 
specifically listed.
I thus tried:

filename="tsv.txt";
[fd, err] = mopen(filename, 'rt');
while ~meof(fd) do
    txtchunk=mgetstr(80,fd);
end
mclose(fd)

But thanks to http://bugzilla.scilab.org/show_bug.cgi?id=16419 this is also 
crashing Scilab.


OPTION 4: Can anyone here help me with this?

I am really running out of ideas.
Did I miss some -hmm- obvious combination of available file parsing scilab 
functions to achieve my goal?
I have the feeling that it would have been faster for me to just learn a 
totally new language that does not suck at parsing files than trying to get it 
to work with scilab....


Antoine

(depressed)



http://bugzilla.scilab.org/show_bug.cgi?id=16419
_______________________________________________
users mailing list
[email protected]
http://lists.scilab.org/mailman/listinfo/users

Reply via email to