[發明專利]一種存儲數據的方法及裝置有效
| 申請號: | 201010283713.5 | 申請日: | 2010-09-14 |
| 公開(公告)號: | CN102402545A | 公開(公告)日: | 2012-04-04 |
| 發明(設計)人: | 彭勇 | 申請(專利權)人: | 騰訊科技(深圳)有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京德琦知識產權代理有限公司 11018 | 代理人: | 郭曼;王琦 |
| 地址: | 518044 廣東省深圳*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 存儲 數據 方法 裝置 | ||
技術領域
本發明涉及計算機技術領域,具體涉及一種存儲數據的方法及裝置。
背景技術
隨著計算機技術和網絡技術的發展,出現了各種各樣的基于計算機的通訊系統,比如即時通訊IM系統,微博通訊系統等。在這類通訊系統中,需要對系統的數據進行存儲以及使用,以實現系統的各種功能。其中數據的存儲和使用可以通過各種程序語言來實現。在程序語言中,一般需要將數據按照一定的類型進行存儲,并且編譯器在編譯階段(尤其是C++這種強類型語言中)會對數據的類型安全進行嚴格的檢查,不同的數據類型,是不能夠互相轉換,賦值的。在此情況下,當存儲一些稍微復雜一點的數據時,往往需要使用stl+一些自定義數據結構來存儲。而對于不同場景下的數據,往往又需要定義不同的數據結構。因此,采用這種方法存儲的數據使用起來比較麻煩。
基于上述原因,出現一些改進的存儲方法,以實現不同數據類型的靈活使用,比如轉換、讀取或傳遞等。例如,在腳本語言中,在存儲數據時,使用VARIANT結構來表示數據類型。然而,VARIANT結構中,一次只能有一種類型是有效的,也就是每次只能處理一個數據,沒辦法既存儲數字,又存儲字符串,不能批量處理數據。
發明內容
有鑒于此,本發明實施例提供了一種存儲數據的方法及裝置,該方法及裝置可以處理批量數據。
根據本發明實施例,一種存儲數據的方法包括:
建立至少包括作為根節點的第一節點的自定義數據結構,其中,每個節點包括第一模塊,用于存儲數據的類型標識和值,以及第二模塊用于存儲節點的子節點的標識和數據的映射列表;
每接收一個數據判斷數據將要存儲的位置以及接收的數據的類型;
如果數據存儲于第一節點,將數據的類型以及數據的值存儲在第一節點的第一模塊中;
如果數據存儲于自定義數據結構的第二節點,將數據的類型以及數據的值存儲在第二節點的第一模塊中。
根據本發明另一實施例,一種存儲數據的裝置包括:
數據接口,用于接收數據;
通用數據類型組件,用于建立并保存至少包括作為根節點的第一節點的自定義數據結構,其中,每個節點包括第一模塊,用于存儲數據的類型標識和值,以及第二模塊用于存儲節點的子節點的標識和子節點之間的映射列表;每當數據接口接收一個數據,判斷數據將要存儲的位置以及數據的類型;如果數據存儲于第一節點,則將數據的類型以及數據的值存儲在第一節點的第一模塊中;如果數據存儲于自定義數據結構的第二節點中,則將數據的類型以及數據的值存儲在第二節點的第一模塊中。
根據本發明又一實施例,一種通用數據類型組件包括:節點建立模塊,判斷模塊和存儲模塊;
節點建立模塊,用于建立并保存至少包括作為根節點的第一節點的自定義數據結構,其中,每個節點包括第一模塊,用于存儲數據的類型標識和值,以及第二模塊用于存儲節點的子節點的標識和子節點之間的映射列表;
判斷模塊,用于每接收一個數據后,判斷數據將存儲于第一節點或自定義數據結構的第二節點,判斷數據的類型,并將判斷結果通知給存儲模塊;
存儲模塊,用于在判斷模塊判斷數據將存儲于第一節點時,將數據的類型以及數據的值存儲在第一節點的第一模塊中;在判斷模塊判斷數據將存儲于自定義數據結構的第二節點時,將數據的類型以及數據的值存儲在第二節點的第一模塊中。
與現有技術相比,本發明實施例的自定義數據結構定義了一種通用數據類型;當將數據存儲為該通用數據類型時,該通用數據類型可以判斷待存儲數據的基本類型,并將待存儲數據的基本類型和值進行存儲。而且,由于在一個自定義數據結構定義的通用數據類型中,每個節點都可以設有其子節點的<標識,子節點>的映射列表,因此,可以將大量的數據存儲于該通用數據類型中。這種情況下,只要將大量的數據存儲成一個通用數據類型,則使用該通用數據類型定義的一個變量就可以存儲大量的數據。并且,由于這種通用數據類型中各節點間存儲的數據類型可以不同,因此通過通用數據類型存儲的具有不同類型的數據,則使用該通用數據類型定義的一個變量就可以使用大量的具有不同類型的數據。
并且,由于通用數據類型的變量中各個節點都有各自的類型標識,因此各個節點可以存儲不同類型的數據,而不需要存儲兼容類型的數據,即可以存儲LONG和int數據,也可以存儲BSTR字符串數據。
附圖說明
圖1為根據本發明實施例的一種存儲數據的方法的流程圖;
圖2為本發明實施例中存儲數據的存儲模型;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于騰訊科技(深圳)有限公司,未經騰訊科技(深圳)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010283713.5/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





