Re: question
- Posted by Sabal.Mike at notations.com Dec 31, 2002
- 514 views
This program has always done the trick for me. I modified it a bit in the email to fit your needs, so a small typo or two may have crept in. HTH, Michael J. Sabal ---------- Program follows ----------------- without type_check -- split file into separate parts atom extctr, infid, outfid extctr = 1 procedure main() object options, temp, current_tp options = command_line() if length(options)<4 then puts(1,"The correct syntax is SPLTFLAT BIGFILE SMALLFILE'S_PREFIX.\n") puts(1,"Ex: SPLTFLAT MYFLAT.850 TODAY\n\n") puts(1,"Note: Do NOT use an extension with the second argument.\n") abort(1) end if infid = open(options[3],"r") if infid < 1 then puts(1,"Couldn\'t open "&options[3]&"\n") abort(2) end if outfid = open(options[4]&sprintf(".%03d",extctr),"w") if outfid < 1 then puts(1,"Couldn\'t open "&options[4]&sprintf(".%03d",extctr)&"\n") abort(2) end if temp = gets(infid) while sequence(temp) do puts(outfid,temp) temp = gets(infid) if sequence(temp) and length(temp)>=6 and compare(temp[1..6],"******")=0 then close(outfid) extctr = extctr + 1 outfid = open(options[4]&sprintf(".%03d",extctr),"w") if outfid < 1 then puts(1,"Couldn\'t open "&options[4]&sprintf(".%03d",extctr)&"\n") abort(2) end if temp = gets(infid) end if end while close(infid) if outfid > 0 then close(outfid) end if end procedure main() ---------------- End program ---------------------- >>> csaik2002 at yahoo.com 12/31/02 02:36PM >>> In Eu, is there an easy way to split one large file into dozens of smaller files? For instance, if I have one giant source file, and I want to create a new file everytime I read a line that begins with "******", how is that done?