久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

Wireshark的簡(jiǎn)單使用小結(jié)

時(shí)間:2019-05-13 19:40:19下載本文作者:會(huì)員上傳
簡(jiǎn)介:寫寫幫文庫小編為你整理了多篇相關(guān)的《Wireshark的簡(jiǎn)單使用小結(jié)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《Wireshark的簡(jiǎn)單使用小結(jié)》。

第一篇:Wireshark的簡(jiǎn)單使用小結(jié)

Wireshark的簡(jiǎn)單使用小結(jié)

Wireshark(前稱Ethereal)是一個(gè)網(wǎng)絡(luò)封包分析軟件。網(wǎng)絡(luò)封包分析軟件的功能是截取網(wǎng)絡(luò)封包,并盡可能顯示出最為詳細(xì)的網(wǎng)絡(luò)封包資料。在過去,網(wǎng)絡(luò)封包分析軟件是非常昂貴,或是專門屬于營(yíng)利用的軟件,Wireshark的出現(xiàn)改變了這一切。在GNU GPL通用許可證的保障范圍底下,使用者可以以免費(fèi)的代價(jià)取得軟件與其程式碼,并擁有針對(duì)其源代碼修改及客制化的權(quán)利。Wireshark是目前全世界最廣泛的網(wǎng)絡(luò)封包分析軟件之一。

Wireshark的主要應(yīng)用包括:(1)網(wǎng)絡(luò)管理員使用Wireshark來檢測(cè)網(wǎng)絡(luò)問題;(2)網(wǎng)絡(luò)安全工程師使用Wireshark來檢查資訊安全相關(guān)問題;(3)開發(fā)者使用Wireshark來為新的通訊協(xié)定除錯(cuò);(4)普通使用者使用Wireshark來學(xué)習(xí)網(wǎng)絡(luò)協(xié)定的相關(guān)知識(shí)。

下面是啟動(dòng)后的主窗口界面:

(一)開始/結(jié)束抓包

首先開始抓包,開始的方法有很多,最快的可以單擊interfaces...”),出現(xiàn)下圖窗口,單擊“Start”;

(“List the available capture

此時(shí)抓包工作邊開始,Packet List面板將出現(xiàn)大量的包信息了。

默認(rèn)顯示的信息包括:

(1)No.:包的編號(hào);

(2)Time:包的時(shí)間戳,可以通過“View>>Time Display Format”設(shè)置時(shí)間顯示格式;

(3)Source:包的源地址;

(4)Destination:包的目標(biāo)地址;

(5)Protocol:包的協(xié)議類型,針對(duì)不同的協(xié)議類型,可以顯示不同的顏色,也可關(guān)閉這一功能(“View>>Colorize Packet List”);

(6)Length:包的長(zhǎng)度(單位為bytes);

(7)Info:包內(nèi)容的附加信息。

快捷鍵“Ctrl+I”可以再一次呼出“Capture Interfaces”窗口,單擊“Stop”結(jié)束抓包。

(二)分析(解剖)包

對(duì)已抓取的包選擇其中的一個(gè)進(jìn)行分析。

從Packet List面板中可以知道,這是我抓到的第一個(gè)包,相對(duì)時(shí)間0.000000,源地址為192.168.0.101(我使用的是寢室路由器搭建的局域網(wǎng),此為我的室友IP,此時(shí)他正在魔獸ing),數(shù)據(jù)包發(fā)往113.89.208.228(應(yīng)該是魔獸的服務(wù)器了,google后這個(gè)IP好像在廣州...),使用UDP協(xié)議(游戲嘛,資源消耗少,處理速度快),1094字節(jié)長(zhǎng),附加信息是用戶數(shù)據(jù)報(bào)協(xié)議。

更多的信息,我們可以查看下面的Packet Details窗口和Packet Byte窗口。

(1)Packet Details面板:

該面板主要以樹狀方式顯示包列表面板選中包的協(xié)議及協(xié)議字段,可以方便地展開或折疊它們。點(diǎn)擊其中一行,即可在Packet Byte面板中高亮顯示相應(yīng)內(nèi)容。

其中,各行信息分別為:

i.“Frame 1”包括基本信息;

ii.“Ethernet II,Src”來自數(shù)據(jù)鏈路層;

iii.“Internet Protocol Version 4,Src”來自網(wǎng)絡(luò)層,包括IP協(xié)議,iv.“User Datagram Protocol,Src Port”為傳輸層信息,此包使用了UDP協(xié)議,v.“Data”即包中數(shù)據(jù)內(nèi)容。

(2)Packet Byte面板:

該面板中信息以十六進(jìn)制顯示,第一列為包數(shù)據(jù)偏移量,第二列為十六進(jìn)制數(shù)據(jù)內(nèi)容,第三列為對(duì)應(yīng)的ASCII碼字符。例如:該數(shù)據(jù)包中的IP協(xié)議中便包涵了源地址IP和目標(biāo)地址IP,其中,最后16位(十六進(jìn)制)分別表示了這兩個(gè)IP。“c0 a8 01 65(192.168.1.101)”是源地址,“71 59 d0 e4(113.89.208.228)”是目標(biāo)地址。

Wireshark中比較重要的還有過濾器,F(xiàn)ilter分Display Filter、Capture Filter。

Display Filter就在一打開Wireshark的頁面,在所抓包的上方。如下圖:

如果抓出來的包 Protocol有DNS、ARP、TCP、ICMP等,如要篩選出ICMP包,則在Filter輸入框中輸入:ICMP,然后Apply,則包的列表中就只顯示出ICMP包。

Capture Filter是在Capture——Options中。如下圖:

Capture Filter在開始抓包之前先設(shè)置需要的Protocol包,有很多包時(shí)用這個(gè)比較方便。這邊還可以點(diǎn)擊Capture Filte按鈕,查看不同的協(xié)議Capture Filte的不同的表示方法。

下面給出幾個(gè)Display Filter與Capture Filter書寫的區(qū)別:

Display Filte

Capture Filter

ip.addr==192.168.0.host 192.168.0.1

!(ip.addr==192.168.0.1)

UDP.port==

53port 53

http

tcp port http

IPVether proto 0x0806

Wireshark可以捕捉多種網(wǎng)絡(luò)接口類型的包。可點(diǎn)擊Capture——Interfaces,彈出所有capture interfaces,選擇其中需要捕捉的網(wǎng)絡(luò)接口 start,則開始抓包。

對(duì)于捕獲的包要進(jìn)行分析。如:ping baidu.com,ping用的是ICMP協(xié)議,所以所抓的包肯定有ICMP Protocol,然后再分析該包的內(nèi)容(source、destination、TTL(Time to live)、Type、Code);如果是首次ping baidu,那會(huì)進(jìn)行DNS域名解析,則所抓的包肯定有DNS Protocol。這邊的TTL需要掌握,每經(jīng)過一個(gè)路由則減去一。

第二篇:wireshark插件開發(fā)小結(jié)

wireshark插件開發(fā)小結(jié)

關(guān)鍵字:wireshark, plugin, lua,protocol 概述wireshark是非常流行的網(wǎng)絡(luò)封包分析軟件,功能十分強(qiáng)大。可以抓取各種網(wǎng)絡(luò)包,并顯示網(wǎng)絡(luò)包的詳細(xì)信息。為什么使用wiresharkTroubleshoot network problems

定位網(wǎng)絡(luò)問題Debug protocol implementations 調(diào)試自己實(shí)現(xiàn)的協(xié)議Learn network protocol internals 分析協(xié)議內(nèi)部實(shí)現(xiàn)分析網(wǎng)絡(luò)性能網(wǎng)絡(luò)端點(diǎn),統(tǒng)計(jì)每個(gè)端點(diǎn)的地址、發(fā)送或收到的數(shù)據(jù)包的數(shù)量和字節(jié)數(shù)。

網(wǎng)絡(luò)會(huì)話,統(tǒng)計(jì)地址A 和地址B 端點(diǎn)間會(huì)話的發(fā)送或收到的數(shù)據(jù)包的數(shù)量和字節(jié)數(shù)。協(xié)議分層,可查看各種協(xié)議的分布統(tǒng)計(jì)情況。數(shù)據(jù)包長(zhǎng)度分析。架構(gòu)Wireshark是分析網(wǎng)絡(luò)數(shù)據(jù)的利器,也是掌握計(jì)算機(jī)網(wǎng)絡(luò)的工具。wireshark用C語言開發(fā),架構(gòu)合理。wireshark從網(wǎng)絡(luò)協(xié)議棧拷貝網(wǎng)絡(luò)包,可以保存為pcap文件。wireshark 內(nèi)部實(shí)現(xiàn)

Plugin dissectorDecodes protocols that are newly added.解析新的網(wǎng)絡(luò)協(xié)議Faster rebuilds and bug correction.(Due to stand alone librariesgenerated for each plugin dissector)? 每個(gè)插件是單獨(dú)的dll文件,這樣可以快速替換插件,加快插件開發(fā)速度。插件文件路徑 : 安裝目錄/plugins/ Wiretapused to read/write capture files

pcap文件讀寫 winpcap

(windows packet capture)是windows平臺(tái)下一個(gè)免費(fèi),公共的網(wǎng)絡(luò)訪問系統(tǒng)。winpcap這個(gè)項(xiàng)目的目的在于為win32應(yīng)用程序提供訪問網(wǎng)絡(luò)底層的能力。它用于windows系統(tǒng)下的直接的網(wǎng)絡(luò)編程。插件(plugin)Wireshark使用C語言編寫而成,它支持動(dòng)態(tài)鏈接庫形式的插件擴(kuò)展。除此之外,wireshark內(nèi)置了Lua腳本引擎,可以使用Lua腳本語言編寫dissector插件。Wireshark lua proto APIfunctiondescriptionProto.new(name, desc)Creates a new protocolproto.dissectorThe protocol's dissectorproto.fieldsThe Fields Table of this dissectorproto.prefsThe preferences of this dissectorproto.prefs_changedThe preferences changed routine of this dissectorproto.initThe init routine of this dissectorproto.nameThe name given to this dissectorproto.descriptionThe description given to this dissector

第三篇:sqlldr使用小結(jié)

sqlldr使用小結(jié)

sqlldr userid=lgone/tiger control=a.ctl

LOAD DATA

INFILE ’t.dat’ // 要導(dǎo)入的文件

// INFILE ’tt.date’ // 導(dǎo)入多個(gè)文件

// INFILE * // 要導(dǎo)入的內(nèi)容就在control文件里 下面的BEGINDATA后面就是導(dǎo)入的內(nèi)容

INTO TABLE table_name // 指定裝入的表

BADFILE ’c:\bad.txt’ // 指定壞文件地址

************* 以下是4種裝入表的方式

APPEND // 原先的表有數(shù)據(jù) 就加在后面

// INSERT // 裝載空表 如果原先的表有數(shù)據(jù) sqlloader會(huì)停止 默認(rèn)值

// REPLACE // 原先的表有數(shù)據(jù) 原先的數(shù)據(jù)會(huì)全部刪除

// TRUNCATE // 指定的內(nèi)容和replace的相同 會(huì)用truncate語句刪除現(xiàn)存數(shù)據(jù)

************* 指定的TERMINATED可以在表的開頭 也可在表的內(nèi)部字段部分

FIELDS TERMINATED BY ’,’ OPTIONALLY ENCLOSED BY ’“’

// 裝載這種數(shù)據(jù): 10,lg,”“"lg”“",”lg,lg“

// 在表中結(jié)果: 10 lg ”lg“ lg,lg

// TERMINATED BY X ’0Array’ // 以十六進(jìn)制格式 ’0Array’ 表示的// TERMINATED BY WRITESPACE // 裝載這種數(shù)據(jù): 10 lg lg

TRAILING NULLCOLS ************* 表的字段沒有對(duì)應(yīng)的值時(shí)允許為空

************* 下面是表的字段

(col_1 , col_2 ,col_filler FILLER // FILLER 關(guān)鍵字 此列的數(shù)值不會(huì)被裝載

// 如: lg,lg,not 結(jié)果 lg lg)

// 當(dāng)沒聲明FIELDS TERMINATED BY ’,’ 時(shí)

//(// col_1 [interger external] TERMINATED BY ’,’ ,// col_2 [date ”dd-mon-yyy“] TERMINATED BY ’,’ , // col_3 [char] TERMINATED BY ’,’ OPTIONALLY ENCLOSED BY ’lg’

//)

// 當(dāng)沒聲明FIELDS TERMINATED BY ’,’用位置告訴字段裝載數(shù)據(jù)

//(// col_1 position(1:2),// col_2 position(3:10),// col_3 position(*:16), // 這個(gè)字段的開始位置在前一字段的結(jié)束位置

// col_4 position(1:16),// col_5 position(3:10)char(8)// 指定字段的類型

//)

BEGINDATA // 對(duì)應(yīng)開始的 INFILE * 要導(dǎo)入的內(nèi)容就在control文件里

10,Sql,what

20,lg,show

=======================================

//////////// 注意begindata后的數(shù)值前面不能有空格***** 普通裝載

LOAD DATA

INFILE *

INTO TABLE DEPT

REPLACE

FIELDS TERMINATED BY ’,’ OPTIONALLY ENCLOSED BY ’”’

(DEPTNO,DNAME,LOC)

BEGINDATA

10,Sales,“"”USA“"”

20,Accounting,“Virginia,USA”

30,Consulting,Virginia

40,Finance,Virginia

50,“Finance”,“",Virginia // loc 列將為空

60,”Finance“,Virginia // loc 列將為空***** FIELDS TERMINATED BY WHITESPACE 和 FIELDS TERMINATED BY x’0Array’ 的情況

LOAD DATA

INFILE *

INTO TABLE DEPT

REPLACE

FIELDS TERMINATED BY WHITESPACE

--FIELDS TERMINATED BY x’0Array’

(DEPTNO,DNAME,LOC)

BEGINDATA Sales Virginia ***** 指定不裝載那一列

LOAD DATA

INFILE *

INTO TABLE DEPT

REPLACE

FIELDS TERMINATED BY ’,’ OPTIONALLY ENCLOSED BY ’”’

(DEPTNO,F(xiàn)ILLER_1 FILLER, // 下面的 “Something Not To Be Loaded” 將不會(huì)被裝載

DNAME,LOC)

BEGINDATA

20,Something Not To Be Loaded,Accounting,“Virginia,USA” ***** position的列子

LOAD DATA

INFILE *

INTO TABLE DEPT

REPLACE

(DEPTNO position(1:2),DNAME position(*:16), // 這個(gè)字段的開始位置在前一字段的結(jié)束位置

LOC position(*:2Array),ENTIRE_LINE position(1:2Array))

BEGINDATA

10Accounting Virginia,USA

***** 使用函數(shù) 日期的一種表達(dá) TRAILING NULLCOLS的使用

LOAD DATA

INFILE *

INTO TABLE DEPT

REPLACE

FIELDS TERMINATED BY ’,’

TRAILING NULLCOLS // 其實(shí)下面的ENTIRE_LINE在BEGINDATA后面的數(shù)據(jù)中是沒有直接對(duì)應(yīng)

// 的列的值的 如果第一行改為

10,Sales,Virginia,1/5/2000, 就不用TRAILING NULLCOLS了

(DEPTNO,DNAME “upper(:dname)”, // 使用函數(shù)

LOC “upper(:loc)”,LAST_UPDATED date ’dd/mm/yyyy’, // 日期的一種表達(dá)方式 還有’dd-mon-yyyy’ 等

ENTIRE_LINE “:deptno||:dname||:loc||:last_updated”)

BEGINDATA

10,Sales,Virginia,1/5/2000

20,Accounting,Virginia,21/6/1ArrayArrayArray 30,Consulting,Virginia,5/1/2000

40,Finance,Virginia,15/3/2001 ***** 使用自定義的函數(shù) // 解決的時(shí)間問題

create or replace

function my_to_date(p_string in varchar2)return date

as

type fmtArray is table of varchar2(25);

l_fmts fmtArray := fmtArray(’dd-mon-yyyy’, ’dd-month-yyyy’,’dd/mm/yyyy’,’dd/mm/yyyy hh24:mi:ss’);

l_return date;

begin

for i in 1..l_fmts.count

loop

begin

l_return := to_date(p_string, l_fmts(i));

exception

when others then null;

end;EXIT when l_return is not null;

end loop;

if(l_return is null)

then

l_return :=

new_time(to_date(’01011Array70’,’ddmmyyyy’)+ 1/24/60/60 *

p_string, ’GMT’, ’EST’);

end if;

return l_return;

end;

/

LOAD DATA

INFILE *

INTO TABLE DEPT

REPLACE

FIELDS TERMINATED BY ’,’

TRAILING NULLCOLS

(DEPTNO, DNAME “upper(:dname)”,LOC “upper(:loc)”,LAST_UPDATED “my_to_date(:last_updated)” // 使用自定義的函數(shù))

BEGINDATA

10,Sales,Virginia,01-april-2001

20,Accounting,Virginia,13/04/2001

30,Consulting,Virginia,14/04/2001 12:02:02

40,Finance,Virginia,Array872682Array7

50,Finance,Virginia,02-apr-2001

60,Finance,Virginia,Not a date ***** 合并多行記錄為一行記錄

LOAD DATA

INFILE *

concatenate 3 // 通過關(guān)鍵字concatenate 把幾行的記錄看成一行記錄

INTO TABLE DEPT

replace

FIELDS TERMINATED BY ’,’

(DEPTNO, DNAME “upper(:dname)”,LOC “upper(:loc)”,LAST_UPDATED date ’dd/mm/yyyy’)

BEGINDATA

10,Sales, // 其實(shí)這3行看成一行 10,Sales,Virginia,1/5/2000

Virginia,1/5/2000

// 這列子用 continueif list=“,” 也可以

告訴sqlldr在每行的末尾找逗號(hào) 找到逗號(hào)就把下一行附加到上一行

LOAD DATA

INFILE *

continueif this(1:1)= ’-’ // 找每行的開始是否有連接字符-有就把下一行連接為一行

// 如-10,Sales,Virginia,// 1/5/2000 就是一行 10,Sales,Virginia,1/5/2000

// 其中1:1 表示從第一行開始 并在第一行結(jié)束 還有continueif next 但continueif list最理想

INTO TABLE DEPT replace

FIELDS TERMINATED BY ’,’

(DEPTNO,DNAME “upper(:dname)”,LOC “upper(:loc)”,LAST_UPDATED date ’dd/mm/yyyy’)

BEGINDATA // 但是好象不能象右面的那樣使用

-10,Sales,Virginia,-10,Sales,Virginia,1/5/2000 1/5/2000

-40, 40,Finance,Virginia,13/04/2001

Finance,Virginia,13/04/2001 ***** 載入每行的行號(hào)

load data

infile *

into table t

replace

(seqno RECNUM //載入每行的行號(hào)

text Position(1:1024))

BEGINDATA fsdfasj //自動(dòng)分配一行號(hào)給載入 表t 的seqno字段 此行為 1

fasdjfasdfl // 此行為 2...Array ***** 載入有換行符的數(shù)據(jù)

注意: unix 和 windows 不同 \\n & /n

< 1 > 使用一個(gè)非換行符的字符

LOAD DATA

INFILE *

INTO TABLE DEPT

REPLACE

FIELDS TERMINATED BY ’,’

TRAILING NULLCOLS

(DEPTNO,DNAME “upper(:dname)”,LOC “upper(:loc)”,LAST_UPDATED “my_to_date(:last_updated)”,COMMENTS “replace(:comments,’\n’,chr(10))” // replace 的使用幫助轉(zhuǎn)換換行符)

BEGINDATA

10,Sales,Virginia,01-april-2001,This is the Sales\nOffice in Virginia

20,Accounting,Virginia,13/04/2001,This is the Accounting\nOffice in Virginia

30,Consulting,Virginia,14/04/2001 12:02:02,This is the Consulting\nOffice in Virginia

40,Finance,Virginia,Array872682Array7,This is the Finance\nOffice in Virginia

< 2 > 使用fix屬性

LOAD DATA

INFILE demo17.dat “fix 101”

INTO TABLE DEPT

REPLACE

FIELDS TERMINATED BY ’,’

TRAILING NULLCOLS

(DEPTNO,DNAME “upper(:dname)”,LOC “upper(:loc)”,LAST_UPDATED “my_to_date(:last_updated)”,COMMENTS)

demo17.dat 10,Sales,Virginia,01-april-2001,This is the Sales

Office in Virginia

20,Accounting,Virginia,13/04/2001,This is the Accounting

Office in Virginia

30,Consulting,Virginia,14/04/2001 12:02:02,This is the Consulting

Office in Virginia

40,Finance,Virginia,Array872682Array7,This is the Finance

Office in Virginia

// 這樣裝載會(huì)把換行符裝入數(shù)據(jù)庫 下面的方法就不會(huì) 但要求數(shù)據(jù)的格式不同

LOAD DATA

INFILE demo18.dat “fix 101”

INTO TABLE DEPT

REPLACE

FIELDS TERMINATED BY ’,’ OPTIONALLY ENCLOSED BY ’“’

TRAILING NULLCOLS

(DEPTNO, DNAME ”upper(:dname)“,LOC ”upper(:loc)“,LAST_UPDATED ”my_to_date(:last_updated)“,COMMENTS)

demo18.dat

10,Sales,Virginia,01-april-2001,”This is the Sales

Office in Virginia“

20,Accounting,Virginia,13/04/2001,”This is the Accounting

Office in Virginia“

30,Consulting,Virginia,14/04/2001 12:02:02,”This is the Consulting

Office in Virginia“

40,Finance,Virginia,Array872682Array7,”This is the Finance

Office in Virginia“

< 3 > 使用var屬性

LOAD DATA

INFILE demo1Array.dat ”var 3“

// 3 告訴每個(gè)記錄的前3個(gè)字節(jié)表示記錄的長(zhǎng)度 如第一個(gè)記錄的 071 表示此記錄有 71 個(gè)字節(jié)

INTO TABLE DEPT

REPLACE

FIELDS TERMINATED BY ’,’

TRAILING NULLCOLS

(DEPTNO,DNAME ”upper(:dname)“,LOC ”upper(:loc)“,LAST_UPDATED ”my_to_date(:last_updated)“,COMMENTS)

demo1Array.dat

07110,Sales,Virginia,01-april-2001,This is the Sales

Office in Virginia

07820,Accounting,Virginia,13/04/2001,This is the Accounting

Office in Virginia

08730,Consulting,Virginia,14/04/2001 12:02:02,This is the Consulting

Office in Virginia

07140,Finance,Virginia,Array872682Array7,This is the Finance

Office in Virginia

< 4 > 使用str屬性

// 最靈活的一中 可定義一個(gè)新的行結(jié)尾符 win 回車換行 : chr(13)||chr(10)

此列中記錄是以 a|\r\n 結(jié)束的select utl_raw.cast_to_raw(’|’||chr(13)||chr(10))from dual;

結(jié)果 7C0D0A

LOAD DATA

INFILE demo20.dat ”str X’7C0D0A’“

INTO TABLE DEPT

REPLACE

FIELDS TERMINATED BY ’,’

TRAILING NULLCOLS

(DEPTNO,DNAME ”upper(:dname)“,LOC ”upper(:loc)“,LAST_UPDATED ”my_to_date(:last_updated)",COMMENTS)

demo20.dat 10,Sales,Virginia,01-april-2001,This is the Sales

Office in Virginia|

20,Accounting,Virginia,13/04/2001,This is the Accounting

Office in Virginia|

30,Consulting,Virginia,14/04/2001 12:02:02,This is the Consulting

Office in Virginia|

40,Finance,Virginia,Array872682Array7,This is the Finance

Office in Virginia|

================================

象這樣的數(shù)據(jù) 用 nullif 子句

10-jan-200002350Flipper seemed unusually hungry today.10510-jan-20000ArrayArray45Spread over three meals.id position(1:3)nullif id=blanks // 這里可以是blanks 或者別的表達(dá)式

// 下面是另一個(gè)列子 第一行的 1 在數(shù)據(jù)庫中將成為 null

LOAD DATA INFILE *

INTO TABLE T

REPLACE

(n position(1:2)integer external nullif n=’1’,v position(3:8))

BEGINDATA 10

20lg

-----------------------------

第四篇:GridCtrl使用小結(jié)

http://www.tmdps.cn/

GridCtrl使用詳解

CGridCtrl類主要是通過grid樣式顯示數(shù)據(jù) 在單文檔中的使用方法

步驟一 初始化 在CView類的.h頭文件中包含文件:

#include “Gridctrl.h” 并且手寫加入如下的成員函數(shù):

CGridCtrl * m_pGridCtrl;步驟二 構(gòu)造與析構(gòu) 構(gòu)造函數(shù)中:

m_pGridCtrl = NULL;析構(gòu)函數(shù)中:

if(m_pGridCtrl)

delete m_pGridCtrl;步驟三 如果需要打印功能的話添加同名打印函數(shù)代碼 在CView類的OnBeginPrinting()函數(shù)中添加如下代碼: if(m_pGridCtrl)

m_pGridCtrl->OnBeginPrinting(pDC,pInfo);//簡(jiǎn)單吧,這就是類的好處其它兩個(gè)打印函數(shù)也一樣的做法.步驟四 在OnInitaUpdate()函數(shù)中或者你自己添加的要顯示Grid的消息函數(shù)中如下初始化: //創(chuàng)建非模式對(duì)話框 CDlg *dlg;dlg=new CDlg();dlg->Create(IDD_Dlg,this);

//初始化GridCtrl控件 if(m_pGridCtrl!=NULL){ deletem_pGridCtrl;m_pGridCtrl=NULL;} if(m_pGridCtrl == NULL){ // Create the Gridctrl object m_pGridCtrl = new CGridCtrl;if(!m_pGridCtrl)return 0;// Create the Gridctrl window CRectrect;GetClientRect(rect);m_pGridCtrl->Create(rect, this, 100);// fill it up with stuff m_pGridCtrl->SetEditable(false);m_pGridCtrl->SetTextBkColor(RGB(0xFF, 0xFF, 0xE0));//黃色背景 m_pGridCtrl->EnableDragAndDrop(false);try { m_pGridCtrl->SetRowCount(k);//設(shè)置行數(shù)為k行 m_pGridCtrl->SetColumnCount(4);//k列

m_pGridCtrl->SetFixedRowCount(1);//標(biāo)題行為一行

http://www.tmdps.cn/

m_pGridCtrl->SetFixedColumnCount(1);//同上 } catch(CMemoryException* e){ e->ReportError();e->Delete();return 0;} //填充列標(biāo)題 int row=0;for(int col=0;col<4;col++){ GV_ITEM Item;Item.mask = GVIF_TEXT|GVIF_FORMAT;Item.row = row;Item.col = col;if(col==0){ Item.nFormat = DT_CENTER|DT_WORDBREAK;Item.strText.Format(_T(“【類別】”),col);} else if(col==1){ Item.nFormat = DT_LEFT|DT_WORDBREAK;Item.strText.Format(_T(“第一列”),col);} else if(col==2){ Item.nFormat = DT_LEFT|DT_WORDBREAK;Item.strText.Format(_T(“第二列”),col);} m_pGridCtrl->SetItem(&Item);} // fill rows/cols with text for(row = 1;row < k;row++)for(col = 0;col < h;col++){ GV_ITEM Item;Item.mask = GVIF_TEXT|GVIF_FORMAT;Item.row = row;Item.col = col;if(col < 1){ //行標(biāo)題頭

Item.nFormat = DT_CENTER|DT_VCENTER |DT_SINGLELINE|DT_END_ELLIPSIS |DT_NOPREFIX;Item.strText.Format(_T(“%d”),row);

http://www.tmdps.cn/

} else if(col==1){ //第一列的值 Item.nFormat = DT_CENTER|DT_VCENTER |DT_SINGLELINE|DT_END_ELLIPSIS |DT_NOPREFIX;str=“aa”;Item.strText.Format(_T(“%s”),str);}else if(col==2){ //第二列第值 Item.nFormat = DT_CENTER|DT_VCENTER |DT_SINGLELINE|DT_END_ELLIPSIS |DT_NOPREFIX;CStringstr;str=“bb”;Item.strText.Format(_T(“%s”),str);} m_pGridCtrl->SetItem(&Item);} m_pGridCtrl->AutoSize();

//--------------設(shè)置行列距------------------for(int a=1;aSetRowHeight(a,21);//設(shè)置各行高 m_pGridCtrl->SetRowHeight(0,24);//設(shè)置0行高 m_pGridCtrl->SetColumnWidth(1,110);//設(shè)置2列寬 m_pGridCtrl->SetColumnWidth(2,160);//設(shè)置3列寬 m_pGridCtrl->SetColumnWidth(3,100);//設(shè)置4列寬 } 上例取自實(shí)際工程,稍有修改!部分注釋: void SetVirtualMode(TRUE)//設(shè)為虛模式 BOOL SetRowCount(intnRows)//設(shè)置總的行數(shù)。BOOL SetFixedRowCount(intnFixedRows = 1)//設(shè)置固定的行數(shù)據(jù) BOOL SetColumnCount(intnCols)//設(shè)置列數(shù) BOOL SetFixedColumnCount(intnFixedCols = 1)//設(shè)置固定的列數(shù)

步驟五: 添加WM_SIZE消息,調(diào)整控件的界面占屏幕大小

if(m_pGridCtrl->GetSafeHWnd())

{

CRectrect;

GetClientRect(rect);

m_pGridCtrl->MoveWindow(rect);

}

在對(duì)話框中的使用方法 步驟一 創(chuàng)建數(shù)據(jù)顯示表格對(duì)話框

在資源管理器中新創(chuàng)建一個(gè)對(duì)話框,假設(shè)為CDlgTestReportBox。從工具箱中加入Custom Control,就是人頭像的那個(gè),將其區(qū)域拉伸至要顯示數(shù)據(jù)表格的大小,充滿整個(gè)對(duì)話框。

在CDlgTestReportBox類的頭文件中: #include “GridCtrl.h”

http://www.tmdps.cn/

再定義成員變量: CGridCtrl* m_pGrid;添加OnShowWindow()消息處理函數(shù)如下:

voidCDlgTestReportBox::OnShowWindow(BOOL bShow, UINT nStatus){ CDialog::OnShowWindow(bShow, nStatus);// TODO: Add your message handler code here if(m_pGrid!=NULL){ deletem_pGrid;m_pGrid=NULL;} if(m_pGrid==NULL){ m_pGrid=new CGridCtrl;CRectrect;GetDlgItem(IDC_ReportAera)->GetWindowRect(rect);//得到顯示區(qū)域 ScreenToClient(&rect);m_pGrid->Create(rect,this,100);m_pGrid->SetEditable(false);m_pGrid->SetTextBkColor(RGB(0xFF, 0xFF, 0xE0));//黃色背景 try { m_pGrid->SetRowCount(10);//初始為10行

m_pGrid->SetColumnCount(11);//初始化為11列 m_pGrid->SetFixedRowCount(1);//表頭為一行 m_pGrid->SetFixedColumnCount(1);//表頭為一列 } catch(CMemoryException* e){ e->ReportError();e->Delete();// return FALSE;} for(int row = 0;row GetRowCount();row++)for(int col = 0;col GetColumnCount();col++){ //設(shè)置表格顯示屬性 GV_ITEM Item;Item.mask = GVIF_TEXT|GVIF_FORMAT;Item.row = row;Item.col = col;if(row==0&&col==0)//第(0,0)格

http://www.tmdps.cn/

{ Item.nFormat = DT_CENTER|DT_WORDBREAK;Item.szText.Format(_T(“報(bào)表顯示”),col);} else if(row < 1)//設(shè)置0行表頭顯示 { Item.nFormat = DT_CENTER|DT_WORDBREAK;Item.szText.Format(_T(“ 項(xiàng)目%d”),col);} else if(col < 1)//設(shè)置0列表頭顯示 { if(rowGetRowCount()-4){ Item.nFormat = DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS;Item.szText.Format(_T(“第%d次”),row);} } else { Item.nFormat = DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS;Item.szText.Format(_T(“"),2);} m_pGrid->SetItem(&Item);} m_pGrid->Invalidate();} //--------------設(shè)置行列距------------------for(int a=0;aGetRowCount();a++)m_pGrid->SetRowHeight(a,16);//設(shè)置各行高 m_pGrid->SetColumnWidth(0,58);//設(shè)置0列寬 for(int b=1;bGetColumnCount();b++)m_pGrid->SetColumnWidth(b,59);//設(shè)置各列寬 }

步驟二 嵌入上面的對(duì)話框 顯示數(shù)據(jù)

在你需要顯示數(shù)據(jù)的對(duì)話框上的頭文件中,假設(shè)為CDlgTest,加入 #include ”GridCtrl.h“ CDlgTestReportBox* m_pTestReportBox;將數(shù)據(jù)顯示對(duì)話框放入你的對(duì)話框相應(yīng)位置上,在CDlgTest::OnInitDialog()中:

if(!m_pTestReportBox){

m_pTestReportBox=new CDlgTestReportBox(this);} m_pTestReportBox->Create(IDD_DlgTestReportBox,this);

http://www.tmdps.cn/

//定義區(qū)域變量 CRectrectDraw;GetDlgItem(IDC_AeraReport)->GetWindowRect(rectDraw);ScreenToClient(&rectDraw);//動(dòng)態(tài)測(cè)試數(shù)據(jù)顯示區(qū)域rectDraw //將對(duì)應(yīng)的對(duì)話框放到指定區(qū)域 m_pTestReportBox->MoveWindow(rectDraw);m_pTestReportBox->ShowWindow(SW_SHOW);自定義填充數(shù)據(jù)的函數(shù):CDlgTest::FillGrid()如下: CGridCtrl* pGrid=m_pTestReportBox->m_pGrid;for(int row = pGrid->GetRowCount()-1;row >= pGrid->GetRowCount()-3;row--){ for(int col = 1;col <= pGrid->GetColumnCount();col++){ GV_ITEM Item;Item.mask = GVIF_TEXT|GVIF_FORMAT;Item.row = row;Item.col = col;if(row==pGrid->GetRowCount()-3&&col>0)//平均值 { if(col==10){ Item.nFormat = DT_CENTER|DT_WORDBREAK;Item.szText.Format(_T(” %6.2f “),avjch);} else{ Item.nFormat = DT_CENTER|DT_WORDBREAK;Item.szText.Format(_T(” %6.2f “),av[col-1]);} } pGrid->SetItem(&Item);//提交數(shù)據(jù) if(row==0||col==0){ COLORREF clr = RGB(0, 0, 0);pGrid->SetItemBkColour(row, col, clr);pGrid->SetItemFgColour(row, col, RGB(255,0,0));} }//循環(huán)結(jié)束

pGrid->Invalidate();} CGRIFCTRL原理:

DBGRID和一般的GRID的不同之處在于,一般的GRID并不適合顯示大的數(shù)據(jù)量,如果一個(gè)表中有上萬條記錄都要插入到GRID中,這將是一個(gè)很慢的過程,并且在GRID中移動(dòng)滾動(dòng)條時(shí),它的記錄的滾動(dòng)也是很慢。而DBGRID并不會(huì)真正把這些記錄的數(shù)據(jù)全部插入到控件中,當(dāng)DBGRID的滾動(dòng)條滾動(dòng)時(shí),它會(huì)根據(jù)DBGRID的顯示面積的大小和查詢得到的總記錄數(shù)計(jì)算出當(dāng)前應(yīng)該顯示哪些行,然后插入

http://www.tmdps.cn/

到表格中,這樣一來,速度肯定快,而且沒有數(shù)據(jù)量多少的限制。幸運(yùn)的是,CGridCtrl類已經(jīng)為我們提供了這種機(jī)制,它是采用虛模式實(shí)現(xiàn)的。使用這種方式,即使你向這個(gè)該控件插入一百萬條數(shù)據(jù),它并不會(huì)真的生成一百萬行,而是隨著你的滾動(dòng)條的滾動(dòng),計(jì)算出在屏幕上要顯示的行和列,然后會(huì)向你提供一個(gè)接口,通過這個(gè)接口,你可以在這兒設(shè)置你要顯示的數(shù)據(jù)。下面給出使用CGridCtrl控件的虛模式的步驟: 步驟一 初始化

在視圖的初始化函數(shù)里添加如下代碼:

void SetVirtualMode(TRUE)

設(shè)為虛模式

BOOL SetRowCount(intnRows)

設(shè)置總的行數(shù)。

BOOL SetFixedRowCount(intnFixedRows = 1)

設(shè)置固定的行數(shù)據(jù) BOOL SetColumnCount(intnCols)

設(shè)置列數(shù) BOOL SetFixedColumnCount(intnFixedCols = 1)設(shè)置固定的列數(shù) 步驟二 響應(yīng)消息 顯示數(shù)據(jù)

我們假設(shè)CGridCtrl是放在單文檔視圖中,而且它關(guān)聯(lián)的變量是m_GridCtrl,利用ClassWizard添加視圖的OnNotify響應(yīng)函數(shù)。這個(gè)響應(yīng)函數(shù)的寫法是固定的,類似下面的代碼:

BOOL CGridCtrlTestView::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult){ if(wParam ==(WPARAM)m_Grid.GetDlgCtrlID()){ *pResult = 1;GV_DISPINFO *pDispInfo =(GV_DISPINFO*)lParam;if(GVN_GETDISPINFO == pDispInfo->hdr.code){ //這是添加的函數(shù),在這個(gè)函數(shù)里設(shè)置當(dāng)前要顯示的數(shù)據(jù) SetGridItem(pDispInfo);return TRUE;} } returnCGridCtrlTestView::OnNotify(wParam, lParam, pResult);} 在上面的代碼中,SetGridItem(pDispInfo)是添加的函數(shù),在這個(gè)函數(shù)里我們?cè)O(shè)置當(dāng)前要顯示的數(shù)據(jù)。pDispInfo是一個(gè)GV_DISPINFO的結(jié)構(gòu)體對(duì)象,它包含了每個(gè)單元格的信息,如行號(hào),列號(hào),有沒有位圖,背景色,前景色等。CGRIDCTRL會(huì)把當(dāng)前要顯示那個(gè)單元格行號(hào),列號(hào)傳遞給我們,我們只要設(shè)置里面顯示的數(shù)據(jù)就可以了。如下面是一個(gè)顯示數(shù)據(jù)的例子。

voidCGridCtrlTestView::SetGridItem(GV_DISPINFO *pDispInfo){

pDispInfo->item.strText.Format(”row%d,col%d",pDispInfo->it

http://www.tmdps.cn/

em.row, pDispInfo->item.col);}

第五篇:git使用小結(jié)

git使用小結(jié)

1.git-config 配置git,一般需要配置的是user.name,user.email,有時(shí)sendemail.smtpserver也要配置,比如,我使用msmtp:

git-config –global sendemail.smtpserver /usr/local/bin/msmtp 如果你僅僅是想給這一個(gè)項(xiàng)目配置,把–global選項(xiàng)去掉。查看配置的選項(xiàng)是–list。2.git-pull git-pull沒必要帶后面那長(zhǎng)長(zhǎng)的url(-_-b 我那么用了好多次,不過我用的是!git-pull)。如果你在給Linux內(nèi)核這樣的項(xiàng)目工作,記得git-pull之前檢查是不是在master分支。3.git-format-patch 如果發(fā)送多于一個(gè)補(bǔ)丁,最好用[PATCH n/m]的形式,加上-n。加signed-off-by那行是-s。指定為幾次commit生成補(bǔ)丁,直接加數(shù)字,比如,$ git-format-patch-3 檢查補(bǔ)丁是–check,最好加上這個(gè)。4.git-send-email 如果一次提交補(bǔ)丁比較多,最好用–no-chain-reply-to,因?yàn)槿绻挥玫脑挘趖hread嵌套會(huì)太深,不利于別人閱讀。這個(gè)也可以通過選項(xiàng)sendemail.chainreplyto來控制。–signed-off-by-cc,要加上,可以省去手工處理的麻煩。–compose用來編輯[PATCH 0/m],這個(gè)一般是對(duì)整個(gè)patchset的描述。–smtp-server,如果你不想用git-config指定的話,用它也行。–cc和–to就不用說了。5.git-commit 在git-commit之前最好git-add。git-commit幾個(gè)常用的選項(xiàng)有:-s 會(huì)增加Signed-off-by行,-e編輯commit message,-a表示all,-m是指定commit信息。同樣,刪除文件是先git-rm。查看commit列表用git-rev-list,查看某個(gè)commit用git-show,查看commit的日志用git-log,-p是以補(bǔ)丁的形式查看。6.其它 git-diff也可以比較不同版本之間的差異,某個(gè)版本的某個(gè)文件的差異,如: $ git-diff v2.6.22 $ git diff v2.6.20 init/main.c $ git-diff v2.6.23 v2.6.24-rc1 init/main.c git-whatchanged也差不多: $ git-whatchanged-p init/main.c 7.錯(cuò)誤提交了commit怎么辦? a)git-revert 這個(gè)本身就會(huì)產(chǎn)生一個(gè)commit,如果用得多了會(huì)讓你的log看起來不那么干凈。;-)b)git-reset 用這個(gè)要當(dāng)心,它會(huì)把那個(gè)commit之后的commit全部刪除。一個(gè)好的辦法是:先建立一個(gè)臨時(shí)的分支,然后再git-reset,再git-rebase,最后再刪除臨時(shí)的分支。詳細(xì)可以看這里。

下載Wireshark的簡(jiǎn)單使用小結(jié)word格式文檔
下載Wireshark的簡(jiǎn)單使用小結(jié).doc
將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
點(diǎn)此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    ICC使用小結(jié)

    ICC使用小結(jié)(1) ICC的輸入文件 MilkyWay(physical library),TLUPlus文件(interconnect文件),lib文件(logical library),netlist,constraints(sdc),floorplan文件(.fp或.def) 由于ICC會(huì)使用Mil......

    Heritrix使用小結(jié)

    Heritrix使用小結(jié) 1. Heritrix 簡(jiǎn)介 Heritrix是一個(gè)專門為互聯(lián)網(wǎng)上的網(wǎng)頁進(jìn)行存檔而開發(fā)的網(wǎng)頁檢索器。它使用Java編寫并且完全開源。它主要的用戶界面可以通過一個(gè)web流量......

    Latex使用小結(jié)

    LATEX使用小結(jié)2010-10-03 09:04:49| 分類: 默認(rèn)分類|字號(hào) 訂閱 原文地址:LATEX使用小結(jié)作者:丁三家的小包子 虛擬打印機(jī)轉(zhuǎn)換eps格式 1. 建立一個(gè)虛擬打印機(jī):控制面板->printer......

    NB-IOT使用小結(jié)

    一、NB-IOT簡(jiǎn)介 萬物互聯(lián)的時(shí)代正以極其迅速的腳步走進(jìn)我們的生活,據(jù)估計(jì)2020年大約有500億臺(tái)設(shè)備連接到互聯(lián)網(wǎng)。而實(shí)現(xiàn)萬物互聯(lián)的基礎(chǔ)之一在于安全、可靠的數(shù)據(jù)傳輸。隨著5G......

    LoadRunner檢查點(diǎn)使用小結(jié)

    LoadRunner檢查點(diǎn)使用小結(jié) LR中檢查點(diǎn)有兩種:圖片和文字。這兩種檢查點(diǎn)可用以下三個(gè)函數(shù)實(shí)現(xiàn):web_find()、web_reg_find()和web_image_check() 下面分別介紹三種函數(shù)的用法 1......

    LoadRunner檢查點(diǎn)使用小結(jié)

    LR中檢查點(diǎn)有兩種:圖片和文字。 常用檢查點(diǎn)函數(shù)如下: 1)web_find()函數(shù)用于從 HTML 頁中搜索指定的文本字符串; 2)web_reg_find()函數(shù)注冊(cè)一個(gè)請(qǐng)求,以在下一個(gè)操作函數(shù)(如 web_url)......

    xcap使用小結(jié)1.3

    Xcap使用小結(jié) _gyb山窮水復(fù)Xcap是一款比較好用的抓包和發(fā)包工具。只需將文件解壓后就可以使用(先安裝Wincap,只要裝了wireshark都會(huì)有這個(gè)軟件)。 一、第一次打開xcap時(shí),會(huì)顯示......

    GIS使用技術(shù)小結(jié)

    GIS實(shí)用技巧小結(jié)01 1、用圖框或范圍顯示自己想實(shí)現(xiàn)的內(nèi)容 Data Frame Properties —— Data Frame 下設(shè)置Clip Option屬性。(在Exclude Layer中選擇需顯示的內(nèi)容,,選中選擇)。 2......

主站蜘蛛池模板: 国产精品久久久久久久久久久久| 在线观看无码不卡av中文| 欧美色欧美亚洲日韩在线播放| 热99re6久精品国产首页| 亚洲精品无码久久久久av麻豆| 午夜免费视频| 噜噜吧噜吧噜吧噜噜网a| 国产精品99爱免费视频| 免费人成无码大片在线观看| 久草原精品资源视频| 护士奶头又大又软又好摸| 久久av无码精品人妻出轨| 国产aⅴ无码专区亚洲av| 亚洲成在线aⅴ免费视频| 国产精品99久久久久久宅男小说| 四虎永久在线精品无码视频| 无码人妻aⅴ一区二区三区| 在线精品自偷自拍无码| 凹凸精品熟女在线观看| 性xxxxx大片免费视频| 亚洲国产精品一区二区第一页| av狠狠色超碰丁香婷婷综合久久| av国産精品毛片一区二区三区| 国产成人无码aa精品一区| 亚洲欧美日韩国产精品一区| 67194熟妇人妻欧美日韩| 18禁在线永久免费观看| 中文字幕+乱码+中文字幕无忧| 国产丝袜美女一区二区三区| 日本熟人妻中文字幕在线| 无码人妻久久1区2区3区| 亚洲图片综合图区20p| 米奇欧美777四色影视在线| 亚洲日韩看片成人无码| 午夜性色一区二区三区不卡视频| 男男受被攻做哭娇喘声视频| 日本中国内射bbxx| 国产精品视频白浆免费视频| 性猛交ⅹxxx富婆视频| 特级做a爰片毛片免费看| 国产丰满老熟妇乱xxx1区|