Helle Richard,
Le 18/06/2017 à 23:10, Richard llom a écrit :
Hello fellow scilab-users,
I'm writing a script to read and process files, which are constructed as
follows:
<file start>
PCB: 007
ASM: 000
LOT: 00000
FW: 1477971088
CH1: AMPS 10A
CH2: VOLT 60V
SMPL: 0064 0125Hz
DESC: 12V CU LOG
UTC TIME SEC ,CH1 AMPS DC ,CH2 VOLT DC
1497812372.910, 8.609146E-03, 1.210613E001
1497812373.895, 1.577809E-01, 1.207540E001
1497812374.578, 1.010268E000, 1.193087E001
... [snip]
<file end>
To process this file further, I need:
1)
the first eight lines stored in pairs, e.g.
info(1,1) should yield "PCB" and info(1,2) should yield "007" (string is ok)
2)
line #9 (header), should be available as header(1)="UTC TIME SEC", etc...
3)
line 10+
these should be scanned in as a matrix.
I already tried csvread and msscanf (?), however with no luck so far...
You may use the following:
[M, comments] = csvRead("data.txt", ",", ".", "double",[], "/^[^0-9\-]/"); M
header = tokens(comments($), ",")'
params = csvTextScan(comments(1:$-1), ":", [], "string")
-->[M, comments] = csvRead("data.txt", ",", ".", "double",[],
"/^[^0-9\-]/"); M
M =
1.498D+09 0.0086091 12.10613
1.498D+09 0.1577809 12.0754
1.498D+09 1.010268 11.93087
-->header = tokens(comments($), ",")'
header =
!UTC TIME SEC CH1 AMPS DC CH2 VOLT DC !
-->params = csvTextScan(comments(1:$-1), ":", [], "string")
params =
!PCB 007 !
!ASM 000 !
!LOT 00000 !
!FW 1477971088 !
!CH1 AMPS 10A !
!CH2 VOLT 60V !
!SMPL 0064 0125Hz !
!DESC 12V CU LOG !
HTH
Samuel
_______________________________________________
users mailing list
[email protected]
http://lists.scilab.org/mailman/listinfo/users