999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

測繪小軟件集錦平臺的設計與實現

2012-06-29 07:26:38蒲朝旭余代俊朱逍賢
城市勘測 2012年4期
關鍵詞:測繪程序信息

蒲朝旭,余代俊,朱逍賢

(成都理工大學現代工程測量技術及應用研究所,四川成都 610059)

1 引言

隨著科學技術的飛速發展,計算機技術、衛星定位系統以及地理信息系統的運用使得現代測繪技術在社會、經濟建設中的應用領域不斷擴大,現代數字測繪技術已成為測繪技術的主流。目前,我國社會管理和經濟建設的信息化水平不斷提高,使得社會各領域對數字化測繪產品的需求量也隨之增加,使用的測繪軟件也越來越多,特別是針對某具體工程、項目應用或測繪功能而開發的各類獨立的和二次開發的測繪小軟件更是種類繁多、各式各樣。若想很好地管理和使用這些小軟件,沒有一個好的方法或策略,將嚴重影響程序的使用、存儲和傳輸,從而降低工作效率。

本文針對上述提及的測繪小軟件種類繁多,管理、存儲、傳輸不便的問題,提出了一可行的解決方案,開發出一個測繪小軟件集錦平臺。利用該平臺可以將眾多小軟件集成在一管理軟件中,將每一個小軟件當作該平臺的一個功能菜單,該平臺能夠實現程序菜單的自動生成,各個應用程序的自動加載,能夠將諸多的程序進行分類管理、分類存儲,同時能夠方便快捷的運行所需應用程序,對于需要嵌入其他應用程序的動態鏈接庫文件(軟件),該平臺將自動把所需初始化信息等寫入相關注冊表,同時打開所需軟件并實現DLL文件的自動加載,省去了手工加載DLL文件的步驟,減少了錯誤率。

2 集錦平臺方案設計

本集錦平臺程序主要用于將開發的眾多測繪小軟件進行一個歸類,并且對各類中的應用程序和DLL文件進行動態菜單的生成,便于存儲、傳輸、管理和使用。

2.1 動態生成菜單設計

主菜單是本程序的核心部分,用于動態生成主菜單的各項信息采用xml文件的形式進行保存,便于程序初始化時讀取相關信息以生成主程序菜單。

菜單信息xml文件存儲格式[1]介紹如下:

(1)設計一個文檔元素<Menulist></Menulist>作為文件中最外面的標簽,該標簽中能夠包含諸多的元素,以便于其他信息的存儲,所以這些信息都必須存儲到該文檔元素的起始標簽中。

(2)設計一個文檔元素 <MainMenu></Main-Menu>作為每一個主菜單項的信息存儲,同時設計一個屬性name用于存儲該菜單的名稱。每一個<Main-Menu>標簽均包含于<Menulist>標簽中。

(3)設計一個文檔元素<Menu/>用于存儲每一個子菜單項的相關信息,并且添加name屬性存儲該子菜單項的名稱,添加path屬性用于存儲該子菜單項所需運行程序的路徑。該路徑可以存放相對路徑或者絕對路徑。每一個<Menu/>標簽均位于一個<Main-Menu></MainMenu>標簽內。

(4)設計一個文檔元素<ApplicationTitle/>用于存儲主程序的名稱,該標簽也包含于<Menulist>標簽中。

具體的菜單文檔結構框圖如圖1所示。

圖1 菜單文檔存儲結構框圖

2.2 程序裝卸設計

基于2.1節中提到的文檔信息的存儲結構,需要設計對諸多小程序軟件進行裝載添加、卸載刪除的功能。

程序裝載功能包括三部分:一是選擇待添加的下拉菜單(小軟件)所屬的主菜單。如果已有列表中不包含所欲添加的主菜單名,則可以自己輸入編輯新的主菜單名,此處也實現了主菜單的新增功能。二是選擇下拉菜單名。下拉菜單名默認情況下程序會自動根據所選擇的小軟件文件名生成一個下拉菜單名稱,若需要修改,則直接鍵入下拉菜單名即可。三是選擇裝載程序路徑。該路徑下可以選擇待裝載的可執行的應用程序,也可以選擇動態鏈接庫文件,或者選擇系統中已經存在的快捷方式均可。

程序卸載功能包括選擇欲卸載小軟件所屬的主菜單和選擇下拉菜單(小軟件)。如果想刪除整個主菜單項,則在選擇下拉菜單時選擇DelMainMenu項即可。

2.3 EXE應用程序加載方法設計

應用程序的加載需要兩個步驟,一是點擊某個菜單項,二是能夠根據所點擊的菜單項運行相應的程序。

因各個菜單均是動態生成,每一個菜單和其運行的程序之間的對應關系,此處定義一個結構體以方便存儲,該結構體設計如下:

通過該結構體則可將所需信息進行對應存儲。同時,此處也可以設計為HashTable或者Dictionary進行存儲,同樣能夠達到相同的效果。

2.4 DLL動態鏈接庫文件掛載設計

此處設計的動態鏈接庫文件的掛載主要是指利用.NET開發的基于各個版本的AutoCAD的DLL文件[2~4]。

DLL的命名規則遵循“CAD版本號_程序集名稱”,如可以命名為“AutoCAD2006_testdll.dll”。程序首先讀取注冊表中AutoCAD的安裝信息,如果安裝了對應的CAD,則能夠自動打開該版本的CAD,并且將該程序集進行加載。

加載.NET開發的DLL主要有兩種方式:一是在注冊表中添加信息,將DLL文件的路徑等信息寫入注冊表,以實現在程序啟動時進行自動加載;二是在acad.lsp文件中利用lsp語句將加載信息寫入,待程序啟動初始化時進行加載。此處采用第二種方式進行DLL文件的加載。

2.5 其他說明

每一個程序均有其作者,為能夠找到其作者,在應用程序命名時要求將作者信息加到程序名中,并以下劃線進行分割,作者名統一以名稱縮寫形式加載應用程序名后。

角值度分秒的輸入形式多樣,為能夠適應各種不同形式的度分秒輸入,使用正則表達式進行輸入字符串的檢查,同時使用拆分技術對所輸入的字符串進行有效拆分,最終獲得有效的角值數據。

3 平臺具體實現

本平臺采用C#2008結合Linq查詢、正則表達式等新技術實現程序的開發。

3.1 動態菜單生成實現

軟件菜單的生成主要是利用Linq to Xml方法[5]對菜單信息文件(Xml文件)進行操作,包括打開文件、讀取內容、寫入內容、刪除內容,利用Windows Forms的MenuStrip和ToolStripMenuItem控件進行菜單的生成。

Xml文件的加載利用XDocument.Load()方法實現,讀取使用XElement的Element()方法來獲取每一個元素的值,利用XElement的Add()方法來向Xml文件中添加信息,應用Linq方法先查詢出需要刪除的節點,使用Remove()方法進行刪除即可。在進行上述各個添加或者刪除操作后,均需要對文件進行保存。

利用上述方法進行動態生成的效果圖,如圖2所示。

圖2 動態菜單生成效果圖

3.2 程序裝卸

程序裝卸主要是利用2.1節中提到的Linq to xml方法進行菜單列表文件的編輯和修改,從而生成新的菜單。每次修改完成后,主菜單的菜單項均會重新生成,以保證程序菜單的實時性。

程序裝卸窗體界面如圖3所示。通過該窗體,可以實現程序的裝載和卸載。

圖3 程序裝卸界面

3.3 EXE應用程序加載實現

EXE應用程序的加載非常簡單,首先檢查路徑是否合法,若合法則使用Process.Start()方法直接啟動該應用程序即可。

3.4 DLL動態鏈接庫文件掛載實現

DLL文件的掛載需要操作注冊表和AutoCAD軟件[6]。首先,使用 RegistryKey讀取注冊表中的鍵值,比如讀取AutoCAD 2006的信息則語句為

然后使用GetValue("AcadLocation")得到CAD的安裝目錄,若不存在該CAD版本則在讀取信息時則會拋出“異常”。

利用獲取的CAD路徑則可啟動CAD,同時動態生成一個Acad.lsp文件,該文件保存需要加載的DLL文件的相關信息,如加載test.dll則該文件內容為(command"netload""test")則可在程序啟動時自行加載該DLL文件。

3.5 智能識別度分秒

測繪小軟件中角值(度分秒)的使用非常頻繁,如何快速高效的獲取用戶輸入的度分秒信息并且能夠在用戶輸入錯誤的度分秒信息時給出提示,是軟件友好性設計方面的一個重點。

在該系列軟件中,對于度分秒的處理均是采用正則表達式[7]進行數據的合法性檢查,使用拆分方法對獲取的度分秒信息進行拆分。

本例綜合考慮用戶的輸入方法,同樣的度分秒數據可以有如下一些輸入方式(以 120°14'23.334″為例),如表1所示。

角值表示形式 表1

同時還要可能分全角和半角的標點符號以及中文符號和英文符號混合使用的情況。要考慮上述多種形式并且能夠判斷合法性,具體的正則表達式的匹配字符串如下:

此處對匹配字符串進行簡單介紹如下:是轉義字符,u表示的是unicode字符編碼格式,其中的各個unicode字符均是表示的中文字符匹配,比如中文的度分秒等。

通過上述的字符匹配檢測輸入的字符是否符合要求后,還需要采用拆分方式對輸入的字符串進行度分秒的拆分。

具體用于拆分字符串的代碼如下:

通過上述兩種方法和手段則可以得到正確的度分秒的值,以便于后續使用。

目前,集錦平臺已集成了包括EXE應用程序軟件和DLL動態鏈接庫文件的五大類小軟件20余個[8~11]。

4 結論

通過對測繪小軟件集錦平臺的設計與實現,給測繪小軟件的開發設計以及管理提出了一種新的方法,該平臺具有較好的普適性,能夠將不同語言開發的程序和DLL文件進行自動的加載,能夠對測繪軟件的整理和使用起到一定的便利作用。

[1]David Hunter,Jeff Rafter,Joe Fawcett(著).吳文國(譯).XML入門經典(第4版)[M].北京;清華大學出版社,2009.

[2]曾洪飛,張帆,盧擇臨.AutoCAD VBA& VB.NET開發基礎與實例教程[M].北京:中國電力出版社,2009.

[3]ObjectARX Reference for.NET.

[4]AutoCAD幫助文件.

[5]王的強,張曉娜,周靜.LINQ入門及應用[M].北京:清華大學出版社,2009.

[6]James Foxall(著).張劼(譯).Visual C#2008入門經典[M].北京:人民郵電出版社,2009.

[7]Jan Goyvaerts,Steven Levitban(著),郭耀(譯).正則表達式經典實例[M].北京:人民郵電出版社,2010.

[8]李岳.坐標轉換系統的設計與實現[J].北京:中國地質大學,2010.

[9]蒲朝旭,余代俊.基于VB2008的電子水準測量數據處理程序的設計與實現[J].測繪,2011(4),171~174.

[10]白鐵勇,余代俊,付崇江.基于TGO軟件的GPS網同步環及異步環提取[J].測繪科學,2010(3),102~113.

[11]賴鴻斌,馬德英.數字水準儀數據傳輸轉換和管理信息系統的建立[J].測繪科學,2009(5),186~187.

猜你喜歡
測繪程序信息
浙江省第一測繪院
工程測繪中GNSS測繪技術的應用
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么樣
04 無人機測繪應用創新受青睞
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
無人機在地形測繪中的應用
電子制作(2017年9期)2017-04-17 03:01:00
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
主站蜘蛛池模板: 久久久噜噜噜| 88av在线播放| 色综合激情网| 精品一区二区久久久久网站| 欧美日本视频在线观看| 亚洲动漫h| 在线免费看黄的网站| 亚洲a级毛片| 国产精品国产三级国产专业不 | 亚州AV秘 一区二区三区| 国产亚洲精品自在线| 人妻丰满熟妇啪啪| 激情综合图区| 亚洲欧美日韩久久精品| 亚洲色图另类| 超清无码熟妇人妻AV在线绿巨人| 国产欧美另类| 亚洲综合精品香蕉久久网| 九色国产在线| 中文字幕首页系列人妻| 国产老女人精品免费视频| 中文字幕2区| 成人精品区| 91精品啪在线观看国产91九色| 亚洲欧美日韩成人在线| 欧美专区在线观看| 亚洲日韩国产精品综合在线观看| 黄色免费在线网址| 亚洲第一成人在线| 日韩毛片免费视频| 丁香五月激情图片| 91年精品国产福利线观看久久 | 制服丝袜在线视频香蕉| 色婷婷在线播放| 久久黄色影院| 久草网视频在线| 日韩欧美中文亚洲高清在线| 国产亚洲男人的天堂在线观看| 亚洲成人播放| 视频二区国产精品职场同事| 高潮毛片无遮挡高清视频播放| 免费国产好深啊好涨好硬视频| 国产成人一级| 在线观看亚洲天堂| 在线看AV天堂| 91成人在线观看| 精品视频在线观看你懂的一区| 久久久久九九精品影院| 欧美色图久久| 日韩精品成人网页视频在线| 亚洲国产天堂在线观看| 精品一区国产精品| 午夜高清国产拍精品| 中文字幕第1页在线播| 久久久久无码国产精品不卡| 无码中文AⅤ在线观看| 中文字幕伦视频| 精品国产91爱| 青青青视频91在线 | 欧美色亚洲| 亚洲日本中文字幕乱码中文| 国产第一页免费浮力影院| 色婷婷综合在线| 国产精品久久久久久久久kt| 六月婷婷精品视频在线观看 | 91久久夜色精品| 亚洲天堂视频在线免费观看| 日本免费新一区视频| 天堂成人av| 中日无码在线观看| 五月六月伊人狠狠丁香网| 亚洲欧美日韩天堂| 久久性视频| 有专无码视频| 五月天综合网亚洲综合天堂网| 国产亚洲精品自在线| 日韩av手机在线| 久久公开视频| 有专无码视频| AV网站中文| 亚洲男人的天堂网| 18禁黄无遮挡网站|