




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、、组态软件二、C语言基础1 .WINCC中的语言Wincc语言由C脚本(C-script)和B脚本(VB-script)组成。WINCC中C脚本:(1)C动作(在画布中编辑的程序代码)。(2)全局脚本编辑器:项目函数、标准函数和内部函数。项目函数:自定义本项目(保护性)标准函数:编辑好供C动作调用内部函数:(微软)自定义编辑函数在项目函数中例如:#pragma()intNEW_Add(inta;inb)intc;c=a+b;returnc;2 .WINCC中的(Tag)变量程序使用的变量(书上P31-35变量:C变量、WINCC变量C变量:int(数值型)、char仔符型)、BOOL(布尔型)
2、-也就是二进制(为常用)WINCC变量:word(数值型)、char(字符型)、Bit(布尔型)(为常用)常用变量如下:布尔型:SetTagBit参数1,参数2)、GetTagBit(参数)数值型:SetTagWor恪数1,参数2)、GetTagWord参数)字符型:SetTagCha参数1,参数2)、GetTagChar参数)参数1:变量名。参数2:具体要求。例如参数1为液位,参数2为a举例1二进制变量“启动”控制电机启停BOOLa;a=GetTagBit(“启动”);if(a=0)SetTagBit(“启动”,1);举例2二进制变量“启动”控制电机启停BOOLa;staticinti=0;
3、(类似inti;i=0;)a=GetTagBit(“启动”);if(a=0)i+;两者区别:不加static加static启动一次i=1启动一次i=1启动二次i=1启动二次i=2启动三次i=1启动三次i=3启动四次i=1启动四次i=43 .WINCC中的运算符3.WINCC中的常用语句三、变量组态WINCC中的变量分为:内部变量、外部变量和C动作(函数中的变量)1. 利用变量进行增减计数步骤1:进行画面构建,需要两个按钮和一个输入输出域(属性调整-)(变量、有变化时、输出)。新建内部变量,命名为“计数”,属性为无符16位。如下图所示;步骤2:在名字为“启动增加”的按钮中-属性-事件鼠标左键C动
4、作:unsignedshorta;a=GetTagWord("计数");a+;SetTagWord(计数",a);步骤3:在名字为“启动减少”的按钮中-属性-事件鼠标左键C动作:unsignedshorta;a=GetTagWord("计数");a-;SetTagWord(计数",a);2. 利用变量进行增减计数(带有步长控制),可定义步长步骤1:进行画面构建,需要两个按钮和两个输入输出域(属性调整-)(变量为计数、有变化时、输出)步长对应的输入输出域(属性调整-)(变量为步长、有变化时、输入)。新建2个内部变量,命名为“计数”和“步
5、长”,属性为无符16位。如下图所示;步骤2:在名字为“启动增加”的按钮中-属性-事件鼠标左键C动作:unsignedshorta;unsignedshortb;a=GetTagWord("计数1");b=GetTagWord("步长)a=a+b;SetTagWord(计数1",a);步骤3:在名字为“启动减少”的按钮中-属性-事件鼠标左键C动作:unsignedshorta;unsignedshortb;a=GetTagWord("计数1");b=GetTagWord("步长)a=a-b;SetTagWord(计数1&quo
6、t;,a);步骤4:如果调整步长,可直接输入3. 利用变量进行电机启动新建内部变量,命名为“起停”,属性为无符16位。在名字为“启停”的按钮中属性事件-鼠标左键C动作:BOOLa;a=GetTagWord("起停");if(a=0)SetTagWord(起停",1);if(a=1)SetTagWord(起停",0);4. 利用变量进行windows窗口对象的修改四、画面组态5. 画面的切换方法1:利用直接连接切换单个画面,即为在下图中“单击鼠标改变画面”的部分点击链接到所要去的画面。组态完毕后,点击按钮即可达到。P101方法2:通过对象名称和画面名称的变
7、量连接打开画面。在书上方法3:通过内部函数打开画面。在按钮属性中事件中鼠标左键中C动作利用软件内部函数输入程序如下:OpenPrevPicture("画面名称");6. 利用画面窗口显示画面方法:SetVisibleC画面名称","对象名称",1或0);SetVisible表示可见度;画面名称表示画面的名字,例如l.pdl等;对象名称表示“画面窗口n”,“画面窗口n”在智能对象中;1或0表示可见或不可见。步骤:第一步:新建三个画面,l.pdl、2.pdl、3.pdl。目的将2.pdl、3.pdl在l.pdl中通过按钮的控制显示出来;第二步:分别
8、在2.pdl、3.pdl中组态一个目标物;第三步:在1.pdl中组态两个按钮和两个画面窗口控件(名称为画面窗口1、画面窗口2),在智能对象中找到“画面窗口”,更改画面窗口属性(属性几何宽度为246,高度为129;属性一其它一边框改为是,显示改为否,画面名称添加2.pdl或3.pdD;第四步:将2.pdl、3.pdl画面的大小调整为和两个画面窗口一样大;第五步:进行按钮组态,在按钮属性中事件中鼠标左键中C动作中编写程序如下:按钮1:SetVisible("1.pdl",'画面窗口1",1);SetVisible("1.pdl",'
9、画面窗口2",0);按钮2:SetVisible("1.pdl",'画面窗口1",0);SetVisible("1.pdl",'画面窗口2",1);7. 画面窗口属性时控显示这个技巧功能是对上一个的继承,最终结果就是将三个画面循环显示。步骤:第一步:新建四个画面,l.pdl、2.pdl、3.pdl、4.pdl。目的将2.pdl、3.pdl、4.pdl在l.pdl中通过按钮的时间控制显示出来;(这里并非按钮按下显示,系统运行自动显示)第二步:分别在2.pdl、3.pdl、4.pdl中组态一个目标物;第三步:在1
10、.pdl中组态一个按钮和三个画面窗口控件(名称为画面窗口1、画面窗口2、画面窗口3),在智能对象中找到“画面窗口”,更改画面窗口属性(属性几何宽度为246,高度为129;属性-其它-边框改为是,显示改为否,画面名称添加2.pdl或3.pdl或4.pdl);第四步:将2.pdl、3.pdl、4.pdl画面的大小调整为和三个画面窗口一样大;第五步:进行按钮组态,在按钮属性中几何中宽度中(假如宽度为70)C动作中编写程序如下:staticinta=0;a+;if(a=1)SetVisible("1.pdl",'画面窗口3",1);SetVisible("
11、;1.pdl",'画面窗口4",0);SetVisible("1.pdl",'画面窗口5",0);if(a=2)SetVisible("1.pdl",'画面窗口3",0);SetVisible("1.pdl",'画面窗口4",1);SetVisible("1.pdl",'画面窗口5",0);if(a=3)SetVisible("1.pdl",'画面窗口3",0);SetVisib
12、le("1.pdl",'画面窗口4",0);SetVisible("1.pdl",'画面窗口5",1);a=0;return70;触发器调整为1S中,即为间隔1S闪烁显示。8. 动画旋转组态(例如风扇转动)这个技巧是为了组态一个旋转的动画,例如工业上的搅拌机等。举例如下:步骤1:组态基本画面,可以在显示库中寻找,也可以自己绘制。显示库:从显示库中调用,若使用,首先将元件导出(注意保存),然后将元件删掉,然后再导入(插入)这个元件,便可以进行调整(折开、组装、编组)注意,编组时必须至少两个一组。自己绘制:例如矩形、圆等(
13、注意属性的调整)全选编组。例如编为4个组:组1、组2、组3、组4步骤2:程序的编写在画布属性-几何-宽度(如果此时宽度为800)-C动作:staticinta=0;a+;if(a=1)SetVisible("1.pdl",'组1",1);SetVisible("1.pdl",'组2",0);SetVisible("1.pdl",'组3",1);SetVisible("1.pdl",'组4",0);if(a=2)SetVisible("
14、1.pdl",'组1",0);SetVisible("1.pdl",'组2",1);SetVisible("1.pdl",'组3",0);SetVisible("1.pdl",'组4",1);return800;步骤3:触发器的调整,标准周期,250MS9. 动态化颜色改变颜色改变是最基本的动态化的技巧,就是动态对话框的基本功能,利用颜色的变化来完成一个部件的动作或结束。例如,画布属性-颜色动态对话框(事件名称也就是触发器的调整、表达式的填充或者变量、选
15、择表达式结果的展现形式(布尔型或者其它调整颜色)。10. 动态化闪烁组态(元件闪烁)此技巧主要是针对于元件库中的元件来讲。例如,随便调出一个元件(属性控件属性闪烁样式(4种选择,包括不闪烁-0、不可见-1、阴影-2、实心-3)。点击后面的灯泡标志,选择动态对话框闪烁颜色布尔型等。此技巧元件可单独作用,亦可由按钮控制。11. 动态化动态填充组态动态填充组态就是控制元件的动态填充。例如,新建一个内部变量(命名为level无符号16位、上限100、下限0、起始值0)、调出一个元件或绘制一个矩形(属性动态填充改为“是”、填充量改为“0”、点击填充量后面的灯泡标志,直接连接变量level)。在矩形-几何
16、-宽度(假设宽度为100)C动作:(注意触发器调整250毫秒)( 1)填充增加staticinta=0;if(a>=100)a=0;SetTagWord("level",a);a+;return100;( 2)填充减少staticinta=100;if(a=100)a=100;SetTagWord("level",a);return100;3)填充增减结合(先增加、再减少)staticinta=0;staticintb=0;(方向控制)if(b=O)(if(a>=100)(b=1;)a+;)if(b=1)(if(a<=0)SetTagW
17、ord("level",a);return100;12. 动态化对象的移动对象的移动就是控制元件在画布上水平左右或者垂直上下的移动,亦或沿对角线移动,也可以综合性的各方向的移动。以小车移动为例进行步骤分析如下:步骤一:选中元件属性几何(选择位置X、位置Y)灯泡标志(C动作):特别注意:计算移动的距离范围,选出一个起点和一个终点(如果双向起点和终点和互换的)。计算两点之间的距离。如果水平移动,计算X之间的距离;如果垂直移动,计算Y之间的距离。例如,起点X的坐标为500,终点X的坐标为20,那么距离为480。(水平移动就是不断增加或者不断减少x)步骤二:下面以水平移动为例,进行
18、C动作分析:(1)水平左移(不断减少x)staticinta=500;if(a<=0)a=480;elsea=a-4;每次移动的距离,可以自动调整)return20+a;(2)水平右移(不断增加x)staticinta=0;if(a>=500)a=0;elsea=a+4;(每次移动的距离,可以自动调整)return20+a;(3)水平左右移动(双向移动)staticinta=500;staticintb=0;(方向控制)if(b=0)if(a<=0)b=1;(调整方向)a=a-4;(每次移动的距离,可以自动调整)if(b=1)if(a>=500)b=0;(调整方向)a=
19、a+4;(每次移动的距离,可以自动调整)SetTagWord("level",a);return20+a;步骤三:触发器调整250毫秒注意:位置X水平(左右)移动位置Y垂直(上下)移动高度放大或者缩小(上下)宽度拉伸或缩短(左右)13. 动态化复杂动画设计复杂动画设计是动态化画面的主要特色,也是工业画面组态主要部分。本技巧的展现以混合液的控制系统为例进行论述。( 1) 管道中液体流动步骤一:在元件库中调用管道。管道在plantElemerpipes2270弯管道()、2206(横放管道)、2180(纵放管道)中寻找。画出液体流动的三种状态,第一种状态为原始状态,就是没有任何
20、液体流动;第二种和第三中为液体流动的两种不同状态。三种状态画好并导出到桌面,画好一个就导出一个。分别命名(0、1、2)(3次)步骤二:新建一个变量,命名为“进水”,为无符号16位。步骤三: 在智能对象中 状态显示组态对话框(变量为“进水” 、有变化时、增加三页(0、1、2)将三个画面状态拖入0、1、2下面,相对应)步骤四:在状态显示控件几何宽度(假设宽度为100)-C动作:staticinta=0;/或者staticunsignedshorta=0;/三种画面的第0张画面if(a>2)当循环超过第二张画面,强制回到第一张画面。a=1;三种画面的第1张画面SetTagWord(进水”,a)
21、;变量状态转移,将a变化给“进水”C变量转WINCC变量a+;return100;步骤五:触发器为标准周期,250或500MS,保存一运行( 2) 进水阀控制的管道中液体流动此技巧和(1)的区别主要是增加阀门的控制。即由阀门控制水流的通和断。对于进水阀门:步骤一:在元件库中-plantElemer-valves|门)。(注意导入和导出)步骤二:新建一个变量,命名为“进水阀”,为二进制变量。步骤三:阀门属性背景颜色动态对话框(事件名称为变量和触发器的调整为有变化时、表达式为“进水阀”、选择布尔型变量(真1绿、假0红)。步骤四:阀门属性事件中鼠标左键C动作:BOOLa;a=GetTagBit(“进
22、水阀”);if(a=1)SetTagBit(“进水阀”,0);elseSetTagBit(“进水阀”,1);对于进水状态显示控件:在状态显示控件-几何-宽度(假设宽度为100)-C动作:staticinta=0;/或者staticunsignedshorta=0;/a表示水量BOOLb;b=GetTagBit(“进水阀”);if(b=0)/如果没有按键按下,无液体流动。return100;if(a>2)/如果有按键按下,有液体流动。a=1;SetTagWord(进水”,a);a+;return100;触发器为标准周期,250或500MS,保存一运行( 3) 进水阀和出水阀共同控制的管道中
23、液体流动以及液位的状态显示进水阀控制如上(2)对于出水阀门:步骤一:在元件库中-plantElemer-valves|门)。(注意导入和导出)步骤二:新建一个变量,命名为“出水阀”,为二进制变量。步骤三:阀门属性背景颜色动态对话框(事件名称为变量和触发器的调整为有变化时、表达式为“出水阀”、选择布尔型变量(真1绿、假0红)。步骤四:阀门属性事件中鼠标左键C动作:BOOLa;a=GetTagBit(“出水阀”);if(a=1)SetTagBit(“出水阀”,0);elseSetTagBit(“出水阀”,1);对于出水状态显示控件:在状态显示控件-几何-宽度(假设宽度为100)-C动作:stati
24、cinta=0;/或者staticunsignedshorta=0;BOOLb;b=GetTagBit(“出水阀”);if(b=0)return100;if(a>2)a=1;SetTagWord('出水",a);a+;return100;触发器为标准周期,250或500MS,保存一运行对于液位的设定:步骤一:在标准对象中矩形(或者其它)进行属性调整(大小、颜色和管道液体同色)步骤二:新建一个变量,命名为“液位”,为无符号16位。上限100,下限0,起始值0。步骤三:矩形属性填充(动态填充改为“是”、填充量改为0其后面的灯泡标志-直接连接变量“液位”(有变化时)。步骤四:
25、矩形属性几何宽度(假设为100)C动作如下:staticinta=0;/或者staticunsignedshorta=0;BOOLb;BOOLc;a=GetTagWord(“液位”);b=GetTagBit(“进水阀”);c=GetTagBit(“出水阀”);if(b=1)a+;if(c=1)a-;SetTagWord(液位”,a);return100;步骤五:触发器为250MS。(标准周期)( 4) 增加设定值的控制本技巧是对(3)中液位部分的调整。增加设定值。使水位恒定在设定值所定在的位置。对于液位的调整:步骤一:新建变量,命名“设定值”,无符号16位。连接输入输出域输入设定值(变量为设定
26、值、类型为输入、有变化时)。步骤二:程序修改矩形属性几何宽度(假设为100)C动作如下:staticunsignedshorta;staticunsignedshortd;BOOLb;BOOLc;a=GetTagWord(“液位”);d=GetTagWord(“设定值”);b=GetTagBit(“进水阀”);c=GetTagBit(“出水阀”);if(a>d)SetTagBit('出水阀",1);a-;if(a<d)SetTagBit(进水阀",1);a+;if(a=d)SetTagBit(进水阀",0);SetTagBitC出水阀"
27、;,0);SetTagWord(液位",a);return100;步骤三触发器为250MS。(标准周期)( 5) 增加急停方式的控制(了解)步骤一新建变量“急停”,二进制变量。按钮事件鼠标C动作(按下,两个地方同时停下)14. 操作控制权限(保护权限)15. 字符串的应用16. 日期与时间的设置正确的提取日期和时间方法1:利用控件显示(直接显示),如图所示;方法2:利用程序显示步骤一:提取系统日期和时间;变量管理添加新的驱动连接,如下图所示;建立日期和时间变量,命名“date和time",date(在“选择”中格式为日期、8位字符集、MM-DD-YYYY),time(在“选
28、择”中格式为时间、8位字符集、HH-MM-SS),如下图所示:分别建立对应的输入/输出域(在“组态对话框”中:对应变量、有变化时,输出)如下图所示。注意:输入/输出域属性调整(输出格式:字符串)步骤二:建立内部变量,命名“shijian”,建立相应的输入/输出域(在“组态对话框”中:对应变量(shijian)、有变化时,输出)如下图所示。注意:输入/输出域属性调整(输出格式:字符串)步骤三:将日期和时间相连;在第二个时间对应的输入/输出域属性几何高度(假设高度为40)-C动作:(触发器为500MS)chara20,b20;charaa10,bb10;inti;chartemp;char*p;p
29、=GetTagChar("date");strcpy(a,p);for(i=0;i<5;i+)aai=ai;bbi=ai+5;aa5='0'bb5='0'for(i=0;i<4;i+)temp=bbi;bbi=bbi+1;bbi+1=temp;strcat(bb,aa);strcpy(a,bb);p=GetTagChar("time");strcpy(b,p);strcat(a,"");strcat(a,b);SetTagChar("shijian",a);return4
30、0;程序分析:黑色程序部分:能达到目的,但是显示西方格式(11-16-2013),不符合中国人审美习惯,故加蓝色部分程序,用于调整日期显示(2013-11-16)。13 .日期与时间的设置两个时间求差值此技巧是对上一个技巧的承接,用于实现在线时长显示的功能。注意:字符不能相加减;显示格式(字符显示):时间1:09:45:30时间209:45:45时长:00:00:15。画面布局如图所示;步骤一:新建内部变量:shijianl和shijian2和shijian3(格式为文本8位字符集),新建对应的输入输出域(变量(shijianl和sMjian2和sMjian3)、有变化时、输出)。注意:输入/
31、输出域属性调整(输出格式:字符串)步骤二:程序时间1程序:在时间1对应的输入输出域中-属性一事件一鼠标左键-C动作:chara20;char*p;p=GetTagChar("time");strcpy(a,p);SetTagChar("shijian1",a);时间2程序:在时间2对应的输入输出域中一属性一事件一鼠标左键-C动作:chara20;char*p;p=GetTagChar("time");strcpy(a,p);SetTagChar("shijian2",a);时间差程序:在时间差对应的输入输出域中-属
32、性-事件-鼠标左键C动作:第一部分:定义变量chara20,b20;char*p;charaa10,bb10,cc10;inti;intval1,val2,val3;intval4,val5,val6;intval7,val8,val9;longsum1,sum2,temp;第二部分:将shijian1由字符转换为数值p=GetTagChar("shijian1")、;、采集时间1strcpy(a,p);for(i=0;i<2;i+)aai=ai;、小时bbi=ai+3;、分钟cci=ai+6;、秒aa2='0'bb2='0'val1=
33、atoi(aa)、;、字符转数值val2=atoi(bb);val3=atoi(cc);第三部分:将shijian2由字符转换为数值(同上)p=GetTagChar("shijian2");strcpy(a,p);for(i=0;i<2;i+)aai=ai;bbi=ai+3;cci=ai+6;aa2='0'bb2='0'val4=atoi(aa);val5=atoi(bb);val6=atoi(cc);第四部分:求差值sum1=val1*3600+val2*60+val3、;、计算时间1共多少秒sum2=val4*3600+val5*6
34、0+val6;、计算时间2共多少秒temp=sum2-sum1、;、秒值相减temp=abs(temp);、取绝对值第五部分:将得出数值temp转换为(时、分、秒)-一分为三(仍为数值)val7=temp/3600;、数值除3600取整为小时val8=(temp%3600)/60;、余下数值除60取整为分钟val9=temp%60;、余下数值除60取余为秒值第六部分:将各数值转换为字符(0的ASCII码为48)b0=val7/10+48;、十位-时b1=val7%10+48;、 、 、个位b2=':'、冒号b3=val8/10+48;b4=val8%10+48;b5='
35、:'b6=val9/10+48;b7=val9%10+48;b8='0'、字符串结束标志SetTagChar("shijian3",b、);、输出结果项目总图14 .全局脚本(了解)将事先编好的程序在全局脚本中编辑成函数形式(项目函数)在C动作中直接调用。以可以保护函数。举例说明:以上一技巧中的时间差函数为例;步骤:全局脚本C-Editor项目函数新建在特定的形式中输入要编的程序,如下所示:#pragmaoption(mbcs)此为函数名字(可以自己起名)输入要编写的程序最后的程序如下:#pragmaoption(mbcs)voidNew_Funct
36、ion()chara20,b20;char*p;charaa10,bb10,cc10;inti;intval1,val2,val3;intval4,val5,val6;longsum1,sum2,temp;p=GetTagChar("shijian1");strcpy(a,p);for(i=0;i<2;i+)aai=ai;bbi=ai+3;cci=ai+6;aa2='0'bb2='0'cc2='0'val1=atoi(aa);val2=atoi(bb);val3=atoi(cc);p=GetTagChar("s
37、hijian2");strcpy(a,p);for(i=0;i<2;i+)aai=ai;bbi=ai+3;cci=ai+6;aa2='0'bb2='0'cc2='0'val4=atoi(aa);val5=atoi(bb);val6=atoi(cc);sum1=val1*3600+val2*60+val3;sum2=val4*3600+val5*60+val6;temp=sum2-sum1;temp=abs(temp);val7=temp/3600;val8=(temp%3600)/60;val9=temp%60;b0=val7/1
38、0+48;b1=val7%10+48;b2=':'b3=val8/10+48;b4=val8%10+48;b5=':'b6=val9/10+48;b7=val9%10+48;b8='0'SetTagChar("shijian3",b);加密:菜单栏中编辑信息(创建者:冯晨曦;口令:123456),以后每次输入都得登录正确的口令才可以登录;加密后,在C动作中只显示函数名,不显示函数内容;15 .关于文件的操作(对WINCC的扩展)(1)文件指针格式*txt*dat(打不开,存放登录过的密码)(2)文件操作打开文件操作文件(复杂)
39、关闭文件(3)打开文件(首先定义文件指针)FILE*fp;fp=fopen(“C:Test.txt”,“r”);打开文件方式:r表示只读:如文件不存在或者路径错误,返回NULL(空指针)w表示写入:如文件不存在或者路径错误,则新建用于清空某个文件。a-表示写:为追加,写时不会删除原有文件。以r、a使用最多(4)关闭文件Fclose(fp);f表示file,中文为“文件”;(5)操作文件写数据fputs(字符,文件指针);字符为常量或者数组举例:fputs(china,fp);chara20;strcpy(a20,fp);读数据fgets(数组名,n,文件指针);作用是从文件中读取n-1个字符放
40、入数组中;16 .项目班级数据录入借助本项目巩固文件操作技巧,本项目就是对一个班级信息的记录(姓名、班级、学号)步骤一:新建三个内部变量:分别命名为“name”、“class”、“number”,并建立相应的输入输出域,注意:输入/输出域属性调整(输出格式:字符串),如下图所示:步骤二:新建两个按钮,分别命名为“写入一次信息”、“写入信息”。任务一:在按钮“写入一次信息”中-属性事件鼠标左键C动作:FILE*fp;fp=fopen("E:123.txt","a");fputs("冯晨曦",fp);fputs("1001自动化
41、",fp);fputs("1005020115",fp);fputs("rn",fp);fclose(fp);任务二:在按钮“写入信息”中-属性事件鼠标左键C动作:FILE*fp;、文件指针chara20;charb20;charc20;char*p;、字符指针/inti;p=GetTagChar("name");strcpy(a,p);p=GetTagChar("class");strcpy(b,p);p=GetTagChar("number");strcpy(c,p);目的:将三个
42、变量一一对应,使各列对齐;对齐方法1:if(strlen(a)=4)、等于4,说明有4个字符,即两个字(两个字的姓名)strcat(a,"");if(strlen(a)=6)、等于6,说明有6个字符,即三个字(三个字的姓名)strcat(a,"");对齐方法2:/for(i=strlen(a);i<8;i+)/strcat(a,"");目的:输出数据fp=fopen("E:123.txt","a");、打开文件fputs(a,fp)、;、写入数据afputs(b,fp);、写入数据afpu
43、ts(c,fp);、写入数据afputs("rn",fp);、回车换行fclose(fp);、关闭文件特别注意:为了免除干扰,防止重复输入相同数据方法:加入延时函数步骤:#pragmaoption(mbcs)voiddelay(WORDa)#pragmacode("keme32.dll")VOIDWINAPISleep(WORDdwMilliSeconds);#pragmacode()Sleep(a);任务二:在按钮“写入信息”中-属性事件鼠标左键C动作:FILE*fp;、文件指针chara20;charb20;charc20;char*p;、字符指针/
44、inti;p=GetTagChar("name");strcpy(a,p);p=GetTagChar("class");strcpy(b,p);p=GetTagChar("number");strcpy(c,p);目的:将三个变量一一对应,使各列对齐;对齐方法1:if(strlen(a)=4)、等于4,说明有4个字符,即两个字(两个字的姓名)strcat(a,"");if(strlen(a)=6)、等于6,说明有6个字符,即三个字(三个字的姓名)strcat(a,"");对齐方法2:/for(i=strlen(a);i<8;i+)/strcat(a,"");目的:输出数据fp=fopen("E:123.txt","a");、打开文件delay(2000;)、延时2秒、 、写入数据afputs(a,fp)、;、 、写入数据afputs(b,fp);、fputs(c,fp);、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 华科数控技术课件网址
- 健康老龄化课件
- 杭州高中模拟数学试卷
- 湖南8年级下册数学试卷
- 2024-2030年中国冬枣行业市场深度分析及发展趋势预测报告
- 2021-2026年中国EHPS电液泵市场深度分析及投资战略咨询报告
- 健康科普知识课件
- 健康科学减脂课件
- 2023-2028年中国混合云管理行业市场全景评估及投资规划建议报告
- 2025年中国三角车属行业市场深度分析及投资战略研究报告
- 装饰施工现场汇报
- 贵州2023年高中学业水平合格性考试地理试卷真题(含答案详解)
- 乙烯 - 辛烯溶液共聚反应机理及聚合物链结构调控策略探究
- 煤矿隐蔽致灾因素普查成果矿井自查表
- 2025至2030年中国椭偏仪行业市场研究分析及发展趋向研判报告
- 2025年全国统一高考语文试卷(全国二卷)含答案
- 2025年高考全国二卷数学高考真题解析 含参考答案
- 铁路营销考试题目及答案
- 商场人员出入管理制度
- 工程监理资料管理制度
- 员工做法人协议书
评论
0/150
提交评论