免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 5645 | 回复: 22
打印 上一主题 下一主题

求教格式检查的方法 [复制链接]

论坛徽章:
0
跳转到指定楼层
[收藏(0)] [报告]
发表于 2009-05-06 17:42 |只看该作者 |正序浏览
10可用积分
请教各位大虾,现在有如下类型的数据

  1. 70  ABC123******DEF456******
  2. 70  AB12********DE4*********
复制代码

其中“*”应该是空格,为了醒目,现在用“*”来替代。
偶现在要做的是保证数据第2个field( ABC123 )是从第五个字符位开始到16位;
                      第3个field( DEF456 )是从第17个字符位开始到第28位。
各个field的字符串中间没有空格,空格就是用分隔和补充位的。

然后,假如数据移位了,
少了空格:

  1. 70  ABC123******DEF456******
  2. 70  AB12*******DE4*********
复制代码

多了空格:

  1. 70  ABC123******DEF456******
  2. 70  AB12********DE4**********
复制代码

使用什么方法可以检查出来,请大家不吝赐教,谢谢哈。
或者,可以用XML来做检查吗?怎么做呢?^_^

论坛徽章:
0
22 [报告]
发表于 2009-05-07 15:53 |只看该作者

回复 #22 MMMIX 的帖子

写一个脚本使用substr来分割检查?

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
21 [报告]
发表于 2009-05-07 15:04 |只看该作者
原帖由 不死草 于 2009-5-7 14:56 发表
哦,我是需要一个貌似能一劳永逸的方法,而不是对每一种格式的File都写一遍文件处理啊。

我说的都是一劳永逸的方法,改读数据的代码,让它对格式不要那么挑剔,或者写个脚本对数据文件先做一遍处理,检查内容及格式,然后再交给后面的代码。

论坛徽章:
0
20 [报告]
发表于 2009-05-07 14:56 |只看该作者

回复 #17 MMMIX 的帖子

哦,我是需要一个貌似能一劳永逸的方法,而不是对每一种格式的File都写一遍文件处理啊。
我想用一种Function,然后只要写文件的Structure就可以做检查的方法(就是写Config file)。呵呵,貌似你心中也有个答案,就不是知道你能不能详细点说怎么做?

[ 本帖最后由 不死草 于 2009-5-7 14:58 编辑 ]

论坛徽章:
0
19 [报告]
发表于 2009-05-07 14:55 |只看该作者

回复 #19 不死草 的帖子

?? 不懂?
是指你在一楼中提到的"空格多了“ 的那种情况么

论坛徽章:
0
18 [报告]
发表于 2009-05-07 14:52 |只看该作者

回复 #18 DQP 的帖子

呵呵,你的方法目前不能检查最后一个Field的格式移位的问题哦。

论坛徽章:
0
17 [报告]
发表于 2009-05-07 14:45 |只看该作者

回复 #13 不死草 的帖子

2L不是有方法么

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
16 [报告]
发表于 2009-05-07 14:34 |只看该作者
原帖由 不死草 于 2009-5-7 14:19 发表
哦,这个方法太复杂了点哦,因为实际我要做的格式检查不仅仅是每一行的格式检查,还有上下文的检查,比如以“10”开头的一行后面一行一定是“15” 开头的一行这样。

所以说,直接写个脚本先对数据文件处理一遍是最简单的,你又不干。

论坛徽章:
0
15 [报告]
发表于 2009-05-07 14:19 |只看该作者

回复 #15 MMMIX 的帖子

哦,这个方法太复杂了点哦,因为实际我要做的格式检查不仅仅是每一行的格式检查,还有上下文的检查,比如以“10”开头的一行后面一行一定是“15” 开头的一行这样。

其中还可能会涉及到2个相同格式的文件的合并的问题。而合并的时候也要保证以“10” 开头的一行是在一起的,有的是直接append, 而有些则是其中的某些field需要合并,而有的line只是需要覆盖就可以了(保留一个文件中的某些line就可以--例如以“20”开头的line在每个文件中有3行,我只要保留任意某一文件中的三行就可以)。

最后,其实我的想法是想找出一种方法能够直接面对所有类似文件的检查。

当然,我有一个设想就是使用XML来辅助检查,用XML来直接定义格式(Structure),然后用Perl调用XML来检查。

[ 本帖最后由 不死草 于 2009-5-7 14:20 编辑 ]

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
14 [报告]
发表于 2009-05-07 14:01 |只看该作者
原帖由 不死草 于 2009-5-7 11:28 发表
呵呵,我只需要检查就可以了,格式不对的话,我可以打回给别人,让他们重新做,但是如果是检查,有没有比较好的建议,怎么做这个检查?

如果你非要检查格式,虽然麻烦点,也是可以的。把每行按照列的定义用 substr 切分,然后检查切分后的结果,除了最后一列外,其他列的最后都应该是空白字符。

[ 本帖最后由 MMMIX 于 2009-5-7 14:06 编辑 ]

论坛徽章:
0
13 [报告]
发表于 2009-05-07 11:44 |只看该作者
AI就是“Application Integrator”,我们用的是很老的版本,新版本听说很强大很好用,但是没用过。
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP