|
|
David Vincent-Jones <geo### [at] galaxynetcom> wrote:
> I have an ASCII file that I wish to read into an array.
> File is 117 records separated by CR/LF and
> each record has 6 text elements separated by a comma.
>
> #fopen SymFile "c:\pf\bin\sym.asc" read
> #declare Syms=array [117] [6] { #fread (SymFile, defined)}
>
> Can somebody steer me in the right direction..
To use the data with POV-Ray's file I/O the text values will need to be
quoted, and there will need to be commas at the end of every line (i.e. a
newline does not count as a delimiter). Then you could read in the file so:
#fopen F, "MyFile.txt", read
#local MyArray = array[117][6]
#local M = 0; #while (M < 117)
#local N = 0; #while (M < 6)
#read (F, Data)
#declare MyArray[M][N] = Data
#local N = N + 1; #end
#local M = M + 1; #end
#fclose F
The temporary String variable is required as the #read command cannot save
the file data directly to an array variable. An alternative is to modify
the data file so it begins with the line:
array[117][6] {
Then add opening and closing brackets to each line:
{ "data1", "data2", "data3", "data4", "data5", "data6" },
and end with a final closing bracket (and no comma after the last subgroup):
}
This way you can include the file directly into your scene (e.g. #declare
MyArray = #include "MyArray.inc") which may be quicker to parse than using
the #read command.
Post a reply to this message
|
|