Previous:The #read Directive Main Index Next:The #default Directive

#### The #write Directive

You may write string, float or vector values to a plain ASCII text file from POV-Ray variables using the `#write` directive. The file must first be opened in either `write` or `append` mode using the `#fopen` directive. The syntax for `#write` is as follows:

WRITE_DIRECTIVE:

`
  #write(
` FILE_HANDLE_ITEM`,` DATA_ITEM[`,`DATA_ITEM]...`)`
DATA_ITEM:
  FLOAT
| VECTOR | STRING

Where FILE_HANDLE_IDENTIFIER is the previously opened file. It is followed by one or more DATA_ITEMs separated by commas. The parentheses around the identifier list are required. A DATA_ITEM is any valid string expression, float expression, or vector expression. Float expressions are evaluated and written as signed float literals. If you require format control, you should use the `str(VALUE,L,P)` function to convert it to a formatted string. See "String Functions" for details on the `str` function. Vector expressions are evaluated into three signed float constants and are written with angle brackets and commas in standard POV-Ray vector notation. String expressions are evaluated and written as specified.

Note that data read by the `#read` directive must have comma delimiters between values and quotes around string data but the `#write` directive does not automatically output commas or quotes. For example the following `#read` directive reads a string, float and vector.

     #read (MyFile,MyString,MyFloat,MyVect)

It expects to read something like:

     "A quote delimeted string" , -123.45, <1,2,-3>

The POV-Ray code to write this might be:

     #declare Val1 = -123.45;

     #declare Vect1 = <1,2,-3>;

     #write (MyFile,"\"A quote delimited string\",",Val1,",",Vect1,"\n")

See "String Literals" and "Text Formatting" for details on writing special characters such as quotes, newline, etc.

Previous:The #read Directive Main Index Next:The #default Directive