Re: Split a file into multiple files using a pattern
- To: mathgroup at smc.vnet.net
- Subject: [mg69771] Re: Split a file into multiple files using a pattern
- From: "Raj" <rajanikanth at gmail.com>
- Date: Fri, 22 Sep 2006 01:04:58 -0400 (EDT)
- References: <eeqqnq$ooo$1@smc.vnet.net><eetvg8$aph$1@smc.vnet.net>
dh wrote: > Hi Raj, > this can best be done using regular expressions. Toward this aim, assume > that your data is in the list dat. We convert this to a string, make the > necessary replacements, split the string and transform it back to an > expression. Thereby we introduce a marker "@" to indicate where the > string should be split: > t=ToString[dat]; > t=StringReplace[t,RegularExpression[",?(\\s*9,){3,300}"]->"}@{"]; > t=StringSplit[t,"@"] //ToExpression; > The elements of t contain now the data to be written to the different files. > > Daniel > > Raj wrote: > > hi! > > > > COuld somebody please tell me how can I do this in Mathematica: I have > > a file of numbers containing -999.99 in places where there is missing > > data. > > I want to split the file into a number of files based on the criterion > > that the number of consecutive - 999.99 are more than 18 . > > > > For example... if the file is of the form > > > > {1,2,3,4,{-999.99 repeated 18 or more times},5,6,7,8} > > then I want the output to be file1.txt which contains {1,2,3,4} and > > file2.txt which contains {5,6,7,8} > > > > Thanks, > > > > Raj > > Thanks to everybody who replied. Please note that the code by Paul does exactly what I want. The other codes dont seem to check if the number of consecutive -999.99's are more then 18. I want to split the file only in the places where the number of -999.99's are greater than 18. Regards, Raj