24小时热门版块排行榜    

查看: 1443  |  回复: 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的回帖
普通表情 龙 兔 虎 猫 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 申请科研项目纯靠实力能成功吗? 200+7 David1982 2026-10-13 11/550 2026-10-15 10:30 by zyqchem
[职场人生] 40+中年人失业后,还能找到好工作吗? +5 xqy2009 2026-10-13 5/250 2026-10-15 09:49 by 淘淘塑物性通
[硕博家园] 极限拉扯,如何抉择 +11 Isak0320 2026-10-12 15/750 2026-10-14 21:55 by 猫鱼不是鱼
[论文投稿] 二审4个多月了还是Awaiting Reviewer Scores 10+3 纳斯达克ML 2026-10-11 4/200 2026-10-14 17:30 by babero
[有机交流] OpenAI又攻克数学难题了,离AI做有机合成还有多远? +8 wangyl_123 2026-10-10 13/650 2026-10-14 15:12 by zuesli
[教师之家] 课题组会帮你通过考核么? +4 好运来~9527 2026-10-10 7/350 2026-10-13 08:41 by xli1984
[公派出国] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 9/450 2026-10-11 22:34 by XQNyDCa1Tk5n
[找工作] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 8/400 2026-10-11 22:26 by XQNyDCa1Tk5n
[考博] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 9/450 2026-10-11 22:15 by XQNyDCa1Tk5n
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 22:11 by XQNyDCa1Tk5n
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 (EPI+-1)(金币-50) +5 qR2AdCWTVtkw 2026-10-09 10/500 2026-10-11 14:25 by VOMexwnDzOFZ
[教师之家] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 (EPI+-1)(金币-50) +4 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 14:05 by VOMexwnDzOFZ
[考研] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 8/400 2026-10-11 13:51 by VOMexwnDzOFZ
[硕博家园] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +5 qR2AdCWTVtkw 2026-10-09 8/400 2026-10-11 13:45 by VOMexwnDzOFZ
[找工作] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 10:54 by VOMexwnDzOFZ
[找工作] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +4 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 10:34 by VOMexwnDzOFZ
[考博] 招收博士生一名 +3 mandolin 2026-10-10 3/150 2026-10-11 10:21 by 不是山谷!
[公派出国] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 qR2AdCWTVtkw 2026-10-09 4/200 2026-10-11 03:14 by M0zrYVSAnxpE
[有机交流] 各位大佬,路线设计求助 +6 zapen 2026-10-08 8/400 2026-10-10 15:59 by zapen
[有机交流] 我应该选哪条合成路线让实验成功率高一些? +5 jing816y 2026-10-08 9/450 2026-10-10 09:05 by zapen
信息提示
请填处理意见