Here is an example of IDL programming, dealing with the common situation of reading in columns of data. See also Section 3.2.2.
; Common IDL functions
; Read the contents of an array from a file.
;
; The file is in `Fortran format': it holds the contents of the array
; as a list of numbers, with the left-most array index changing
; fastest. For simplicity, the function does no error checking, and
; assumes that the array is the right length.
pro read_file, a, fn
openr, iu, fn, /get_lun ; open the file to read, allocate unit
readf, iu, a
free_lun, iu ; close the file and release the unit.
end
; Read columns of numbers into a 2-d array.
;
; Given a file with n columns and m rows, this takes an n x m
; array and fills it with the contents of the file.
;
; It ignores lines beginning #
pro read_columns, a, fn
dims = size (a) ; get array dimensions
line = ''
print, "cols=",dims[1]," rows=",dims[2]
openr, iu, fn, /get_lun
linevals = fltarr(dims[1])
i = 0
while not eof(iu) do begin
readf, iu, line
if (strmid(line,0,1) ne '#') then begin
reads,line,linevals
if (n_elements(linevals) ne dims[1]) then begin
print,'line ',i,": expected',dims[1], $
' got',n_elements(linevals)
return
endif
if (i ge dims[2]) then message,'too many lines in file'
a(*,i) = linevals
i = i+1
endif
end
if (i ne dims[2]) then message,'too few lines in file'
close, iu
end