Karim BELABAS on Wed, 10 Dec 2003 09:57:52 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
RE: Reading in a file |
On Tue, 9 Dec 2003, McLaughlin, James wrote: > That works!! Thanks. > > I also got the write to a file part figured out. > >> Does >> >> (19:41) gp > read( "C:/Documents and Settings/jmclaugh/Desktop/fu37.txt" ) >> >> work ? OK, I think I understand the problem [ still no acces to Windows today... ] 1) Filename with embedded spaces are bad: GP strips unquoted spaces. 2) So you need to enclose the name in quotes, making it a character string. 3) There are special evaluation rules for strings, in which '\' plays a prominent role, as an "escape character", consistent with traditionnal C/C++ syntax. That's section 2.6.6: Strings and Keywords in User's Manual (recent versions). In particular \n --> carriage return \t --> TAB(ulation) \e --> ESC(ape) \x --> x for any other x including \ or " 4) This obviously conflicts with DOS ways of separating path pieces using '\'. Fortunately, the OS itself does not care, and you can use / instead of \ as I did above. 5) \r "C:/Documents and Settings/jmclaugh/Desktop/fu37.txt" should work 6) \r "C:\Documents and Settings\jmclaugh\Desktop\fu37.txt" is presumably interpreted as \r "C:Documents and SettingsjmclaughDesktopfu37.txt" which won't work. But \r "C:\\Documents and Settings\\jmclaugh\\Desktop\\fu37.txt" should also work. Btw, to write to a file, you can use either write() as above or \w [ there's also writebin() whose output to a file is larger but much faster to load ]. Be sure to either replace '\' path separators with '/' or by '\\' (I much prefer the former). Hope this helps, Karim. -- Karim Belabas Tel: (+33) (0)1 69 15 57 48 Dép. de Mathématiques, Bât. 425 Fax: (+33) (0)1 69 15 60 19 Université Paris-Sud http://www.math.u-psud.fr/~belabas/ F-91405 Orsay (France) http://pari.math.u-bordeaux.fr/ [PARI/GP]