找回密码
 注册
Simdroid-非首页
查看: 250|回复: 13

[PCL] PCL读取数据,求教循环函数执行方法。

[复制链接]
发表于 2011-9-1 15:05:35 | 显示全部楼层 |阅读模式 来自 浙江舟山
悬赏30仿真币已解决
本帖最后由 ygs2008 于 2011-9-3 10:33 编辑

我的意思是这样的,由于文件里的排布很有规律,我需要读取所有关键字“BEUSLO”后面的第一行和第二行第一个数据,以及第三行数据的求和,但是不知道用什么函数来执行我的本意,求助高手给点建议,万分谢谢。
BEUSLO     0.20000000E+01  0.10000000E+01  0.00000000E+00  0.00000000E+00
                0.18100000E+03  0.40000000E+01  0.00000000E+00  0.30000000E+01
                0.14484480E-03   0.14484480E-03   0.14484480E-03   0.14484480E-03
BEUSLO     0.10000000E+01  0.10000000E+01  0.00000000E+00  0.00000000E+00
                0.18200000E+03  0.40000000E+01  0.00000000E+00  0.30000000E+01
               -0.22190006E-01 -0.17165052E-01  -0.16420901E-01   -0.21445855E-01
BEUSLO     0.20000000E+01  0.10000000E+01  0.00000000E+00  0.00000000E+00
                0.18200000E+03  0.40000000E+01  0.00000000E+00  0.30000000E+01
                0.12975141E-03   0.12975141E-03   0.12975141E-03   0.12975141E-03
BEUSLO     0.10000000E+01  0.10000000E+01  0.00000000E+00  0.00000000E+00
                0.18300000E+03  0.40000000E+01  0.00000000E+00  0.30000000E+01
               -0.21445855E-01 -0.16420901E-01  -0.15676750E-01  -0.20701706E-01
论坛有人建议用下str_index,text_read_string,string_read这几个函数应该就可以了,尝试了下,但是由于BEULSO后面第二行和第三行格式一样,而我需要读取的数据不一样
就有点麻烦了,因为空格很多,不好定位。求助高手解决。

最佳答案

查看完整内容

i+1,读一行,所以i是行数,求余的函数。。。无语,查下patran的帮助文档的pcl,学PCL得随时查,好像是mth_mode(b,a) 读写数据这个自己慢慢摸索吧,我不想多说,一般用一个临时变量读取,然后赋给要写入的数组。 你的意思是要每三行输出一次是吧,那你就再定义一个变量j,i求余为0时,j增加一次,然后此时再输出,行吗 其实,思路很多的,希望有帮助 ...
发表于 2011-9-1 15:05:36 | 显示全部楼层 来自 陕西西安
Simdroid开发平台
i+1,读一行,所以i是行数,求余的函数。。。无语,查下patran的帮助文档的pcl,学PCL得随时查,好像是mth_mode(b,a)
读写数据这个自己慢慢摸索吧,我不想多说,一般用一个临时变量读取,然后赋给要写入的数组。
你的意思是要每三行输出一次是吧,那你就再定义一个变量j,i求余为0时,j增加一次,然后此时再输出,行吗
其实,思路很多的,希望有帮助
回复

使用道具 举报

发表于 2011-9-1 19:06:03 | 显示全部楼层 来自 浙江杭州
string_read就可以了呀,BEULSO后面第二行和第三行格式不一样吗?不都是浮点型的吗?
回复

使用道具 举报

 楼主| 发表于 2011-9-1 19:12:40 | 显示全部楼层 来自 浙江舟山
本帖最后由 ygs2008 于 2011-9-1 19:12 编辑
nuaalizhen 发表于 2011-9-1 19:06
string_read就可以了呀,BEULSO后面第二行和第三行格式不一样吗?不都是浮点型的吗? ...

是一样的啊,但是我只需要第二行的第一个数据,和第三行所有数据的累积求和啊。
回复

使用道具 举报

发表于 2011-9-1 22:11:33 | 显示全部楼层 来自 湖北武汉
完全可以用别的语言编程嘛,用C,matlab都可以吧。pcl的话我不会。。。
回复

使用道具 举报

 楼主| 发表于 2011-9-4 12:38:38 | 显示全部楼层 来自 浙江舟山
dengzheng008 发表于 2011-9-1 22:11
完全可以用别的语言编程嘛,用C,matlab都可以吧。pcl的话我不会。。。

不会C,matlab。
回复

使用道具 举报

发表于 2011-9-4 21:46:16 | 显示全部楼层 来自 浙江杭州
ygs2008 发表于 2011-9-1 19:12
是一样的啊,但是我只需要第二行的第一个数据,和第三行所有数据的累积求和啊。 ...

按格式读取就可以了呀,有什么很难的技术上的问题吗?
回复

使用道具 举报

 楼主| 发表于 2011-9-4 22:17:05 | 显示全部楼层 来自 浙江舟山
nuaalizhen 发表于 2011-9-4 21:46
按格式读取就可以了呀,有什么很难的技术上的问题吗?

不会啊,你能给我写下主要程序段吗?
回复

使用道具 举报

发表于 2011-9-5 22:29:04 | 显示全部楼层 来自 上海松江区
上述数据感觉没有很大必要用PCL语言来读,尤其是你还不会PCL.完全可以用其他编程语言来实现
回复

使用道具 举报

 楼主| 发表于 2011-9-6 08:53:27 | 显示全部楼层 来自 浙江舟山
kalaok 发表于 2011-9-5 22:29
上述数据感觉没有很大必要用PCL语言来读,尤其是你还不会PCL.完全可以用其他编程语言来实现 ...

由于是最近论文才用到,而且是给予Patran的插件写程序,所以必须用PCL编写,写了一些,遇到这个卡住了,求助。
回复

使用道具 举报

发表于 2011-9-7 00:20:34 | 显示全部楼层 来自 陕西西安
你的文件中数据格式很规则,读写可以如下执行:
打开文件text_open()
给整数i,用i除3,
若余1,则:
则读入格式为text_read(%A% %4E%),4个real即为改行的实数,要那个写入数组即可;
若余2,则;
读入格式为text_read(%4E%) ,同上,需要哪个写入数组即可;
若余0,则:
同余2.
若text_read()!=0,则文件读入完毕,
text_close()
注意:上面的text_read()只是给出了要读入的格式,其他参数自行填入即可。
所有的语言都是相同的,望有用
回复

使用道具 举报

 楼主| 发表于 2011-9-7 09:20:08 | 显示全部楼层 来自 浙江舟山

——

本帖最后由 ygs2008 于 2011-9-7 09:33 编辑
tt06601 发表于 2011-9-7 00:20
你的文件中数据格式很规则,读写可以如下执行:
打开文件text_open()
给整数i,用i除3,

谢谢楼上提供的思路,我想问下,这里i是指什么,行数?其次,求余的函数是什么呢?text_read函数我知道,输出的为特定格式的数据,但是我取的数据个数和位置不定(相见帖子说明),而里面的数都为实型,我不知道是不是可以达到要求。但是楼上的求余却是按行读取的好办法。
其实上面要求输出的内容最好是在一起的,即每遇到“BEULSO”输出三个数据。其实第一行所取的第一个数据指的是工况;第二行第一个数据指的是单元ID,第三行求和计算的是载荷,后续目的是将次载荷对应单元对应工况施加到Patran中。
回复

使用道具 举报

 楼主| 发表于 2011-9-9 09:38:41 | 显示全部楼层 来自 浙江舟山
本帖最后由 ygs2008 于 2011-9-9 10:26 编辑
tt06601 发表于 2011-9-8 22:33
i+1,读一行,所以i是行数,求余的函数。。。无语,查下patran的帮助文档的pcl,学PCL得随时查,好像是mth_ ...

恩,谢谢,已经解决大部分了问题了。读写数据取临时变量读取,然后赋给要写入的数组,这个我会了,用str_token可以提取。
回复

使用道具 举报

发表于 2011-10-6 21:23:43 | 显示全部楼层 来自 天津红桥区
thank you very much
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-5-21 01:40 , Processed in 0.043390 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表