日期:2014-05-17  浏览次数:20442 次

(求帮忙)php,perl等脚本软件分割一个文件为多个TXT文件的问题。
php,perl等脚本软件分割一个文件为多个TXT文件的问题。
文件内容如下:
IP,MOIndex,className,fdn,latitude,longitude,matchVersion,name,neID,neType,neVersion,realLatitude,realLongitude,vendorName,
10.133.10.21,18,BSC6000NE,.3221229568.3221233664.3221291023,281.0,524.0,iManagerM2000_BSC6000_MATCH_CHS_V200R008C12SPC025,BJ-HW-BSC03,18,BSC6000,BSC6000V900R008C12,0DN,0DE,Huawei,


BSCIndex,GrpIndex,MOIndex,className,fdn,name,neID,
0,0,18_0_0,BSC6000BCGrp,.3221229568.3221233664.3221291023.3221581834,BC集合,18,


MOIndex,className,fdn,name,neID,
18,BSC6000Equipment,.3221229568.3221233664.3221291023.3221393419,Bsc6000Equipment,18,


MOIndex,className,fdn,name,neID,
18,BSC6000Function,.3221229568.3221233664.3221291023.3221397515,Bsc6000Function,18,


BSCIndex,GrpIndex,MOIndex,className,fdn,name,neID,
0,0,18_0_0,BSC6000HDLCLinkGrp,.3221229568.3221233664.3221291023.3221721098,HDLC链路集合,18,

说明: 这个txt里有很多类似的行列,规律是每隔两行分别有两行数据,第一行是字段名称,第二行是数据。

要求:  
1 读入文件。然后搜索每一个字段行,在行中找到className的位置,然后按照这个位置,记录每个className字段对应的数据行中的名称,一般是叫BSC6000.....的这个。
2 然后按照这个名称,建立文本文件,把相关的字段行和数据行写入新的文件。
3 写入格式仍然保持原来这样,只是不需要中间的那两行空行拉。

本人属于菜菜鸟。试了好几个办法。好象都不成功。非常郁闷,所以请教各位大侠。有何高招解决这个问题?




------解决方案--------------------
1、一行一行读,按照规律一行一行写
2、如果了解正则。可以考虑用正则来,并写入