function file_reading, k, filename ;---------- ;Help ;---------- ;Purpose of function is to simplify reading from files. For this, this function calculates the ;number of lines in file and afterwards proceeds to read with correspondent vector dimension. ;Only information necessary is number of columns in file. ;PARAMETERS: ;1. k number of columns in file ;2. filename string representing name of read file ;---------- ;File preparation ;---------- close,1 read1=string(filename) openr,1,read1 ;---------- ;Variable preparation (line counting) ;---------- N=0L a=0D ;---------- ;Line counting ;---------- while not EOF(1) do begin readf,1,a N=N+1L endwhile close, 1 ;---------- ;Variable preparation (reading) ;---------- k=double(k) data = dblarr(k,N) openr,1,read1 a = 0D b = 0D c = 0D d = 0D e = 0D f = 0D g = 0D h = 0D z = 0D ;no helping it - i is already used for something else j = 0D q = 0D ;the same with k... l = 0D m = 0D ;---------- ;File reading (depending of number of rows) ;---------- if k eq 1 then begin for i=0, N-1 do begin readf, 1,a data[0,i]=a endfor endif if k eq 2 then begin for i=0d, N-1d do begin readf, 1,a,b data[0,i]=a data[1,i]=b endfor endif if k eq 3 then begin for i=0, N-1 do begin readf, 1,a,b,c data[0,i]=a data[1,i]=b data[2,i]=c endfor endif if k eq 4 then begin for i=0, N-1 do begin readf, 1,a,b,c,d data[0,i]=a data[1,i]=b data[2,i]=c data[3,i]=d endfor endif if k eq 5 then begin for i=0D, double(N-1) do begin readf, 1,a,b,c,d,e data[0,i]=a data[1,i]=b data[2,i]=c data[3,i]=d data[4,i]=e endfor endif if k eq 6 then begin for i=0, N-1 do begin readf, 1,a,b,c,d,e,f data[0,i]=a data[1,i]=b data[2,i]=c data[3,i]=d data[4,i]=e data[5,i]=f endfor endif if k eq 7 then begin for i=0, N-1 do begin readf, 1,a,b,c,d,e,f,g data[0,i]=a data[1,i]=b data[2,i]=c data[3,i]=d data[4,i]=e data[5,i]=f data[6,i]=g endfor endif if k eq 8 then begin for i=0, N-1 do begin readf, 1,a,b,c,d,e,f,g,h data[0,i]=a data[1,i]=b data[2,i]=c data[3,i]=d data[4,i]=e data[5,i]=f data[6,i]=g data[7,i]=h endfor endif if k eq 9 then begin for i=0, N-1 do begin readf, 1,a,b,c,d,e,f,g,h,z data[0,i]=a data[1,i]=b data[2,i]=c data[3,i]=d data[4,i]=e data[5,i]=f data[6,i]=g data[7,i]=h data[8,i]=z endfor endif if k eq 10 then begin for i=0, N-1 do begin readf, 1,a,b,c,d,e,f,g,h,z,j data[0,i]=a data[1,i]=b data[2,i]=c data[3,i]=d data[4,i]=e data[5,i]=f data[6,i]=g data[7,i]=h data[8,i]=z data[9,i]=j endfor endif if k eq 11 then begin for i=0, N-1 do begin readf, 1,a,b,c,d,e,f,g,h,z,j,q data[0,i]=a data[1,i]=b data[2,i]=c data[3,i]=d data[4,i]=e data[5,i]=f data[6,i]=g data[7,i]=h data[8,i]=z data[9,i]=j data[10,i]=q endfor endif if k eq 12 then begin for i=0, N-1 do begin readf, 1,a,b,c,d,e,f,g,h,z,j,q,l data[0,i]=a data[1,i]=b data[2,i]=c data[3,i]=d data[4,i]=e data[5,i]=f data[6,i]=g data[7,i]=h data[8,i]=z data[9,i]=j data[10,i]=q data[11,i]=l endfor endif if k eq 13 then begin for i=0, N-1 do begin readf, 1,a,b,c,d,e,f,g,h,z,j,q,l,m data[0,i]=a data[1,i]=b data[2,i]=c data[3,i]=d data[4,i]=e data[5,i]=f data[6,i]=g data[7,i]=h data[8,i]=z data[9,i]=j data[10,i]=q data[11,i]=l data[12,i]=m endfor endif ;---------- ;Finalization ;---------- close, 1 return, data end