科学网

 找回密码
  注册

tag 标签: 新建

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

新建账号后原用户名(Administrator)不见的解决方法
pingcn 2011-12-5 15:51
办公室的打印机设置的网络共享,其他人从网络上用我们的打印机打印,然后直接到我们科室来取了 。 我们想,是因为我们的来宾账户没有设置密码吧?可是来宾账户无法设置密码。 所以就想着——新建一个账户、设置密码吧。 然后发现,必须新建一个管理员用户,然后才能新建“受限用户”。于是就这样办了 然后问题出现了—— 那个MM只能用新建那个管理员用户登录了,她以前的设置、收藏夹都不见了。她表示很不开心,不想看到那个新用户。 因为是我帮着想的办法招致的麻烦,所有,我负责把这个问题搞定—— 从google得到了办法—— 1.使用“传统登录提示”登录 启动系统到欢迎屏幕时,按两次“Ctrl+Alt+Delete”组合键,在出现的登录框中输入Administrator账户的用户名和密码即可。也可以单击“开始→控制面板”,双击“用户账号”图标,在弹出的“用户账号”窗口中,单击“更改用户登录或注销的方式”,去掉“使用欢迎屏幕”前的复选框,单击“应用选项”即可在启动时直接输入Administrator账户名及密码登录。 2.在登录的欢迎屏幕显示Administrator账户 单击“开始→运行”,输入regedit后回车,打开注册表编辑器,依次展开“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList”分支,将右边的Administrator的值改为1,即可让Administrator账户出现在登录的欢迎屏幕上。如果没有这个,就在右侧新建一个Dword,把它的值设置为1. 3.自动登录到Administrator账户 单击“开始→运行”,输入control userpasswords2后回车,在打开的“用户账户”窗口去掉“要使用本机,用户必须输入密码”前的复选框,按“应用”后,在弹出的“自动登录”窗口中输入Administrator账户密码(如图1),按两次“确定”即可。注意:如果原来就设置了其它账户自动登录,应该先选中“要使用本机,用户必须输入密码”前的复选框,按“应用”后再去掉选中的复选框。也可以修改注册表实现自动登录,不过没有以上方法方便。 当然,如果不需要Administrator账户,可以依次打开“开始→控制面板→管理工具→计算机管理”,在“计算机管理”窗口,展开“系统工具→本地用户和组→用户”,在“用户”右边窗口双击Administrator账户,在弹出的“属性”窗口中选中“账号已停用”前的复选框(如图2),按“确定”即可停用Administrator账户。 如果想删除那个新建的账户:控制面板——管理工具——计算机管理——系统工具——本地用户和组用户——用户——点鼠标右键——删除;或者在“我的电脑”上点右键,管理,系统工具,本地用户和组,点用户,把你键的那个删了,重启 如果还想保留你新建的用户,但是想每次登录系统时,都用administrator直接进入系统: 单击“开始/运行”,输入“rundll32 netplwiz.dll,UsersRunDll”,你可以复制一下命令。按回车键后弹出“用户帐户”窗口,看清楚,这可跟“控制面板”中打开的“用户账户”面板窗口不同哦!然后取消选定“要使用本机,用户必须输入用户名和密码”选项,单击确定,在弹出的对话框中输入你想让电脑每次自动登录的账户和密码即可。也就是administrator。
34 次阅读|0 个评论
[转载]QThread与其他线程间相互通信
huozhenhua 2011-11-24 21:06
转载请注明链接http://blog.csdn.net/huihui1988/article/details/5665432与作者huihui1988 QThread的用法其实比较简单,只需要派生一个QThread的子类,实现其中的run虚函数就大功告成, 用的时候创建该类的实例,调用它的start方法即可。但是run函数使用时有一点需要注意,即在其中不能创建任何gui线程(诸如新建一个 QWidget或者QDialog)。如果要想通过新建的线程实现一个gui的功能,那么就需要通过使用线程间的通信来实现。这里使用一个简单的例子来理 解一下 QThread中signal/slot的相关用法。 首先,派生一个QThread的子类 MyThread.h view plain class MyThread: public QThread { Q_OBJECT public : MyThread(); void run(); signals: void send(QStrings); }; void send(QString s)就是定义的信号 MyThread.cpp view plain #include"MyThread.h" MyThread::MyThread() { } void MyThread::run() { while ( true ) { sleep(5); emitsend( "Thisisthesonthread" ); //qDebug()"Threadisrunning!"; } exec(); } emit send("This is the son thread") 为发射此信号,在run中循环发送,每次休眠五秒 之后我们需要在另外的线程中定义一个slot来接受MyThread发出的信号。如新建一个MyWidget MyWidget .h view plain class MyWidget: public QWidget{ Q_OBJECT public : MyWidget(QWidget*parent=0); ~Widget(); public slots: void receiveslot(QStrings); }; void receiveslot(QString s)就用来接受发出的信号,并且实现参数的传递。 MyWidget .cpp view plain #include"MyWidget.h" MyWidget::MyWidget(QWidget*parent):QWidget(parent) { } MyWidget::~MyWidget() { } void MyWidget::receiveslot(QStrings) { QMessageBox::information(0, "Information" ,s); } 接受函数实现弹出发送信号中所含参数(QString类型)的消息框 在main()函数中创建新线程,来实现两个线程间的交互。 main.cpp view plain #includeQtGui #include"MyWidget.h" int main( int argc, char *argv[]) { QApplicationa(argc,argv); MyWidgetw; w.show(); MyThread*mth= new MyThread; QObject::connect(mth,SIGNAL(send(QString)),w,SLOT(receiveslot(QString))); mth-start(); return a.exec(); }
个人分类: C/C++|3207 次阅读|0 个评论
添加word等新建
ywmucn 2011-11-13 14:18
安装office07后,新建的文档为docx等,将新建空文件word.doc,powerpoint.ppt,excel.xls拷贝到C:\WINDOWS\system32,然后倒入以下注册表,就可直接新建doc等文档了 addword.reg Windows Registry Editor Version 5.00 "FileName"=" word.doc " addppt.reg Windows Registry Editor Version 5.00 "FileName"=" powerpoint.ppt " addexcel.reg Windows Registry Editor Version 5.00 "FileName"=" excel.xls "
个人分类: 脚本|2430 次阅读|0 个评论
看看世界上最大的冰凌子到底有多大
热度 4 zxczxc0417 2011-11-8 03:35
前一阵子出去玩,看到一个悬崖边上挂着个白色的东西,仔细一看,原来是一个巨大的冰凌子。于是拍下来,让大家一起来看看什么叫做真正的冰凌子吧! 远景1,除了最大的那个,还有几个小的 近景1,自上而下,一气呵成 远景2,对比后面的大楼,他也有的一比 远景3,换个角度 近景2,换个角度 远景4,参照周围的物体和建筑,这个冰凌至少要有10米
个人分类: 天下大事|4538 次阅读|5 个评论
[转载]Matlab的Distributed Computing Toolbox初探
zxczxc0417 2011-11-7 23:41
Matlab的Distributed Computing Toolbox初探 http://www.simwe.com/forum/viewt ... 3Ddigestpage=1 我的实验室有五台双核Pentium D 925计算机,这正适合用来做分布式或并行式计算。我打算只调用那些计算机中的一个核参与计算,留下一个核可以让其他人正常地使用该计算机。我们在这里将会介绍Matlab中Distributed Computing Toolbox的基本使用方法,目标是实现简单的分布式计算。 Distributed Computing Toolbox就是分布式计算工具箱,简称DCT,其可以在多台计算机组成的Cluster中实现分布式或并行式计算。简单来说,我们是把一个很繁重的工作,分解成许多小任务,然后分给不同的计算机去处理,最后把计算结果汇总,以达到提高计算效率的目的。 Matlab的做法是这样的:在每台参与计算的计算机中启动一个叫Matlab Distributed Computing Engine的服务,该服务能启动参与计算的worker的Matlab session和管理各台计算机workers的job manager。Job manager对workers进行管理,给workers分配计算任务,接收workers计算后的结果。而你本人就是client,你要把你的工作分解为多个任务,然后把任务给job manager。job manager就会根据workers的多少和空闲情况,适当地把任务分配给workers去做。workers完成任务后,会把结果返回给job manager。当所有workers都完成任务后,你,即是client,便可以从job manager里取回结果。 具体的概念可以参考Matlab的帮助,我们也不能说得很准确。我们在这里只想给出使用Matlab实现分布式计算的简单步骤,以便初学者快速入门。 1、首先第一步要做的,就是令每台要参与计算的计算机组成局域网。比如我有三台计算机,其IP地址分别为192.168.1.101-192.168.1.103,以下简称计算机名为101,102和103。 2、在三台计算机中安装Matlab Distributed Computing Engine(mdce)服务。安装方法为:如Matlab的安装地址为C:\Program Files\MATLAB\R2006b,则Start-Run-cmd到命令行窗口,进入C:\Program Files\MATLAB\R2006b\toolbox\distcomp\bin目录,运行mdce install命令安装mdce服务。接着去控制台-管理工具-服务,查看Matlab Distributed Computing Engine的属性。进入登录页,选择“此帐户”,输入NT AUTHORITY\NetworkService,删除下面的密码,让该服务以NetworkService的形式登入,以便该服务存取共享的映射网络驱动器中的原程序文件。接着便可以启动该服务了。注意以后重新开机,该服务都会启动,当然你可以设置让它手动启动。 3、启动job manager。任一台计算机都可以启动job manager,只要mdce服务启动了即可。比如使用计算机101,在C:\Program Files\MATLAB\R2006b\toolbox\distcomp\bin目录下,运行以下命令: CODE: startjobmanager -name frenseljobm 该命令启动jobmanager,其名字叫frenseljobm,启动地点为计算机101。 4、启动workers。任一台计算机都可以启动workers,只要mdce服务启动了即可。比如使用计算机101,在C:\Program Files\MATLAB\R2006b\toolbox\distcomp\bin目录下,运行以下命令: CODE: startworker -jobmanagerhost 192.168.1.101 -jobmanager frenseljobm -name worker1 此命令指明在计算机192.168.1.101中,启动名为worker1的worker,而该worker受名为frenseljobm的jobmanager管理。就是说来自乡下101的可怜工人worker1,成为万恶的监工frenseljobm的“马仔”了。接着,监工frenseljobm要在不同村102和103中雇用更多的工人worker2、worker3。运行如下的命令: CODE: startworker -jobmanagerhost 192.168.1.101 -jobmanager frenseljobm -name worker2 -remotehost 192.168.1.102 即可在102计算机中启动一个新的,名为worker2的worker,如此类推启动103计算机的worker3。使用nodestatus命令可以查看节点的状态,加上-remotehost可以查看其他节点的状态。 5、如令计算机101为client,即我们的程序在这里编写的。设程序文件位于D:\Matlab_code\testDCT中。共享出文件夹Matlab_code,在文件夹中按工具-映射网络驱动器-令盘符为Z:-文件夹里填\\192.168.1.101\Matlab_code。于是Z:\testDCT便成为放置你程序的地方了。以同样的方法,让计算机102和103都建立映射网络驱动器,令盘符为Z:,文件夹里填\\192.168.1.101\Matlab_code。这时三台机都可以通过Z:\testDCT访问原程序文件。 6、现在便可以进行计算了。这里给出测试的代码。首先写一个函数,模拟我们实际的工作。 CODE: % hp.m function f = hp(m, n) H1 = zeros(n); H2 = zeros(n); for i = 1 : m H = H1 + H2; end f = H; end 将此程序hp.m放在D:\Matlab_code\testDCT中。此函数计算n维随机矩阵的加法m次。接着建立另一个m文件,做具体的分布式计算。 CODE: % runDCT.m tic % 寻找资源,比如jobmanager在什么地方,叫什么名字。 jm = findResource('scheduler', 'type', 'jobmanager', 'name',... 'frenseljobm', 'LookupURL', '192.168.1.101'); % 使用刚才找到的资源建立一个工作 job = createJob(jm); % 设置该工作的文件关联,让所有workers都可以找到原程序文件。 set(job, 'PathDependencies', {'Z:\testDCT'}) % 另一种方法,把用到的原程序文件传给所有workers。 % set(job, 'FileDependencies', {'hp.m'}) N = 100; M = 1000000; % 建立三个任务,每任务都是算hp(M, N)。 createTask(job, @hp, 1, {M, N}); createTask(job, @hp, 1, {M, N}); createTask(job, @hp, 1, {M, N}); % 提交工作给jobmanager。 submit(job) % 等待所有workers都把任务做完。 waitForState(job, 'finished') % 取出计算结果。 results = getAllOutputArguments(job); toc 同样地,该程序runDCT.m也是放在D:\Matlab_code\testDCT中。该程序计算了三次100维矩阵的加法1000000次,即算了100维矩阵的加法3000000次。如果在单机上运行: CODE: tic, a = hp(3000000, 100); toc Elapsed time is 63.096369 seconds. 而使用三台机作分布式计算时: CODE: runDCT Elapsed time is 24.323556 seconds. 效率有明显的提升。但注意到,当第一次进行分布式计算时,其他几台机要从Z:\testDCT中读取原程序文件,会使得计算速度降低。 总结来说,Matlab的Distributed Computing Toolbox为我们提供了一种简便的分布式或并行式计算的实现方法。以上所写的是为了对DCT具体做法的整个过程做一次简单的介绍,我也是初学使用这个工具箱,文章可能很粗糙和存在许多谬误,敬请指正。
个人分类: 好好学习|2634 次阅读|0 个评论
也来谈谈最近的研究热点——石墨烯
热度 2 zxczxc0417 2011-11-7 23:13
第一次听到石墨烯的时候是它的英文名字:Graphene,有一种亲切的感觉。 让我不禁的想起了大学时候的一段往事。那时候还是上大学一年级,我们有一门必修课,叫做无机化学。其中的碳族元素中有一段是讲述碳的同素异形体的,里面有几页比较详细的介绍了石墨这种特殊的形态。这种形态是呈现一种层状结构的物质,所以形成一种上下和左右的性质不一样的物质。当时觉得真是太神奇了,而且书上还说电子可以在层内走啊走,不费劲,但是如果想要在层与层之间走就困难了。 当时我对超导这种现象也很着迷,觉得是另外一个不可思议的东西。很自然了,我就把这两者联系到了一起。我就想,石墨这种很特殊的物质会不会有超导的性质呢?于是查了很多的资料,没有发现石墨具有超导的性质,只是看到很多的金属是有的。不过我还是坚持石墨具有超导性能的,理由有三点: 第一,不导电的陶瓷都能有超导的能力,导电的石墨很可能也有 第二,以往没有测出石墨的超导性能可能是由于以往的石墨不是很完美的石墨晶体,所以呈现出杂乱无章的性质,很多电阻是由于电子在层与层之间传递产生的 第三,石墨的层内电子是一种比较完美的二维结构,层内的电子在传递的时候容易形成类似库伯对的电子结构体。
个人分类: 好好学习|2189 次阅读|2 个评论
[转载]解决问题:Foxmail 7.0 winsock 错误代码10061
zhangyunliang 2011-11-7 14:58
Foxmail 7.0 winsock 错误代码10061 http://hi.baidu.com/xiaoboma/blog/item/7839cefd5fe6f959d7887d9d.html Foxmail 7.0 winsock 错误代码10061 2011年10月20日 星期四 10:44 P.M. 126,QQ邮箱首先得开启POP3客户端收取功能; Foxmail7.0 新建一个邮箱,提示成功:如下图 利用Foxmail自带的测试,检测结果 提示:服务器返回:连接代理服务器失败,Winsock错误码:10061. 【解决办法】:右键【账号】→【服务器】→【高级】→ 选择【不使用代理】 → 【 确定 】
个人分类: 问题解决|7280 次阅读|0 个评论
新建农业非点源污染交流群
liqiangk 2011-10-27 09:49
为便于同行交流,新建农业非点源污染交流群,欢迎从事农业非点源污染方向研究的专家、学者加入,群号182439220,多谢支持!
2156 次阅读|0 个评论
Photoshop如何加水印
dolphinzhu 2011-9-18 01:01
新建一个图层打上字,把字体做到合适的大小。然后把图层的不透明度降低到50%左右。推荐使用华文彩云体。
个人分类: PhotoShop技术|3281 次阅读|0 个评论
我算是服了
热度 1 zxczxc0417 2011-8-20 11:02
今天求解一个三 阶常系数齐次线性微分方程,要用到一元三次方程的解,所以查了一下,看到一个超强的通解公式,而且可以直接输入matlab求解,现在把它考下来,或许以后能用得着。另外还看到一元四次方程的解,不看不要紧,一看头都大了,比以前学的一元二次方程的形式复杂多了。也没验证对不对,先记下来再说。 一元三次方程:ax^3+bx^2+cx+d=0 x1=1/6/a*(36*c*b*a-108*d*a^2-8*b^3+12*3^(1/2)*(4*c^3*a-c^2*b^2-18*c*b*a*d+27*d^2*a^2+4*d*b^3)^(1/2)*a)^(1/3)-2/3*(3*c*a-b^2)/a/(36*c*b*a-108*d*a^2-8*b^3+12*3^(1/2)*(4*c^3*a-c^2*b^2-18*c*b*a*d+27*d^2*a^2+4*d*b^3)^(1/2)*a)^(1/3)-1/3*b/a x2=-1/12/a*(36*c*b*a-108*d*a^2-8*b^3+12*3^(1/2)*(4*c^3*a-c^2*b^2-18*c*b*a*d+27*d^2*a^2+4*d*b^3)^(1/2)*a)^(1/3)+1/3*(3*c*a-b^2)/a/(36*c*b*a-108*d*a^2-8*b^3+12*3^(1/2)*(4*c^3*a-c^2*b^2-18*c*b*a*d+27*d^2*a^2+4*d*b^3)^(1/2)*a)^(1/3)-1/3*b/a+1/2*i*3^(1/2)*(1/6/a*(36*c*b*a-108*d*a^2-8*b^3+12*3^(1/2)*(4*c^3*a-c^2*b^2-18*c*b*a*d+27*d^2*a^2+4*d*b^3)^(1/2)*a)^(1/3)+2/3*(3*c*a-b^2)/a/(36*c*b*a-108*d*a^2-8*b^3+12*3^(1/2)*(4*c^3*a-c^2*b^2-18*c*b*a*d+27*d^2*a^2+4*d*b^3)^(1/2)*a)^(1/3)) x3=-1/12/a*(36*c*b*a-108*d*a^2-8*b^3+12*3^(1/2)*(4*c^3*a-c^2*b^2-18*c*b*a*d+27*d^2*a^2+4*d*b^3)^(1/2)*a)^(1/3)+1/3*(3*c*a-b^2)/a/(36*c*b*a-108*d*a^2-8*b^3+12*3^(1/2)*(4*c^3*a-c^2*b^2-18*c*b*a*d+27*d^2*a^2+4*d*b^3)^(1/2)*a)^(1/3)-1/3*b/a-1/2*i*3^(1/2)*(1/6/a*(36*c*b*a-108*d*a^2-8*b^3+12*3^(1/2)*(4*c^3*a-c^2*b^2-18*c*b*a*d+27*d^2*a^2+4*d*b^3)^(1/2)*a)^(1/3)+2/3*(3*c*a-b^2)/a/(36*c*b*a-108*d*a^2-8*b^3+12*3^(1/2)*(4*c^3*a-c^2*b^2-18*c*b*a*d+27*d^2*a^2+4*d*b^3)^(1/2)*a)^(1/3)) 一元四次方程:ax^4+bx^3+cx^2+dx+e=0 x1=-1/4*b/a+1/12*3^(1/2)/a*((3*b^2*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3)-8*c*a*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3)+2*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(2/3)*a-24*d*b*a+96*e*a^2+8*a*c^2)/(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3))^(1/2)+1/12/a*(-(-18*b^2*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3)*((3*b^2*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3)-8*c*a*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3)+2*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(2/3)*a-24*d*b*a+96*e*a^2+8*a*c^2)/(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3))^(1/2)+48*c*a*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3)*((3*b^2*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3)-8*c*a*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3)+2*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(2/3)*a-24*d*b*a+96*e*a^2+8*a*c^2)/(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3))^(1/2)+6*((3*b^2*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3)-8*c*a*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3)+2*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(2/3)*a-24*d*b*a+96*e*a^2+8*a*c^2)/(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3))^(1/2)*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(2/3)*a-72*((3*b^2*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3)-8*c*a*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3)+2*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(2/3)*a-24*d*b*a+96*e*a^2+8*a*c^2)/(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3))^(1/2)*d*b*a+288*((3*b^2*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3)-8*c*a*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3)+2*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(2/3)*a-24*d*b*a+96*e*a^2+8*a*c^2)/(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3))^(1/2)*e*a^2+24*((3*b^2*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3)-8*c*a*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3)+2*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(2/3)*a-24*d*b*a+96*e*a^2+8*a*c^2)/(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3))^(1/2)*a*c^2+144*3^(1/2)*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3)*d*a^2+18*3^(1/2)*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3)*b^3-72*3^(1/2)*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3)*c*b*a)/(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3)/((3*b^2*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3)-8*c*a*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3)+2*(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(2/3)*a-24*d*b*a+96*e*a^2+8*a*c^2)/(-36*c*b*d-288*e*c*a+108*d^2*a+108*e*b^2+8*c^3+12*(-3*b^2*d^2*c^2+240*b*d*e*a*c^2-768*e^3*a^3+384*e^2*a^2*c^2-48*e*a*c^4+81*d^4*a^2+81*e^2*b^4+576*b*d*e^2*a^2+18*b^2*d^2*e*a+12*b^3*d^3-54*c*b*d^3*a-54*c*b^3*d*e-432*e*c*a^2*d^2-432*e^2*c*a*b^2+12*d^2*a*c^3+12*e*b^2*c^3)^(1/2))^(1/3))^(1/2))^(1/2)
个人分类: 好好学习|2892 次阅读|2 个评论
围观:国务院调整7-23事故调查组人员、暂停铁路项目审批、...
热度 1 lix 2011-8-11 08:42
1 . 国务院:调整 7-23 事故调查组人员 、 暂停铁路项目审批 2 . 国务院降低新建高铁初期速度 3 . 调整后的温州动车事故调查组和专家组名单 许 培 杨 解读 通报【 1 】迄今共有 189 人参与, 评论 18 条。评论目前一致拥护,包括明显的五毛,如: 评论:“我们坚信 200 万干部职工在铁道部党组、铁道部部长盛光祖的带领下,有铁骨的铁路人一定会树立信心,振作起来,用真心行动、用高度的责任感,完成好党和人民交给的各项任务。”但大部分拥护的评论看来是真心的。 通报 2 的方案与老邪在 高铁跃进软着陆 中欢呼的盛光祖方案更坚定。但回首 4 月盛光祖方案受到多数网民的反对,如 27043 人参与, 548 条评论中最热的两条分别是: 1 .既然路都修好了,以能够保证安全的高速运行是好事啊,为什么要降速?降价就必须降速吗? 推荐 (5916) 2 .一项事业又一次被一个人的行为而毁了,中国没多少事能让美国人敬重,一项高铁让美国人感到自己落后了,现在又被新领导给新办法了。推荐 (3464) 现在虽然美国人不敬重我们高铁大跃进了,但至少让意大利人敬重了,服输了。 中新社温州 8 月 1 日 电 ( 记者 朱小央 )7.23 甬温线特别重大铁路交通事故善后工作顺利,截至今天下午,共签订遇难者善后理赔协议 21 份 ,火化 18 具遇难者遗体。 2011 年 08 月 01 日 19:16 中国新闻网 新华网杭州 8 月 1 日 电 (记者岳德亮、张和平)据 “7·23” 甬温线特别重大铁路交通事故善后处置工作组发布的消息,截至 8 月 1 日 18 时 ,已经有 22 名遇难者的家属签订了赔偿协议,包括意大利籍的 LIGUORI ASSUNTA 。 2011 年 08 月 01 日 21:18 新华网 从 19:16 到 21:18 ,只需两个小时,就搞定了意大利,大扬国威。 温州动车事故赔偿博弈 报导,截至 8 月 5 日 下午 3 点, “7·23” 甬温线特别重大铁路交通事故共签订遇难者善后理赔协议 34 份,在 91.5 万的基础上,大部分遇难者家属提的一些附加条件也基本被满足。。。在签协议之前,最后一名遇难者陈伟的家属想看看别人是怎么签的, “ 我们听说,有的地方政府给家属承诺,评职称的时候可以优先考虑,还有的给孩子解决了一些上学问题 ” 。但是这个要求并没有被满足: “ 他们开始总是说一样的,每名遇难者都是赔偿 91.5 万元。那既然是一样的,为什么不给我们看呢?我们没有额外的要求,只要公平对待,别人能签,我们也可以。 ”
个人分类: 生活点滴|3368 次阅读|2 个评论
matlab中的sfunction的用法(C语言)——修改
tangxh 2011-5-13 16:37
创建一个有1输入(2维),2输出(1维),3个参数,还有全局变量的s-function。 1.新建sfunction的C语言文件 打开simulink,点击User-DefinedFunctions里面的S-FunctionExamples。这个里面有多个语言版本的模板,有C,C++,Ada,Fortran和M语言的版本,其实都大同小异,只要了解几个函数就很容易使用了。 选择C语言的版本:从S-function模块中选择C-fileS-functions里面的BasicC-MEXtemplate。打开后,另存为自己的模块名字,如test.c。 下面我们来分析代码: #defineS_FUNCTION_NAMEtest//这里把文件名sfuntmpl_basic修改为test #defineS_FUNCTION_LEVEL2 #include"simstruc.h" //程序里面要用到的头文件在这里引用,如“math.h”等。 floatglobal_var;//定义全局变量 staticvoidmdlInitializeSizes(SimStruct*S) { //这个函数用来设置输入、输出和参数的。 ssSetNumSFcnParams(S,3);/*设置参数个数,这里为3*/ if(ssGetNumSFcnParams(S)!=ssGetSFcnParamsCount(S)){ return; } ssSetNumContStates(S,0);//设置连续状态的个数,缺省为0; ssSetNumDiscStates(S,0);//设置离散状态的个数,缺省为0; if(!ssSetNumInputPorts(S,1))return;//设置输入变量的个数,这里为1 ssSetInputPortWidth(S,0,2);//设置输入变量0的维数为2 ssSetInputPortRequiredContiguous(S,0,true);//设置input0的访问方式,true就是临近访问,这样指针的增量后就可以直接访问下个input端口了。 ssSetInputPortDirectFeedThrough(S,0,1);//设置输入端口的信号是否mdlOutputs函数中使用,这儿设置为true。 if(!ssSetNumOutputPorts(S,2))return;//设置输出变量的个数 ssSetOutputPortWidth(S,0,1);//设置输出变量0的维数为1维 ssSetOutputPortWidth(S,1,1);//设置输出变量1的维数为1维 ssSetNumSampleTimes(S,1);//设置采样时间,此处为1。 ssSetNumRWork(S,0);//不要修改 ssSetNumIWork(S,0); ssSetNumPWork(S,0); ssSetNumModes(S,0); ssSetNumNonsampledZCs(S,0); ssSetOptions(S,0); //下面可以写全局变量的初始化程序 global_var=1; } staticvoidmdlInitializeSampleTimes(SimStruct*S) { ssSetSampleTime(S,0,CONTINUOUS_SAMPLE_TIME);//可以通过修改这个,修改s函数的采样周期 ssSetOffsetTime(S,0,0.0); } #defineMDL_INITIALIZE_CONDITIONS/*Changeto#undeftoremovefunction*/ #ifdefined(MDL_INITIALIZE_CONDITIONS) staticvoidmdlInitializeConditions(SimStruct*S)//暂时不要修改 { } #endif/*MDL_INITIALIZE_CONDITIONS*/ #defineMDL_START/*Changeto#undeftoremovefunction*/ #ifdefined(MDL_START) staticvoidmdlStart(SimStruct*S)//暂时不要修改 { } #endif/*MDL_START*/ staticvoidmdlOutputs(SimStruct*S,int_Ttid)//这里填入相关的运算、算法等 { real_T*para1=mxGetPr(ssGetSFcnParam(S,0)); real_T*para2=mxGetPr(ssGetSFcnParam(S,1)); real_T*para3=mxGetPr(ssGetSFcnParam(S,2)); constreal_T*u=(constreal_T*)ssGetInputPortSignal(S,0); real_T*y1=ssGetOutputPortSignal(S,0); real_T*y2=ssGetOutputPortSignal(S,1); y1 =u *para1 +u *para2 ; y2 =u *para3 +u *para1 ; } #defineMDL_UPDATE/*Changeto#undeftoremovefunction*/ #ifdefined(MDL_UPDATE) staticvoidmdlUpdate(SimStruct*S,int_Ttid) { } #endif/*MDL_UPDATE*/ #defineMDL_DERIVATIVES/*Changeto#undeftoremovefunction*/ #ifdefined(MDL_DERIVATIVES) staticvoidmdlDerivatives(SimStruct*S) { } #endif/*MDL_DERIVATIVES*/ staticvoidmdlTerminate(SimStruct*S)//这里需要把global变量全部初始化,否则下次运行程序时,全局变量还是之前的值。 { global_var=1; } #ifdefMATLAB_MEX_FILE/*IsthisfilebeingcompiledasaMEX-file?*/ #include"simulink.c"/*MEX-fileinterfacemechanism*/ #else #include"cg_sfun.h"/*Codegenerationregistrationfunction*/ #endif 2.编译 在matlab的commandwindow里面输入“mextest.c”,即可将test.c编译为mex文件。 3.调用sfunction 在simulink空间里面拉入sfunction,在s-function name里面填入test,参数里面填入要设定的参数,然后仿真即可。 参考文献 http://www.baisi.net/viewthread.php?tid=17841
个人分类: 学习笔记|5480 次阅读|0 个评论
[转载]CSHARP动态生成Word文档
dolphinzhu 2011-5-6 13:39
1. 关键步骤操作:添加对 Microsoft Word 对象库的引用。 在项目菜单上,单击添加引用。 2. 在 COM 选项卡上,找到 Microsoft Word 对象库,然后单击选择。 3. 在添加引用对话框中单击确定,接受您的选择。如果系统提示您为选定的库生成包装,请单击是。 4. 在视图菜单上,选择工具箱以显示工具箱,然后向 Form1 添加一个按钮。双击 Button1。出现该窗体的代码窗口。 5. 在代码窗口中,将以下代码 private void button1_Click(object sender, System.EventArgs e) { object oMissing = System.Reflection.Missing.Value; object oEndOfDoc = "\\endofdoc"; /* \endofdoc is a predefined bookmark */ //Start Word and create a new document. Word._Application oWord; Word._Document oDoc; oWord = new Word.Application(); oWord.Visible = true; oDoc = oWord.Documents.Add(ref oMissing, ref oMissing, ref oMissing, ref oMissing); //Insert a paragraph at the beginning of the document. Word.Paragraph oPara1; oPara1 = oDoc.Content.Paragraphs.Add(ref oMissing); oPara1.Range.Text = "Heading 1"; oPara1.Range.Font.Bold = 1; oPara1.Format.SpaceAfter = 24; //24 pt spacing after paragraph. oPara1.Range.InsertParagraphAfter(); //Insert a paragraph at the end of the document. Word.Paragraph oPara2; object oRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range; oPara2 = oDoc.Content.Paragraphs.Add (ref oRng); oPara2.Range.Text = "Heading 2"; oPara2.Format.SpaceAfter = 6; oPara2.Range.InsertParagraphAfter(); //Insert another paragraph. Word.Paragraph oPara3; oRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range; oPara3 = oDoc.Content.Paragraphs.Add(ref oRng); oPara3.Range.Text = "This is a sentence of normal text. Now here is a table:"; oPara3.Range.Font.Bold = 0; oPara3.Format.SpaceAfter = 24; oPara3.Range.InsertParagraphAfter(); //Insert a 3 x 5 table, fill it with data, and make the first row //bold and italic. Word.Table oTable; Word.Range wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range; oTable = oDoc.Tables.Add(wrdRng, 3, 5, ref oMissing, ref oMissing); oTable.Range.ParagraphFormat.SpaceAfter = 6; int r, c; string strText; for(r = 1; r = 3; r++) for(c = 1; c = 5; c++) { strText = "r" + r + "c" + c; oTable.Cell(r, c).Range.Text = strText; } oTable.Rows .Range.Font.Bold = 1; oTable.Rows .Range.Font.Italic = 1; //Add some text after the table. Word.Paragraph oPara4; oRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range; oPara4 = oDoc.Content.Paragraphs.Add(ref oRng); oPara4.Range.InsertParagraphBefore(); oPara4.Range.Text = "And here's another table:"; oPara4.Format.SpaceAfter = 24; oPara4.Range.InsertParagraphAfter (); //Insert a 5 x 2 table, fill it with data, and change the column widths. wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range; oTable = oDoc.Tables.Add(wrdRng, 5, 2, ref oMissing, ref oMissing); oTable.Range.ParagraphFormat.SpaceAfter = 6; for(r = 1; r = 5; r++) for(c = 1; c = 2; c++) { strText = "r" + r + "c" + c; oTable.Cell (r, c).Range.Text = strText; } oTable.Columns .Width = oWord.InchesToPoints(2); //Change width of columns 1 2 oTable.Columns .Width = oWord.InchesToPoints(3); //Keep inserting text. When you get to 7 inches from top of the //document, insert a hard page break. object oPos; double dPos = oWord.InchesToPoints(7); oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range.InsertParagraphAfter(); do { wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range; wrdRng.ParagraphFormat.SpaceAfter = 6; wrdRng.InsertAfter("A line of text"); wrdRng.InsertParagraphAfter(); oPos = wrdRng.get_Information (Word.WdInformation.wdVerticalPositionRelativeToPage); } while(dPos = Convert.ToDouble(oPos)); object oCollapseEnd = Word.WdCollapseDirection.wdCollapseEnd; object oPageBreak = Word.WdBreakType.wdPageBreak; wrdRng.Collapse(ref oCollapseEnd); wrdRng.InsertBreak(ref oPageBreak); wrdRng.Collapse(ref oCollapseEnd); wrdRng.InsertAfter("We're now on page 2. Here's my chart:"); wrdRng.InsertParagraphAfter(); //Insert a chart. Word.InlineShape oShape; object oClassType = "MSGraph.Chart.8"; wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range; oShape = wrdRng.InlineShapes.AddOLEObject(ref oClassType, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing); //Demonstrate use of late bound oChart and oChartApp objects to //manipulate the chart object with MSGraph. object oChart; object oChartApp; oChart = oShape.OLEFormat.Object; oChartApp = oChart.GetType().InvokeMember("Application", BindingFlags.GetProperty, null, oChart, null); //Change the chart type to Line. object ; Parameters = 4; //xlLine = 4 oChart.GetType().InvokeMember("ChartType", BindingFlags.SetProperty, null, oChart, Parameters); //Update the chart image and quit MSGraph. oChartApp.GetType().InvokeMember("Update", BindingFlags.InvokeMethod, null, oChartApp, null); oChartApp.GetType().InvokeMember("Quit", BindingFlags.InvokeMethod, null, oChartApp, null); //... If desired, you can proceed from here using the Microsoft Graph //Object model on the oChart and oChartApp objects to make additional //changes to the chart. //Set the width of the chart. oShape.Width = oWord.InchesToPoints(6.25f); oShape.Height = oWord.InchesToPoints(3.57f); //Add text after the chart. wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range; wrdRng.InsertParagraphAfter(); wrdRng.InsertAfter("THE END."); //Close this form. this.Close(); } 6. 滚动到代码窗口的顶部。将下面的代码行添加到 using 指令列表的末尾: using Word = Microsoft.Office.Interop.Word; using System.Reflection; 7. 按 F5 键生成并运行程序。 8. 单击 Button1,启动 Word 自动化功能并创建文档。 代码执行完成后,检查为您创建的文档。该文档包含两页设置了格式的段落、表格和图表。 如果您要使用自动化功能创建的文档都是通用格式,则利用基于预设格式的模板的新文档来开始创建过程会更加容易。与从头创建文档相比,将某个模板与 Word 自动化客户端配合使用有两大优点: 您可以对整个文档中的对象的格式设置和布局施加更多控制。 可以使用较少的代码创建文档. 通过使用模板,可以精确地调整表格、段落和其他对象在文档中的布局,并可为这些对象添加格式设置。通过使用自动化功能,可以基于包含下面这样的代码的模板创建新文档: object oTemplate = "c:\\MyTemplate.dot"; oDoc = oWord.Documents.Add (ref oTemplate, ref oMissing, ref oMissing, ref oMissing); 在模板中,可以定义书签,这样,自动化客户端就可以在文档的特定位置加入可变文本,如下所示: object oBookMark = "MyBookmark"; oDoc.Bookmarks.Item (ref oBookMark).Range.Text = "Some Text Here"; 使用模板的另一个优点在于,您可以创建和存储希望在运行时应用的格式样式,如下所示: object oStyleName = "MyStyle"; oDoc.Bookmarks.Item (ref oBookMark).Range.set_Style(ref oStyleName); - 或者 - object oStyleName = "MyStyle"; oWord.Selection.set_Style(ref oStyleName); /* * 1、添加引用-COM-Microsoft Word 11.0 Object Library 本文来源:IT传媒网 原文链接: http://www.cniter.com/tech/csharp/10120_1.html * */ using System; using System.Collections.Generic; using System.Text; using System.IO; using Word; namespace CreateWordFile { class Program { static void Main(string "); WordApp.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight;//设置右对齐 WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekMainDocument;//跳出页眉设置 WordApp.Selection.ParagraphFormat.LineSpacing = 15f;//设置文档的行间距 //移动焦点并换行 object count = 14; object WdLine = Word.WdUnits.wdLine;//换一行; WordApp.Selection.MoveDown(ref WdLine, ref count, ref Nothing);//移动焦点 WordApp.Selection.TypeParagraph();//插入段落 //文档中创建表格 Word.Table newTable = WordDoc.Tables.Add(WordApp.Selection.Range, 12, 3, ref Nothing, ref Nothing); //设置表格样式 newTable.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleThickThinLargeGap; newTable.Borders.InsideLineStyle = Word.WdLineStyle.wdLineStyleSingle; newTable.Columns .Width = 100f; newTable.Columns .Width = 220f; newTable.Columns .Width = 105f; //填充表格内容 newTable.Cell(1, 1).Range.Text = "产品详细信息表"; newTable.Cell(1, 1).Range.Bold = 2;//设置单元格中字体为粗体 //合并单元格 newTable.Cell(1, 1).Merge(newTable.Cell(1, 3)); WordApp.Selection.Cells.VerticalAlignment = Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;//垂直居中 WordApp.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;//水平居中 //填充表格内容 newTable.Cell(2, 1).Range.Text = "产品基本信息"; newTable.Cell(2, 1).Range.Font.Color = Word.WdColor.wdColorDarkBlue;//设置单元格内字体颜色 //合并单元格 newTable.Cell(2, 1).Merge(newTable.Cell(2, 3)); WordApp.Selection.Cells.VerticalAlignment = Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter; //填充表格内容 newTable.Cell(3, 1).Range.Text = "品牌名称:"; newTable.Cell(3, 2).Range.Text = "BrandName"; //纵向合并单元格 newTable.Cell(3, 3).Select();//选中一行 object moveUnit = Word.WdUnits.wdLine; object moveCount = 5; object moveExtend = Word.WdMovementType.wdExtend; WordApp.Selection.MoveDown(ref moveUnit, ref moveCount, ref moveExtend); WordApp.Selection.Cells.Merge(); //插入图片 string FileName = "c:\\Winter.jpg";//图片所在路径 object LinkToFile = false; object SaveWithDocument = true; object Anchor = WordDoc.Application.Selection.Range; WordDoc.Application.ActiveDocument.InlineShapes.AddPicture( FileName , ref LinkToFile, ref SaveWithDocument, ref Anchor); WordDoc.Application.ActiveDocument.InlineShapes .Width = 100f;//图片宽度 WordDoc.Application.ActiveDocument.InlineShapes .Height = 100f;//图片高度 //将图片设置为四周环绕型 Word.Shape s = WordDoc.Application.ActiveDocument.InlineShapes .ConvertToShape(); s.WrapFormat.Type = Word.WdWrapType.wdWrapSquare; newTable.Cell(12, 1).Range.Text = "产品特殊属性"; newTable.Cell(12, 1).Merge(newTable.Cell(12, 3)); //在表格中增加行 WordDoc.Content.Tables .Rows.Add(ref Nothing); WordDoc.Paragraphs.Last.Range.Text = "文档创建时间:" + DateTime.Now.ToString();//“落款” WordDoc.Paragraphs.Last.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight; //文件保存 WordDoc.SaveAs(ref filename , ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing); WordDoc.Close(ref Nothing, ref Nothing, ref Nothing); WordApp.Quit(ref Nothing, ref Nothing, ref Nothing); message = name + "文档生成成功,以保存到C:CNSI下"; } catch { message = "文件导出异常!"; } Console.WriteLine(message); return message; } //本文来源:IT传媒网 //原文链接: http://www.cniter.com/tech/csharp/10120_1.html } }
个人分类: CSHARP|5981 次阅读|0 个评论
科学网博文置顶的方法
热度 1 sheep021 2011-4-8 13:57
sheep021 2011-3-4 14:43 咋玩博文置顶啊,一直不会用哦 readnet 2011-3-4 14:56 瞎琢磨,在你的主页右上角有【装扮空间】按钮 点【装扮空间】后,【添加模块】,将【添加模块】置顶, 在该模块中添加你想加的博文并链接,即可! sheep021 2011-3-4 14:58 高人,俺也装扮一下 readnet 2011-3-4 15:07 要装【嫩】一点,呵呵 sheep021 2011-3-4 15:08 如何把博文装到新建的置顶模块了? 在新建的置顶模块里建立超级链接即可!! 要用鼠标把新添加的自由模块拖放到置顶的位置 然后点击编辑,打开一个新窗口 里面可以写"置顶" 或别的字样 下面的“自定义内容里 才是放超级链接的地方,即需要置顶的博文名称及其地址
个人分类: 生活点滴|146 次阅读|1 个评论
北京将新建住房价格调控目标定为“稳中有降”
jsxzsyz 2011-3-30 09:18
今天终于有城市提出“降”,让我又仔细看了一遍: 今年 1 月发布的《国务院办公厅关于进一步做好房地产市场调控工作有关问题的通知》。 《通知》要求,地方政府要切实承担起促进房地产市场 平稳健康发展 的责任。 2011 年各城市人民政府要根据当地 经济发展目标 、人均可支配 收入增长速度 和 居民住房支付能力 , 合理 确定本地区年度新建住房价格控制目标,并于 一季度 向社会公布。 看了一遍后有几个问题: 此前几十个城市包括上海深圳等都将房价调控目标与 当地经济发展目标、人均可支配收入增长速度 挂钩,依此制定房价目标。他们的依据就是《通知》。但仔细看过之后通知里还要求还要 促进房地产市场平稳健康发展,同时 根据 居民住房支付能力 合理 确定本地区年度新建住房价格控制目标。 l 试想每年如果上涨 10% , 7 年房价就要翻倍,何谈 房地产市场平稳健康发展? l 小学生都知道一套房要上百万,而普通老百姓收入能到 10 万就不错了,同样增长 10% 何谈考虑居民住房支付能力。 l 同样的一份文件普通老百姓认为政府应该控制房价至少不能再涨,而地方政府却断章取义只看到了收入增长速度中的 “增长 ”二字。难道这些官老爷们不了解 民意 吗(至少 80% 人希望房价下降)?(即使你高居庙堂,相信你也参加了两会了,难道没听见两会代表的呼声吗?)难道你忘了什么是 立党为公执政为民 吗? l 中央要求 一季度 向社会公布,为什么这么多政府都等到最后期限将至才公布?为什么让老百姓拆迁时却一刻也等不了呀?还记得小学生 7 点出门散步,八点回来时家就没了吗?还记得广东打工棚户区老百姓回老家过了个年,窝棚就给拆了吗? l 为什么北京知道控制房价而其他城市不知道,真的是天高皇帝远吗?
个人分类: 生活点滴|9 次阅读|0 个评论
文件的操作集合,亲自编译运行
songyanru243 2011-3-24 20:12
1、新建一个单文档类型的MFC应用程序,工程取名:File。 2、为主菜单添加一个子菜单,名称:“文件操作”,然后为其添加两个菜单项,分别为其添加相应的命令相应函数,且让CFileView类接收这些菜单的命令响应。 IDM_FILE_WRITE 写入文件 OnFileWrite IDM_FILE_READ 读取文件 OnFileRead 附: 文件的打开 在C语言中,对文件的操作是利用FILE结构体进行的,具体实现时,首先需要利用fopen函数返回一个指向FILE结构体的指针,该函数的声明如下: FILE *fopen(const char* filename,const char* mode); 文件的写入 size_t fwrite(const void *buffer,size_t size,size_t count,FILE *stream); buffer:指向将要被写入文件的数据。 文件的关闭 fclose(); 例子:在File程序的CFileView类的OnFileWrite函数中添加如下代码,则可以实现文件的写入操作。 void CFileView::OnFileWrite() { // TODO: Add your command handler code here FILE *pFile=fopen("a.txt","w"); fwrite("英语词汇的奥秘!",1,strlen("英语词汇的奥秘"),pFile); fclose(pFile); } C语言对文件的操作使用了缓冲文件系统。具体地说就是系统自动为每个正在使用的文件在内存中开辟了一块缓冲区域,从内存向磁盘文件写入的数据必须先送到内存中的这个缓冲区,直到其中的缓冲区满了之后,才把其中的数据一起送到磁盘的文件中。因此,当需要在数据写入缓冲区后,立即能在磁盘文件中看到该数据,那么可以使用fclose函数关闭文件,表示对文件的写入操作已经完成,系统这时会把缓冲区中的内容写入磁盘的文件中。 如果希望每次对文件操作之后不关闭它,但仍能将缓冲区中的数据立即写入磁盘文件中,这时可以使用另一个C函数: fflush ,这个函数的作用是将缓冲区中的数据写入到磁盘文件。因此可以将上述fclose换成fflush函数。提高程序效率,减少麻烦,不断刷新缓冲区中的数据,将他们写入磁盘文件中。 文件的指针定位 int fseek(FILE *stream,long offset,int origin); 文件的读取 size_t fread(void *buffer,size_t size,size_t count,FILE *stream); 与fwrite函数一样,fread函数也有四个参数,并且各参数的含义与fwrite函数的相应参数含义相同,只是这时第一个参数:buffer是指向用来存放数据的缓冲区的指针。 例子:在File程序的CFileView类的OnFileRead函数中添加如下代码,则可以实现文件的读取操作。 void CFileView::OnFileRead() { // TODO: Add your command handler code here FILE *pFile=fopen("a.txt","r"); char ch ; fread(ch,1,100,pFile); fclose(pFile); MessageBox(ch); } Build并运行,发现消息框显示的文件中,开始部分是程序中写入的数据,但后面显示了一串乱码。 注意:在C语言中,字符串是以“\0”符号结束的。在显示字符串时,系统会寻找"\0"字符。而这里定义的100个元素的字符数组:ch,它里面的数据是随机的,可能有许多数据都是不可读的。因此我们应该在读取到的数据之后添加"\0"字符,以便作为字符串的结尾。 有多种方法可以向一个字符串添加"\0"字符。这里简单使用一种方法: 在定义字符数组之后char ch 之后,利用C语言中的memset函数将这个字符数组中的所有数据都设置为0. memset(ch,0,100);然后在程序中读取文件时,读取到多少数据就会在该字符数组中存放多少数据,字符数组中剩下的全是0.这样,在字符串显示遇到"\0",就表示该字符串结束了,因此就能正确地显示数据。 二进制文件和文本文件 一个文件写入时经常遇到的问题: 在OnFileWrite和OnFileRead这两个函数中已有代码注释起来。 在OnFileWrite中写入如下代码: FILE *pFile=fopen("2.txt","w"); char ch ; ch ='a'; ch =10; ch ='b'; fwrite(ch,1,3,pFile); fclose(pFile); 注意:在C语言中整数与字符是可以互操作的。如果将一个整数赋给字符变量,实际上就是将该整数作为ASCII码赋给这个字符变量。对于整数10来说,它实际上是换行符的ASCII码。 问题: 以文本文件写入数据的时候,文件的大小是4个字节,而以二进制方式写入数据的时候是3个字节。 实际上 :文件只是在计算机内存中以二进制表示的数据在外部存储介质上的另一种存放形式。 二进制文件 是包含在ASCII及扩展ASCII字符中编写的数据或程序指令的文件。一般是可执行程序、图形、图像、声音等文件 。文本文件(也称为ASCII文件): 它的每一个字节存放的是可表示为一个字符的ASCII代码的文件。它是以“行”为基本结构的一种信息组织和存储方式的文件,可用任何文字处理程序阅读的文本文件。 二进制文件和文本文件都是以二进制数据的方式存储的。对于文本文件来说,它只是一种特殊形式的文件,她它所存放的每一个字节都可以转换为一个可读的字符。 C++对文件操作的支持 在C++中,向文件中写入数据可以使用ofstream类来实现,其构造函数为: ofstream(const char* szName, int nMode=ios::out, int nProt=filebuf::openprot ); 利用ofstream类实现文件写入操作,代码如下: ofstream ofs("4.txt"); ofs.write("help me, help me,help me.",strlen("help me, help me,help me.")); ofs.close(); 利用ifstream类实现文件的读取,代码如下: ifstream ifs("4.txt"); char ch ; memset(ch,0,100); ifs.read(ch,100); ifs.close(); MessageBox(ch); 因为利用C++函数对文件进行操作的应用场合比较少,因此这里只是简单地介绍了ofstream和ifstream这两个类的使用。 MFC对文件操作的支持 MFC中提供的支持文件操作的基类是:CFile,该类提供了没有缓冲的二进制格式的磁盘文件输入输出功能,通过其派生类能够间接地支持文本文件和内存文件。 CFile(LPCTSTR lpszFileName,UNIT nOpenFlags ); 其中lpszFileName指定文件的名称,nOpenFlags指定文件共享和访问的方式。 文件的写入 在File程序中利用CFile类提供的方法来实现文件的写入操作。代码如下: CFile file("6.txt",CFile::modeCreate|CFile::modeWrite); file.Write("pig pig pig",strlen("pig pig pig")); file.Close(); 文件的读取 在OnFileRead函数中实现文件的读取: CFile file("6.txt",CFile::modeRead); char *pBuf; DWORD dwFileLen; dwFileLen=file.GetLength(); pBuf=new char ; pBuf =0; file.Read(pBuf,dwFileLen); file.Close(); MessageBox(pBuf); CFile类的使用非常方便,因此在使用MFC编程时,如果涉及文件操作,最好采用CFile类来完成。 CFileDialog类 可以为File程序增加一个“打开文件”对话框和“另存为”对话框的功能。 这是CFileDialog类的派生层次结构图。可以看出CFileDialog类是从CCommonDialog类派生来的,并且间接派生于CDialog类,因此它也是一个对话框类。该类的构造函数声明如下: CFileDialog( BOOL bOpenFileDialog , LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL ); bOpenFileDialog是BOOL类型,如果此参数设置为TRUE,那么将构建一个打开对话框;如果将此参数设置为FALSE,那么将构建一个保存为对话框。也就是说,通过 CFileDialog类,既可以创建“打开”对话框,也可以创建“保存为”对话框。 1、另存为对话框 在OnFileWrite函数中添加以下代码: CFileDialog fileDlg(FALSE); fileDlg.DoModal(); 运行File程序,弹出如下对话框。 继续做一些改进,将标题“另存为”改为“我的文件保存对话框”, fileDlg.m_ofn.lpstrTitle="我的文件保存对话框"; 如果想设置保存类型,即设置过滤器的话,可以利用m_ofn这个数据成员中另一个字段:lpstrFilter来完成,该字段是一个指向包含多个过滤字符串对的缓冲区的指针,各过滤字符串对之间,以及字符串对内部两个字符串之间都以“\0”分隔,最后的过滤器字符串必须以两个“\0”字符结尾。对一个字符串对来说,第一个字符串描述过滤器,而第二个字符串表明过滤使用的文件扩展名称,多个扩展名称可以用分号(;)分隔。因此,如果把过滤字符串设置为"Text Files(*.txt)",那么该字符串只是出现在“另存为”对话框中保存类型列表框中所看到的文字,并不具有过滤的功能。如果要想具有过滤功能,必须在其后加上“\0”字符,并随后加上“*.txt”字符串。因此,在上述代码之后在添加如下代码: fileDlg.m_ofn.lpstrFilter="Text Files(*.txt)\0\*.txt\0All Files(*.*)\0*.*\0\0"; 可以看到标题变成了:我的文件保存对话框。在保存类型下拉列表框中出现了Text Files(*.txt)和All Files(*.*)两种文件过滤类型。 接下来要实现这样的功能:当用户通过“另存为”对话框选择了某个文件并单击该对话框上的【保存】按钮后,程序应该根据用户所选择的文件名,打开相应文件,然后向其中写入数据。 再在OnFileWrite函数增加以下代码: if(IDOK==fileDlg.DoModal()) { CFile file(fileDlg.GetFileName(),CFile::modeCreate|CFile::modeWrite); file.Write("outliers,outliers",strlen("outliers,outliers")); file.Close(); 2、打开文件对话框 再利用CFileDialog类创建一个打开文件对话框。在File程序CFileView类的OnFileRead函数添加下面代码: CFileDialog fileDlg(TRUE); fileDlg.m_ofn.lpstrTitle="我的文件打开对话框"; fileDlg.m_ofn.lpstrFilter="Text Files(*.txt)\0\*.txt\0All Files(*.*)\0*.*\0\0"; if(IDOK==fileDlg.DoModal()) { CFile file(fileDlg.GetFileName(),CFile::modeRead); char *pBuf; DWORD dwFileLen; dwFileLen=file.GetLength(); pBuf=new char ; pBuf =0; file.Read(pBuf,dwFileLen); file.Close(); MessageBox(pBuf); } 运行File程序,会出现如上所示对话框。通过这个对话框,用户可以选择一个文件,并单击该对话框上的【打开】按钮,即可打开该文件,并在弹出的消息框上看到该文件的内容。 小结: 主要分析和介绍了与文件操作相关的内容,包括: C语言对文件读写的支持; 文本文件和二进制文件的区别; C++对文件读写的支持,涉及ofstream和ifstream的用法; MFC对文件读写的支持,主要介绍了CFile类和CFileDialog类的使用。 参考书:《VC++深入详解》孙鑫 余安萍 编著
个人分类: 科研交流|1333 次阅读|0 个评论
NoteExpress中增加对网页引文格式的支持
热度 1 seawan 2011-3-4 17:19
有些文档必须要求《软件学报》格式的引文。。。而NoteExpress中该格式没有网页类型;解决: NoteExpress中,对“网页”类型的文献可以“新增题录”,但是如果采用“《软件学报》”等格式来插入“网页”参考文献的话,可能效果不理想。 具体可以这样做: 1.新建“网页”类型的题录,注意在“年份”上填写网页的更新日期,在“访问日期”上写“February 2,2011”之类的,或汉语“2011年2月11日”。链接填URL即可。 2.在“样式编辑器”中,编辑“软件学报”的样式,添加类似这样的“题录-模板”: 网页 作者.标题 .链接,年份/访问日期. 即可。 (上面的“作者”等需要使用“插入字段”方式插入)。 如果需要加入空格,可以直接加入,也可使用*号: 作者.*标题 .*链接,*年份/访问日期.
个人分类: 科研工作|25053 次阅读|0 个评论
武汉站的印象
baodezhou 2010-2-23 10:01
春节回家经过武汉站,感觉非常好。新建的车站有如机场,外形宏伟壮观,候车大厅宽敞明亮,人性化的设计理念,乘车便捷,配套设施完善,车站风格令人耳目一新。
个人分类: 旅途剪影|7081 次阅读|4 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-20 18:46

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部