500分

Jonthanoscar 2006-04-06 10:44:27
txt文件格式严格定义如下:
error可能有多行,如下每四行。
[mzsf]
reply=TRUE
success=FALSE
error=收费发票更新失败,ORA-20220: 1328013806064611,原因:ORA-20146: 项目编号:01110400004240,阿莫西林(羟氨苄青霉素),该药品的信息和中心药品库不一致,请选择更新药品库功能后重新录入处方!,请记录此信息并和医保中心联系!
ORA-06512: 在"SIDB.TR_YY_MZSFB0_INSERT", line 424
ORA-0408
djlsh0=00000418

[mzcxzsf]
djlsh0=00000101
mzlsh0=00000061
id0000=3502032408160021
cardno=350200003739

[fybfy0]
西药费=60

[fpxmbm]
01;西药费
02;成药费
03;草药费

[mzcxzsfmx]
01010101000010
Y
西药费
阿莫西林(羟氨苄青霉素)
1

3.00
20
60
金大夫
0


问题要求:
读取文件时reply=TRUE时才可以开始读取,并以独占方式
写成一个读取这个文件的javaBean,返回值为集合
有中括号的为一个结点。
可以分几个集合存储,如
{mzsf={reply=TRUE,success=false,error=收费发票更新失败,ORA-20220: 1328013806064611,原因:ORA-20146: 项目编号:01110400004240,阿莫西林(羟氨苄青霉素),该药品的信息和中心药品库不一致,请选择更新药品库功能后重新录入处方!,请记录此信息并和医保中心联系!
ORA-06512: 在"SIDB.TR_YY_MZSFB0_INSERT", line 424
ORA-0408,djlsh0=00000418
},}

...全文
165 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
楼主后面写的集合的方式?? 晕了,是不是应该error="内容行1\n内容行2\n内容3"呢
  • 打赏
  • 举报
回复
如果熟悉正则表达式,处理起来更方便。
  • 打赏
  • 举报
回复
txt文件格式既然是严格定义的。还不好说吗?
每个[]域先后顺序都是固定的,里面包含键名也是固定的,比如[mzsf]里的error,虽然它可能有多行,但毕竟是在djlsh0=之前,所以在检索到“error=”之后一直读到“djlsh0=”之前为止就行了。基本上这些“键名=”的情况不可能在键值里出现,所以用indexOf定位就行了,比如读error,先定位“error=”然后再定位“djlsh0=”,用substring取中间这部分子串就可以了,细节上还需要具体调整一下,思路就是这样。
约翰羊 2007-04-26
  • 打赏
  • 举报
回复
HIS吧...
Rain_Wang 2006-04-06
  • 打赏
  • 举报
回复
用log4j
nighthawk 2006-04-06
  • 打赏
  • 举报
回复
另外不是很明白你上面TXT后半部分提供内容的含义
nighthawk 2006-04-06
  • 打赏
  • 举报
回复
其实你要做的是准确提供报错的信息是吗?
你可以参考struts的message结合application.properties那段。
Jonthanoscar 2006-04-06
  • 打赏
  • 举报
回复
我只要思路..
Net8Java 2006-04-06
  • 打赏
  • 举报
回复
这里是解决问题的位子``没人会帮你把程序写出来的!

23,407

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧