翁 磊
(江蘇省江陰中等專業學校 江蘇 江陰 214400)
基于剪貼板獲取多行記錄源的通用程序設計
翁 磊
(江蘇省江陰中等專業學校 江蘇 江陰 214400)
Windows操作系統提供的剪切板可用于暫時保存數據,通常來說,剪切板可以保存的數據類型有文本類型、數字類型、圖片類型、視頻類型等,也有特殊格式的數據類型。在日常的工作中,我們通常不會主動的去控制剪切板的內容,比如主動讀取剪切板數據或主動清空剪切板數據。但是在特殊情況下,我們如果主動利用和控制剪切板數據,在工作中經常遇到比較有規律的數據組織形式,這些數據可能由大量的網頁分頁組成,且被行和列標識出來,是典型的記錄組織形式,我們每次需要對這類數據進行處理的時候會發現工作量很大,且取出的數據也不夠規范,本文重點介紹了一種基于剪貼板自動獲取多行記錄源的通用程序設計與實現方法。
剪貼板;數據源;網頁;記錄;特殊字符
通常系統開發人員會遇到這樣的問題,客戶要求將基于B/S架構的應用程序中的相關數據完整地從原系統中取出,由于原系統無設計數據導出功能,若原系統數據庫并不掌握在用戶手中,那么,如何完整且快速的獲得原系統中的數據?我們知道基于B/S架構的應用程序對數據信息的顯示是以瀏覽器為主的,且是以多條記錄形式在一個頁面上,如果我們直接選中頁面上的內容進行復制粘貼,總會出現許多我們并不想要的數據或數據格式,利用剪貼板設計一個程序來自動獲取多行記錄數據并只取有用的信息是提高效率的一個方法。
通常處理的數據源來自網頁、文字處理等載體,這些數據有一定規律,但也有大量的無用信息,通過對瀏覽器展示的數據進行分析,發現原始數據存在以下特點:(1)無意義的數據太多且會紊亂原始數據;(2)每一個有效數據的長度不一;(3)數據間會存在明顯字符界限。由于網頁文本內包含的一些特殊字符會對對原始數據產生迷惑,如#9#0#$A#$D經常會夾雜在數據源中,這些特殊字符并不會真實顯示,因這些字符是不可打印也不可顯示的字符,卻對源數據影響很大,還有一部數據雖然無用,卻有助于們對數據進行分類、分列,因此合理使用這些特殊字符會有助于獲取有用數據。

圖1 用戶界面

圖2 程序處理流程
由于特殊字符的原因使得源數據顯得有些亂,因此我們會將這些字符進行相關的替換并展示出來,去掉其擾亂視覺的特性,可以使得我們對源數據有一些更為直觀的印象。用函數ViewString()將一些特殊字符用某些非特殊的特定字符替換,增加這類字符主要是對有用的數據進行分割,以方便我們通過程序完整的取出并顯示原始數據。
在轉換過程中特殊字符是由回車符號、TAB符號、換行符號、制表符號和其它非打印符號等組成的內容,在轉換過程中不具有任何意義,因此要對這些字符進行刪除處理。
特殊字符處理模式可以將需要刪除的特殊字符找出來并添加到特殊字符處理列表中,故設計函數Loop_Char()和Del_Char()刪除一些無意義的特殊字符。
無用字符串是由描述性文字、標題或其它說明性文字組成的,不是數據,對數據轉換來說也是無用的內容,因此需要刪除或替換。
由于原始數據中可能含有無用的字符串,要整理原始數據,就必須刪除這些無用信息。我們通過兩個函數組合來處理這些無用信息,即Loop_Findstr()和Del_Findstr()。
對于特殊情況,需要要將一些字符串替換成另一些字符,以方便我們對數據進行處理。設計Loop_Repstr()和Rep_str()處理函數來完成循環替換特殊字符串。
所謂參數就是用戶通過認真分析數據源的規律找出的一些諸如特殊字符、無用字符串、替換字符串等內容,本系統設計了兩個procedure來保存和讀取這些信息,即WriteSetUp()和ReadSetUp()。
參數文件的格式如下:
[特殊字符]
?
[無用字符串]
[替換操作]
[字段]
?
用[]括起來的是項目名稱,然后每一行為參數內容
程序界面設計如圖1所示。
我們將功能劃分為如下內容:
讀寫參數、設置字段名稱、讀取剪貼板內容并清除剪貼板、刪除特殊字符、刪除無用字符、替換指定字符串、轉換特殊字符到可視字符、打開XLS文件并格式化表頭、關閉XLS文件并提示消息、獲得第1條記錄、獲得下1條記錄、保存字段內容到電子表格中、按記錄進行循環控制、定時處理流程等內容。程序處理流程如圖2所示。
系統完成后,我們選擇了多種數據源進行了測試和運行,以測試系統的數據量約1萬條記錄為例,未使用該軟件進行復制的工作量預計20人日;使用該軟件工作量預計1人日,實際提高效率顯著。
剪貼板本身就是傳遞數據和信息的重要工具,通常都是人工操作進行單次復制、粘貼,在本系統的實現借助少量的人工操作,即由人進行數據簡單的復制操作,數據粘貼工作及處理均由程序實現,這樣可以快速的將正確的數據完整的提取出來,從而極大的提高了工作效率。
[1]盧偉濤.海量數據分析平臺中數據交換模塊的研究和實現[D].北京郵電大學,2015.(03).
[2]張擂,李清寶,賈天江,周登元.基于剪貼板監控的電子文檔多級保護[J/OL].計算機與現代化,2015,(06).
[3]天涯衰草.由剪貼板延伸出的快捷操作[J].電腦愛好者,2016,(13).
[4]路璐.在Office中實現數據共享的技術研究[J].長治學院學報,2016,33(05).
[5]章靖平,史鐵杰.巧用剪貼板打印《中文期刊數據庫》檢索結果[J].現代情報,2001,(01).
TP316 【文獻標識碼】A 【文章編號】1009-5624(2018)02-0095-03