久久亚洲精品国产精品_羞羞漫画在线版免费阅读网页漫画_国产精品久久久久久久久久久久_午夜dj免费观看在线视频_希崎杰西卡番号

ultraedit 32破解版

前沿拓展:

ultraedit 32破解版

何必用那呢~~用個(gè)免費(fèi)VIM不是更好~~


大家好,我們今日講解"VBA信息獲取與處理"教程中第十二個(gè)專題"VBA中剪貼板(Clipboard)的應(yīng)用"的第四節(jié)"剪貼板中的數(shù)據(jù)格式(Clipboard Formats)",這個(gè)專題是非常有用的知識(shí)點(diǎn),希望大家能掌握利用。

ultraedit 32破解版

第四節(jié) 剪貼板中的數(shù)據(jù)格式(Clipboard Formats)

在前面的講解中我們已經(jīng)了解到使用MSForms.DataObject可以很輕松地提取剪貼板中的文本數(shù)據(jù),但DataObject目前只支持文本**作,所以它的GetFromClipboard方法只能用于讀取剪貼板內(nèi)文本。而通過(guò)剪貼板API函數(shù),我們可以使用剪貼板內(nèi)全部格式的數(shù)據(jù),同樣是文本數(shù)據(jù)我們也可以利用GetClipboardData(CF_TEXT)來(lái)獲取。那么在剪貼板中處理以文本格式存在的內(nèi)存對(duì)象外,還有哪些格式呢?我們這講就來(lái)討論一下。

1 數(shù)據(jù)格式的介紹

所謂數(shù)據(jù)格式(data format)是描述數(shù)據(jù)保存在文件或記錄中的規(guī)則。可以是字符形式的文本格式,或二進(jìn)制數(shù)據(jù)格式的壓縮格式。字符形式的文本格式占用的存貯空間多但透明度高,二進(jìn)制數(shù)形式的壓縮格式占用的存貯空間少但缺少透明度。

建立數(shù)據(jù)格式是為了便于更好地儲(chǔ)存、分析、交換和顯示數(shù)據(jù)給用戶。我們知道,在計(jì)算機(jī)中,所有數(shù)據(jù)都是以0或1構(gòu)成的位構(gòu)成的,在大多數(shù)的編程語(yǔ)言中,數(shù)據(jù)的最小單位是字節(jié),它由8個(gè)位構(gòu)成,可以表示0-255之間256個(gè)數(shù)值,要用這256個(gè)數(shù)值表示各種各樣的信息,比如文字、圖形、音頻、視頻等,就需要給代表每種信息的一串字節(jié)規(guī)定一個(gè)固定的結(jié)構(gòu)和擺放規(guī)則,否則如果只是把所有數(shù)據(jù)羅列到一起,就會(huì)帶來(lái)解析上的困難。如果這種結(jié)構(gòu)和規(guī)則被普遍接受,它就會(huì)成為一種通用的數(shù)據(jù)格式。

通常每種數(shù)據(jù)格式都會(huì)包含一個(gè)簡(jiǎn)單的易于識(shí)別的字節(jié)特征,比如我們的磁盤(pán)中的各種文件,就有文本格式、位圖格式、超文本格式等成百上千種格式,假如我們用UltraEdit之類十六進(jìn)制編輯器打開(kāi)一個(gè)沒(méi)有后綴名的文件,如果發(fā)現(xiàn)它的前四個(gè)字節(jié)是47 49 46 38("GIF8"),它很有可能是一個(gè)gif格式圖片,假如我們對(duì)gif格式的規(guī)定有全面的了解,那不但可以100%判斷它是或不是一個(gè)有效的gif格式圖片,還能把它所代表的圖形顯示到屏幕上。對(duì)于用戶來(lái)說(shuō),對(duì)不同格式的文件可以使用相應(yīng)的程序打開(kāi),對(duì)于程序來(lái)說(shuō),對(duì)不同格式的數(shù)據(jù)可以使用相應(yīng)的解析方式加以解讀,從而挖掘其中攜帶的信息。

2 剪貼板中的數(shù)據(jù)格式

剪貼板里可以同時(shí)存放多種格式的數(shù)據(jù),我們將他們統(tǒng)稱為剪貼板格式(Clipboard Formats)。為了區(qū)別各種格式,windows給每種剪貼板格式都分配了一個(gè)特有的長(zhǎng)整型數(shù)字,我們稱作剪貼板格式編號(hào)(Clipboard Format Number),同時(shí),為了便于人們記憶和使用,除了少數(shù)幾個(gè)通用的標(biāo)準(zhǔn)格式,大部分?jǐn)?shù)據(jù)格式還對(duì)應(yīng)一個(gè)英文名稱,叫作剪貼板格式名稱(Clipboard Format Name),這個(gè)名稱是大小寫(xiě)敏感的,即CSV和Csv在剪貼板中代表兩種不同的格式,它們的剪貼板格式編號(hào)也不會(huì)相同。剪貼板格式的編號(hào)和名稱是由Windows系統(tǒng)分配和管理的,對(duì)于常用的格式,windows對(duì)它們的編號(hào)進(jìn)行了預(yù)定義,這些格式被稱為標(biāo)準(zhǔn)格式或預(yù)定義格式(Standard/Predefined Clipboard Formats)。那么在剪切板中都有哪些數(shù)據(jù)格式呢?我這里列出一下常用的格式:

1) Const CF_TEXT = 1 文本格式,以chr(0)作為字符串結(jié)束標(biāo)志

2) Const CF_BITMAP = 2 Bitmap對(duì)象

3) Const CF_METAFILEPICT = 3 Metafile Picture格式

4) Const CF_SYLK = 4 微軟符號(hào)連接格式(Microsoft Symbolic Link Format)

5)Const CF_DIF = 5 Software Arts' Data Interchange Format.

6) Const CF_TIFF = 6 標(biāo)簽圖像文件格式(TIFF)

7) Const CF_OEMTEXT = 7 包含OEM字符集的文本格式

8) Const CF_DIB =8 設(shè)備無(wú)關(guān)位圖(DIB)格式,前面是一個(gè)BITMAPINFO結(jié)構(gòu),后面是圖像像素位

9) Const CF_PALETTE = 9 調(diào)色板對(duì)象格式,當(dāng)程序向剪貼板中放入一幅使用調(diào)色板的位圖時(shí),它需要同時(shí)將調(diào)色板也放入剪貼板

10) Const CF_PENDATA =10 手寫(xiě)筆數(shù)據(jù)

11) Const CF_RIFF =11 比標(biāo)準(zhǔn)CF_WAVE所能代表的音頻格式更加復(fù)雜的音頻格式 12) Const CF_WAVE = 12 標(biāo)準(zhǔn)音頻格式(如11kHz或22kHz脈沖編碼調(diào)制)的數(shù)據(jù) 13) Const CF_UNICODETEXT =13 Unicode文本格式

14) Const CF_ENHMETAFILE =14 增強(qiáng)圖元文件格式

15) Const CF_HDROP = 15 文件名列表

16) Const CF_LOCALE = 16 與剪貼板內(nèi)文本相關(guān)的區(qū)域選項(xiàng)的ID

17)Const CF_MAX =17

如果應(yīng)用程序需要向剪貼板中放入的數(shù)據(jù)不能以上述格式表示或者不能轉(zhuǎn)化為上述格式時(shí),它可以使用注冊(cè)剪貼板格式(Registered Clipboard Formats),也就是說(shuō),它可以自行為這個(gè)數(shù)據(jù)格式定義一個(gè)名稱,第二使用RegisterClipboardFormat函數(shù)注冊(cè)這個(gè)名稱,如果注冊(cè)成功,它將得到這個(gè)新建的剪貼板格式對(duì)應(yīng)的編號(hào)。

3 判斷剪貼板中的數(shù)據(jù)格式的函數(shù)IsClipboardFormatAvailable

如果一個(gè)應(yīng)用程序只對(duì)剪貼板內(nèi)格式名稱為T(mén)EXT的數(shù)據(jù)感興趣,并且它已經(jīng)獲得了TEXT剪貼板格式的編號(hào),1,那判斷它自己是否可以使用粘貼命令的最簡(jiǎn)單的辦法是使用IsClipboardFormatAvailable(1),第二根據(jù)返回值確定剪貼板內(nèi)是否包含TEXT格式數(shù)據(jù),這個(gè)函數(shù)定義如下:

Declare Function IsClipboardFormatAvailable Lib "user32" (ByValwFormat As Long) As Long

作用: 判斷剪貼板內(nèi)是否存在指定格式的數(shù)據(jù)

參數(shù): wFormat標(biāo)準(zhǔn)剪貼板格式或注冊(cè)剪貼板格式的編號(hào)

返回值:如果剪貼板中存在相應(yīng)格式的數(shù)據(jù),則返回一個(gè)非0值否則返回0

4 剪貼板中的所有數(shù)據(jù)格式的提取

使用EnumClipBoardFormats函數(shù)獲取剪貼板內(nèi)所有可用格式的編號(hào),第二使用GetClipboardFormatName函數(shù)取得該編號(hào)對(duì)應(yīng)的格式名稱。

  語(yǔ)法及聲明:Declare Function EnumClipboardFormats Lib "user32" (ByValwFormat As Long) As Long

意義:這個(gè)函數(shù)可以列舉出當(dāng)前剪貼板內(nèi)所有可用的數(shù)據(jù)格式

參數(shù):wFormat代表剪貼板內(nèi)已知可用的標(biāo)準(zhǔn)剪貼板格式或注冊(cè)剪貼板格式的編號(hào)

在列舉過(guò)程最開(kāi)始,向函數(shù)傳入0值,函數(shù)將返回第一個(gè)可用的剪貼板格式編號(hào),將返回值傳給下一次函數(shù)調(diào)用,可以得到下一個(gè)可用的剪貼板格式編號(hào)。

如果調(diào)用成功,則返回wFormat之后第一個(gè)可用的剪貼板格式編號(hào),如果調(diào)用失敗,則返回0。

這個(gè)函數(shù)需要事先使用OpenClipboard成功打開(kāi)剪貼板。這個(gè)函數(shù)返回的剪貼板格式的順序與放入剪貼板數(shù)據(jù)時(shí)的順序一樣。

好了,這講就講到這里,關(guān)于剪貼板在VBA中的**作,我們至少關(guān)注文本的內(nèi)容就好,其他的內(nèi)容大家可以參考必要的資料。

拓展知識(shí):

原創(chuàng)文章,作者:九賢生活小編,如若轉(zhuǎn)載,請(qǐng)注明出處:http://www.cddhlm.com/69724.html