|
|
ill will do like this
I read the data and create an include file containing all My_data[index] =
value;
then when all the txt file is read, i will declare the size of array and
include the .inc file
(please correct typo)
#declare convert_file=on; // switch here if you dont need to convert each
time
#if(convert_file)
#fopen My_file_ACR "12440_ACR.txt" read
#fopen My_data_ACR "My_Data_ACR.inc"
#declare index=0;
#while(defined(My_file_ACR))
#read (My_file_ACR, a,b,c)
#declare vector=<a,b,c>;
#write (My_Data_ACR,"#declare my_data[",index,"]=",vector,";\n")
#declare index=index+1;
#end
// close files here
#end // end of if statement
#declare my_data=array[index] // the one resulting of the loop
// then
#include my_data_acr.inc
news:web.4663e8a8e799405a678ea4f80@news.povray.org...
> Hello there,
> I hope you understand my question, it's directly translated from German...
> ;)
>
> I have a file with some coordinates I want to store in an array. Since I
> don't know how to store in an array that was not defined before I do this:
> --------------------------------------
> #fopen fsbsp "124440_ACR.txt" read
> #declare fs_count = 0;
> #while(defined(fsbsp))
> #read (fsbsp,utm_x,utm_y,utm_z)
> #declare fs_count = fs_count+1;
> #end
> #debug concat("fs_count ", str(fs_count, 0,0),"n")
>
> #declare a_pos = array[fs_count];
>
> #fopen a_pos_f "124440_ACR.txt" read
> #declare fs_count2 = 0;
> #while(defined(a_pos_f))
> #read (a_pos_f,utm_x,utm_y,utm_z)
> #declare a_pos[fs_count2] = <utm_x,utm_y,utm_z>;
> #declare fs_count2 = fs_count2 + 1;
> #end
> --------------------------------------
> Here's what this does:
> - opens the file and "counts" the rows
> - closes the file (#while(defined(...)))
> - defines the array
> - opens the file again
> - reads and stores values
> - closes the file again
>
> Is there any possibility to do this without opening and reading the file
> twice? I know Java can do dynamic memory (if that's what it is called),
but
> POV?
>
> Thanks in advance
> Gunnar
>
>
>
Post a reply to this message
|
|