开发者

How to parse a file with several delimiters

i need to parse a file of this for开发者_开发问答mat,such that i can get/fetch the values present in place of those tags by avoiding linefeeds or "/n",carriage return 0r "/r",^^(spaces). just give me an idea with sample code such that it helps me in proceeding.....

^^^ M^^^COMPLD (^^^"[,]:,,, [], [], [], [] [, ] [:[], [] [, [,]] [:[][,]]]")* ;

ASSUME THAT RESPONSE IS OF THIS TYPE:i need to fetch each and every field value,

RTRV-HDR:::RH01; [2K

SIMULATOR 09-11-18 13:49:03 M RH01 COMPLD ; agent>RTRV-EQPT::ALL:RE01; [2K

SIMULATOR 09-11-18 13:49:04 M RE01 COMPLD "SLOT-1-1-1,CMP:IS-NR" "SLOT-1-1-2,CMP:IS-NR" "SLOT-1-1-3,OLC:IS-NR" "SLOT-1-1-4,OLC:IS-NR" "SLOT-1-1-5,OLC:IS-NR" "SLOT-1-1-6,OLC:IS-NR" "SLOT-1-1-7,OLC:IS-NR" "SLOT-1-1-8,OLC:IS-NR" "SLOT-1-1-9,IOC:IS-NR" "SLOT-1-1-10,IOC:IS-NR" "SLOT-1-2-1,NMC:IS-NR" "SLOT-1-2-2,NMC:IS-NR" "SLOT-1-2-3,OLC:IS-NR" "SLOT-1-2-4,OLC:IS-NR" "SLOT-1-2-5,OLC:IS-NR" "SLOT-1-2-6,OLC:IS-NR" "SLOT-1-2-7,OLC:IS-NR" "SLOT-1-2-8,OLC:IS-NR" ; agent>RTRV-ALM-EQPT::ALL:RA01; [2K

SIMULATOR 09-11-18 13:49:05 M RA01 COMPLD "SLOT-1-1-1,CMP:MN,T-FANCURRENT-1-HIGH,NSA,01-10-09,00-00-00,,:\"Fan-T\"," "SLOT-1-1-1,CMP:MJ,T-BATTERYPWR-2-LOW,NSA,01-10-09,00-00-00,,:\"Battery-T\"," "SLOT-1-1-2,CMP:CR,PROC_FAIL,SA,09-11-18,13-48-54,,:\"Processor Failure\"," "SLOT-1-1-3,OLC:MN,T-LASERCURR-1-HIGH,SA, 01-10-07,13-21-03,,:\"Laser-T\"," "SLOT-1-1-3,OLC:MJ,T-LASERCURR-2-LOW,NSA, 01-10-02,21-32-11,,:\" Laser-T\"," "SLOT-1-1-4,OLC:MN,T-LASERCURR-1-HIGH,SA,01-10-05,02-14-03,,:\"Laser-T\"," "SLOT-1-1-4,OLC:MJ,T-LASERCURR-2-LOW,NSA,01-10-04,01-03-02,,:\"Laser-T\"," ; agent>RTRV-ALM-EQPT::ALL:RA02::MJ,; [2K

SIMULATOR 09-11-18 13:49:06 M RA02 COMPLD "SLOT-1-1-1,CMP:MJ,T-BATTERYPWR-2-LOW,NSA,01-10-09,00-00-00,,:\"Battery-T\"," "SLOT-1-1-3,OLC:MJ,T-LASERCURR-2-LOW,NSA, 01-10-02,21-32-11,,:\" Laser-T\"," "SLOT-1-1-4,OLC:MJ,T-LASERCURR-2-LOW,NSA,01-10-04,01-03-02,,:\"Laser-T\"," ; agent>RTRV-ALM-EQPT::ALL:RA03::MN,; [2K

SIMULATOR 09-11-18 13:49:06 M RA03 COMPLD "SLOT-1-1-1,CMP:MN,T-FANCURRENT-1-HIGH,NSA,01-10-09,00-00-00,,:\"Fan-T\"," "SLOT-1-1-3,OLC:MN,T-LASERCURR-1-HIGH,SA, 01-10-07,13-21-03,,:\"Laser-T\"," "SLOT-1-1-4,OLC:MN,T-LASERCURR-1-HIGH,SA,01-10-05,02-14-03,,:\"Laser-T\"," ; agent>RTRV-ALM-EQPT::ALL:RA04::MN,T-LASERCURR-1-HIGH; [2K

SIMULATOR 09-11-18 13:49:10 M RA04 COMPLD "SLOT-1-1-3,OLC:MN,T-LASERCURR-1-HIGH,SA, 01-10-07,13-21-03,,:\"Laser-T\"," "SLOT-1-1-4,OLC:MN,T-LASERCURR-1-HIGH,SA,01-10-05,02-14-03,,:\"Laser-T\"," ; agent>RTRV-PM-EQPT::ALL:RP01; [2K

SIMULATOR 09-11-18 13:49:11 M RP01 COMPLD "SLOT-1-1-1,CMP:FANCURRENT-1,180.080,,,,," "SLOT-1-1-1,CMP:FANCURRENT-2,204.660,,,,," "SLOT-1-1-1,CMP:FANCURRENT-3,230.500,,,,," "SLOT-1-1-1,CMP:FANCURRENT-4,187.580,,,,," "SLOT-1-1-1,CMP:BATTERYPWR-1,53.650,,,,," "SLOT-1-1-1,CMP:BATTERYPWR-2,53.650,,,,," "SLOT-1-1-2,CMP:FANCURRENT-1,180.080,,,,," "SLOT-1-1-2,CMP:FANCURRENT-2,204.660,,,,," "SLOT-1-1-2,CMP:FANCURRENT-3,230.500,,,,," "SLOT-1-1-2,CMP:FANCURRENT-4,187.580,,,,," "SLOT-1-1-2,CMP:BATTERYPWR-1,53.650,,,,," "SLOT-1-1-2,CMP:BATTERYPWR-2,53.650,,,,," "SLOT-1-1-3,OLC:LASERPWR-1,200.00,,,,," "SLOT-1-1-3,OLC:LASERPWR-2,200.00,,,,," "SLOT-1-1-4,OLC:LASERPWR-1,200.00,,,,," "SLOT-1-1-4,OLC:LASERPWR-2,200.00,,,,," "SLOT-1-1-5,OLC:LASERPWR-1,200.00,,,,," "SLOT-1-1-5,OLC:LASERPWR-2,200.00,,,,," "SLOT-1-1-6,OLC:LASERPWR-1,200.00,,,,," "SLOT-1-1-6,OLC:LASERPWR-2,200.00,,,,," "SLOT-1-1-7,OLC:LASERPWR-1,200.00,,,,," "SLOT-1-1-7,OLC:LASERPWR-2,200.00,,,,," "SLOT-1-1-8,OLC:LASERPWR-1,200.00,,,,," "SLOT-1-1-8,OLC:LASERPWR-2,200.00,,,,," "SLOT-1-2-3,OLC:LASERPWR-1,200.00,,,,," "SLOT-1-2-3,OLC:LASERPWR-2,200.00,,,,," "SLOT-1-2-4,OLC:LASERPWR-1,200.00,,,,," "SLOT-1-2-4,OLC:LASERPWR-2,200.00,,,,," "SLOT-1-2-5,OLC:LASERPWR-1,200.00,,,,," "SLOT-1-2-5,OLC:LASERPWR-2,200.00,,,,," "SLOT-1-2-6,OLC:LASERPWR-1,200.00,,,,," "SLOT-1-2-6,OLC:LASERPWR-2,200.00,,,,," "SLOT-1-2-7,OLC:LASERPWR-1,200.00,,,,," "SLOT-1-2-7,OLC:LASERPWR-2,200.00,,,,," "SLOT-1-2-8,OLC:LASERPWR-1,200.00,,,,," "SLOT-1-2-8,OLC:LASERPWR-2,200.00,,,,," ; agent>INIT-SYS::SLOT-1-1-2:IS01::1; [2K

SIMULATOR 09-11-18 13:49:11 M IS01 COMPLD ; agent>

thanks for all valuable replies


Your question is quite short, so it's difficult to guess what you mean, but maybe using a StreamTokenizer might help.


I think you should have an on-the-fly aggregator which takes that input and glues coherent lines together, making your expressions easier to do on those lines instead. F.ex. you could have an Iterator which wraps another iterator with those lines you wrote, looks for coherent lines and storing those in a StringBuffer. When you've found all coherent lines to form one line you return it in the next() method.


I think you should use StringTokenizer

String s = "";
StringTokenizer st = new StringTokenizer("yourString" , "-,\n"); //You can add delimiters
while(!(st.hasMoreTokens())){
s += st.nextToken() + "\n";
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜