




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 棉花種植農業氣象服務研究考核試卷
- 紡織機械的智能生產流程考核試卷
- 電子產品銷售數據分析考核試卷
- 木樓梯生產流程優化考核試卷
- 核子儀表在核材料管制中的技術發展考核試卷
- 管道工程歷史文化保護與利用考核試卷
- 電機在電力行業能源科普宣傳與教育活動策劃的應用考核試卷
- 緊固件行業企業戰略聯盟與合作考核試卷
- 石油開采業的人力資源管理與培訓考核試卷
- 山西大學《工程造價案例分析(實驗)》2023-2024學年第二學期期末試卷
- 水電安裝合同范本6篇
- 2025年山西焦煤集團公司招聘筆試參考題庫含答案解析
- 新媒體營銷(第三版) 課件全套 林海 項目1-6 新媒體營銷認知-新媒體營銷數據分析
- 廣州市房產買賣合同范本
- 2024年03月徽商銀行社會招考筆試歷年參考題庫附帶答案詳解
- 2023年云南師范大學實驗中學招聘考試真題
- 大學物理(二)知到智慧樹章節測試課后答案2024年秋湖南大學
- 2022年安徽省二級消防工程師《消防技術綜合能力》考試題庫(含真題、典型題)
- 大學體育與健康 教案全套 武術散打 第1-16周
- 手術患者液體管理
- 醫院耗材管理制度耗材
評論
0/150
提交評論