* Read text files where n columns of data are to be ignored. * (n is a variable). *(Q) >I am writing a read-in >program that will be used repeatedly an many data sets. They are all >identical, except that the initial column of useable data varies. >From that point out to the right, all of the files will be the same. > >I'd like to set up the read in program where the users will just have >to enter this starting position once, and it will be automitically >placed in the rest of the data list command. This poses two problems: >a) I can't get the number in the first time and b) how can I >manipulate it to "add" columns for the rest of the data set? If I >could just get something like the program below to work, I believe >that I can modify if from there. > >I'm trying to feed the '6' from the define line into the data list >line. Then, I'd like to add on to it for the next part. Obviously, >this doesn't work. I'm very open to any suggestions. > > >*********** Pathetic excuse for syntax follows. >new file. >define !start ()'6'!enddefine. >DATA LIST /Age 1-2 SEX 4 (A) bday !start - (!start + 5). >BEGIN DATA >28 M 25000 >26 F 28500 >25 M 30000 >END DATA. >LIST. *(A) Posted to SPSS newsgroup by Raynald Levesque on 2002/05/02. * http://pages.infinit.net/rlevesqu/index.htm. The following does what you are asking: new file. set mprint=no. define !dlist(col=!TOKENS(1)) !LET !endcol=!LENGTH(!CONCAT(!BLANK(!col),!BLANK(5))) DATA LIST /Age 1-2 SEX 4 (A) bday !col - !endcol. !enddefine. set mprint=yes. !dlist col=6. BEGIN DATA 28 M 25000 26 F 28500 25 M 30000 END DATA. LIST. ***********. HOWEVER this is going to be cumbersome if you have many variables after bday. I think the following solution is EASIER: DATA LIST FIXED /col1 TO col20 1-20 (A). BEGIN DATA 28 M xxx25000 26 F xxx28500 25 M xxx30000 END DATA. LIST. * The 9 in next line would be changed as needed. WRITE OUTFILE='c:\\temp\\data.txt' /col1 TO col5 col9 TO col20. EXECUTE. * The next line is always the same. DATA LIST FILE='c:\\temp\\data.txt' FIXED /Age 1-2 SEX 4 (A) bday 6 - 11. LIST.