Hi,
----- Puvodn� zpr�va -----
Od: <[EMAIL PROTECTED]>
Komu: <[EMAIL PROTECTED]>
Odesl�no: 2. dubna 2000 7:33
Predmet: [REBOL] [REBOL]Problem with function argument
> Hello All:
>
> I am getting an error message when attempting
> to pass a value as a argument to a user-defined
> function:
>
> the error message is:
> fprint expected fp argument of type: file.
> ** Where: fprint fp "line one"
>
> code follows: thanks in advance to all!!
> tim
>
> ; first the function
> fprint: func [fp[file!] value[string!]]
> [
> either not-equal? fp none
> [
> write/append fp value
> write/append fp newline
> ]
> [ print value ]
> ]
> fp: none
> ; check for server name in cgi environment variables
> either equal? system/options/cgi/server-name none
>
> ; value is empty, presume the script is run from commad line
> print "no server name, application run from console"
> fp: open/new/write %hello.htm
> ]
> ; script is invoked via server, yes, I know we need
> ; a content-header string, etc here.
>
> prin "Server name: "
> print system/options/cgi/server-name
> ]
> ; call function
> fprint fp "line one" ; rebol doesn't like this
> ; if the file has been opened, close it
> if not-equal? fp none [close fp]
>
The header of your function should probably be as follows:
fprint: func [fp[port! none!] value[string!]]
to allow open ports and none as the valid arguments.
Moreover, the following:
> either not-equal? fp none
> [
> write/append fp value
> write/append fp newline
> ]
> [ print value ]
> ]
will not work for ports. You can change it to:
either fp [
append fp value
append fp newline
] [print value]
Regards,
Ladislav