24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1277  |  回复: 5
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

gongxd325

至尊木虫 (文坛精英)

[交流] 【求助】字符串和数值跨行读取问题【已完结】

想编程从Gaussian的计算结果中取出最后的能量(“HF=”后面的数字,如1所示,该情况下字符串和数字都在同一行上,处理并不困难)

问题是,字符串“HF=”可能分开在两行上(如2所示),“HF=”后的数字也可能在两行上且小数点前后的位数不固定(如3所示)。最大的困难是字符串“HF=”跨行时怎么确定其位置?

请教:
(a)如何编程才能保证不管什么情况,都能正确判断“HF=”的位置并读出其值?
(b)字符和数字混合时有什么好办法把数字读出来?


(1)
vB.03|State=1-A'|HF=-834.0759008|R
MSD=4.635e-009|RMSF=7.697e-005|Dip
(2)
=x86-Win32-G03RevB.03|State=1-A'|H
F=-834.0759008|RMSD=4.635e-009|RMS
(3)
32-G03RevB.03|State=1-A'|HF=-834.0
80|RMSD=4.635e-009|RMSF=7.697e-005

[ Last edited by 余泽成 on 2009-11-19 at 13:41 ]
回复此楼

» 猜你喜欢

一个人做点好事并不难难的是一辈子做好事!!!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

★ ★
gongxd325(金币+2,VIP+0):谢谢,有点启发 8-3 11:43
用 fortran 处理字符串是一件很累人的事情。

用 index 查 HF,如果返回值不是零,那么读后面的数值,如果没有碰到 | 就读下一行并过滤掉空白字符,直到碰到 |,这可以处理 (1),(3) 两种情况。

判断一行的最后一个非空白字符是不是 H,如果是,判断下一行的第一个非空白字符是不是 F,如果两者成立,读后面的数值。这可以处理第 (2) 种情况。

我只是纸上谈兵了,因为我基本上不用 fortran 处理字符串,呵呵……
4楼2009-08-02 19:16:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

snoopyzhao

至尊木虫 (职业作家)

★ ★
gongxd325(金币+2,VIP+0):感谢! 8-2 11:51
换种思路,如何?

你现在查的其实是 gaussian 给出的最后存档的结果,即 archive

你可以在结果文件中查找类似于下面这一行:

SCF Done:  E(RHF) =  -1554.11090384     A.U. after    1 cycles

这里的 E(RHF) 就是你需要的 HF 的能量。当然,因为这个会出现很多次,所以你需要做的是确定最后一个,或最小的一个,当然,这要简单很多了……
2楼2009-08-02 10:35:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gongxd325

至尊木虫 (文坛精英)

谢谢snoopyzhao,不过以你建议的这种方式只能对某一种方法适用,因为HF,DFT,MP2计算中间输出能量的格式都不一样,只有在archive中是一致的。
为了防止字符串"HF="分开在两行时可能出现bug,我把G03也作为特征字符串,但假如HF=和G03同时分开在两行,就肯定出问题了。
所以,我想知道是不是有更好的办法。
一个人做点好事并不难难的是一辈子做好事!!!
3楼2009-08-02 11:51:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gongxd325

至尊木虫 (文坛精英)

我现在的思路,是先以HF=和G03为特征字符串确定位置,然后把连续3行写成一行,再读能量值,可保证能量在一行。所以,只要不发生字符串HF=和G03同时分开在两行就没有问题。
不知道是不是有更好的办法?
另外,从字符串中如何读数字比较方便?我是把数字当字符串读出后写到文件中,再从文件中以数字形式读出来的。
一个人做点好事并不难难的是一辈子做好事!!!
5楼2009-08-03 11:52:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 材料学硕333求调剂 +10 北道巷 2026-03-24 10/500 2026-03-28 23:06 by 无际的草原
[考研] 材料与化工272求调剂 +9 阿斯蒂芬2004 2026-03-28 9/450 2026-03-28 15:21 by 1018329917
[考研] 0703化学求调剂 +9 奶油草莓. 2026-03-22 10/500 2026-03-28 13:30 by 唐沐儿
[考研] 材料与化工(0856)304求B区调剂 +8 邱gl 2026-03-27 8/400 2026-03-28 12:42 by 唐沐儿
[材料工程] 一志愿C9材料与化工专业总分300求调剂 +8 曼111 2026-03-24 9/450 2026-03-28 07:58 by YYYYX1234
[考研] 求调剂推荐 材料 304 +15 荷包蛋hyj 2026-03-26 15/750 2026-03-28 04:13 by fmesaito
[考研] 291求调剂 +7 孅華 2026-03-22 7/350 2026-03-28 04:02 by fmesaito
[考研] 070300化学求调剂 +4 起个名咋这么难 2026-03-27 4/200 2026-03-27 21:39 by 83503孙老师
[考研] 化学调剂 +4 爱吃番茄的旭 2026-03-24 5/250 2026-03-27 17:50 by kiokin
[考研] 考研调剂 +4 Sanmu-124 2026-03-26 4/200 2026-03-27 17:49 by kiokin
[考研] 283求调剂(080500) +4 A child 2026-03-27 4/200 2026-03-27 15:34 by XPU李庆
[考研] 考研调剂 +10 呼呼?~+123456 2026-03-24 10/500 2026-03-27 11:46 by wangjy2002
[考研] 0703化学338求调剂! +6 Zuhui0306 2026-03-26 7/350 2026-03-27 10:35 by shangxh
[考研] 329求调剂 +7 钮恩雪 2026-03-25 7/350 2026-03-27 04:28 by wxiongid
[考研] 351求调剂 +4 麦克阿磊 2026-03-24 4/200 2026-03-27 00:32 by wxiongid
[考研] 一志愿南航 335分 | 0856材料化工 | GPA 4.07 | 有科研经历 +6 cccchenso 2026-03-23 6/300 2026-03-25 22:25 by 544594351
[考研] 材料专硕331求调剂 +4 鲜当牛 2026-03-24 4/200 2026-03-24 15:58 by JourneyLucky
[考研] 277分求调剂,跨调材料 +3 考研调剂lxh 2026-03-24 3/150 2026-03-24 13:52 by JourneyLucky
[考研] 284求调剂 +3 yanzhixue111 2026-03-23 6/300 2026-03-23 22:58 by pswait
[考研] 280分求调剂 一志愿085802 +4 PUMPT 2026-03-22 7/350 2026-03-22 22:13 by 星空星月
信息提示
请填处理意见