comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: Read ASCII File with tab seperator
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: Read ASCII File with tab seperator [message #75388 is a reply to message #75387] Wed, 02 March 2011 09:50 Go to previous messageGo to previous message
Michael Galloy is currently offline  Michael Galloy
Messages: 1114
Registered: April 2006
Senior Member
On 3/2/11 10:30 AM, Michael Galloy wrote:
> On 3/2/11 10:01 AM, naoh wrote:
>> Hi everyone,
>>
>> I'm trying to read an ascii file with tabs as seperator. The catch is
>> that when the value equals zero, it is not actually written into the
>> file. Example 1 gives the file as it should look like if zeros where
>> present. Example 2 gives the actual file ('0' 'TAB' have been replaced
>> by 'TAB' only).
>> I've used the following code for example 1 but can't figure out how to
>> read example 2 without messing the data up.
>> data = fltarr(4,4)
>> readf, lun, data
>>
>> Thank very much for your help!
>>
>> EXAMPLE 1:
>> 1 0 0 0
>> 2 0 10 10
>> 3 0 12 12
>> 4 0 10 10
>>
>> EXAMPLE 2:
>> 1
>> 2 10 10
>> 3 12 12
>> 4 10 10
>
> [507]> d = read_ascii('test.txt', missing_value=0, delimiter=string(9B))
> [508]> help, d
> ** Structure <15b14b8>, 1 tags, length=64, data length=64, refs=1:
> FIELD1 FLOAT Array[4, 4]
> [509]> print, d.field1
> 1.00000 0.00000 0.00000 0.00000
> 2.00000 0.00000 10.0000 10.0000
> 3.00000 0.00000 12.0000 12.0000
> 4.00000 0.00000 10.0000 10.0000
>
> Mike

By the way, here is another (slightly more verbose) way of doing this
that gives a bit more control over data types, etc:

[501]> t = { version: 1., datastart:0L, delimiter:9B, missingvalue:0L,
commentsymbol:'', fieldcount:4L, fieldtypes:lonarr(4) + 3L,
fieldnames:'col' + strtrim(sindgen(4), 2), fieldlocations:lindgen(4),
fieldgroups:lindgen(4) }
[502]> data = read_ascii('test.txt', template=t)
[504]> help, data
** Structure <201e848>, 4 tags, length=64, data length=64, refs=1:
COL0 LONG Array[4]
COL1 LONG Array[4]
COL2 LONG Array[4]
COL3 LONG Array[4]
[505]> print, data.col0
1 2 3 4
[506]> print, data.col1
0 0 0 0
[507]> print, data.col2
0 10 12 10
[508]> print, data.col3
0 10 12 10

You could also read into a single big array:

[515]> t = { version: 1., datastart:0L, delimiter:9B, missingvalue:0L,
commentsymbol:'', fieldcount:4L, fieldtypes:lonarr(4) + 3L,
fieldnames:'col' + strtrim(sindgen(4), 2), fieldlocations:lindgen(4),
fieldgroups:lonarr(4) }
[516]> data = read_ascii('test.txt', template=t)
[517]> help, data
** Structure <1597048>, 1 tags, length=64, data length=64, refs=1:
COL0 LONG Array[4, 4]
[518]> print, data.col0
1 0 0 0
2 0 10 10
3 0 12 12
4 0 10 10

Mike
--
www.michaelgalloy.com
Research Mathematician
Tech-X Corporation
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Anonymous Math Functions in IDL like Matlab
Next Topic: Re: IDL Astron Library now uses Coyote Graphics

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Thu Oct 09 23:58:45 PDT 2025

Total time taken to generate the page: 0.40200 seconds