Re: If and openwrite and openappend

*To*: mathgroup at smc.vnet.net*Subject*: [mg49208] Re: If and openwrite and openappend*From*: Bill Rowe <readnewsciv at earthlink.net>*Date*: Wed, 7 Jul 2004 01:43:05 -0400 (EDT)*Sender*: owner-wri-mathgroup at wolfram.com

On 7/6/04 at 3:34 AM, camartin at snet.net wrote: >I'm trying to write a piece of code to store strings in a file. A >very simplified example follows: >Clear[t] Clear[nix] nix[x_String, y_String] := >t = {x, y} >If[FileType["c:\\Mathematica\\dBaspap"] == None, >stmp = OpenWrite["c:\\Mathematica\\dBaspap"], stmp = >OpenAppend["c:\\Mathematica\\dBaspap"]] >Write[stmp, t] Close[stmp] >The function seems to work as I want if the file doesn't exist. If >it exists the code doesn't work. >If I the OpenAppend from the If statement things work fine. But a >subsequent use of nix fails because it refuses to open a stream. Although, I don't see why your code doesn't work I don't see any need for If. The function OpenAppend will create a new file if one doesn't exist. Also, you don't the variable t since Write accepts an arbitrary number of expressions to write to a file. That is, nix[strs___String]:= Module[{stmp=OpenAppend@"c:\\Mathematica\\dBaspap"}, Write[stmp,strs]; Close@stmp] Should do what you want. Note by using the strs___String construct you can pass as many strings as you want to nix. -- To reply via email subtract one hundred and four