[發(fā)明專利]基于Windows文件映射技術(shù)讀取顯示聯(lián)鎖日志的方法有效
| 申請?zhí)枺?/td> | 201810691686.1 | 申請日: | 2018-06-28 |
| 公開(公告)號: | CN108959527B | 公開(公告)日: | 2023-06-09 |
| 發(fā)明(設(shè)計(jì))人: | 余日可;馬雯;馬銳;韋啟盟;楊平;陳小猛;李新新;寧麗敏 | 申請(專利權(quán))人: | 卡斯柯信號有限公司 |
| 主分類號: | G06F16/18 | 分類號: | G06F16/18;G06F16/13;G06F9/445;G06F3/06 |
| 代理公司: | 上海科盛知識(shí)產(chǎn)權(quán)代理有限公司 31225 | 代理人: | 應(yīng)小波 |
| 地址: | 200070 上海市靜安區(qū)*** | 國省代碼: | 上海;31 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 windows 文件 映射 技術(shù) 讀取 顯示 聯(lián)鎖 日志 方法 | ||
1.一種基于Windows文件映射技術(shù)讀取顯示聯(lián)鎖日志的方法,其特征在于,該方法包括以下步驟:
步驟1、專門喚起一個(gè)單獨(dú)的線程ReadLogThread執(zhí)行讀取篩選日志的功能;
步驟2、ReadLogThread采用WaitForMultipleObjects方式等待信號量觸發(fā)函數(shù)執(zhí)行功能;
步驟3、當(dāng)有信號量觸發(fā)WaitForMultipleObjects內(nèi)信號時(shí),先調(diào)用InitOneMonthFMap初始化Windows文件映射用的指針;
步驟4、InitOneMonthFMap完成后,調(diào)用SearchbyTypeKeyWord根據(jù)搜索條件依次搜索相關(guān)的全部日志文件,并解析其中內(nèi)容,將其中符合要求的日志條目的地址信息記錄為一個(gè)單獨(dú)的索引文件recordonly.dat;
步驟5、根據(jù)索引文件recordonly.dat的大小,記錄的數(shù)據(jù)量,計(jì)算需要顯示的日志條數(shù)nRecordCount,并將顯示界面中虛擬列表顯示區(qū)域的日志條數(shù)設(shè)置為nRecordCount;
步驟6、在虛擬列表內(nèi)部顯示時(shí),調(diào)用GetRecordContent獲取應(yīng)該顯示在這一行的日志內(nèi)容;
步驟7、在GetRecordContent中,根據(jù)行號快速計(jì)算得到recordonly.dat中記錄的對應(yīng)的日志條目內(nèi)容中日志文本中的地址值,并且根據(jù)讀取的地址值直接去日志文本中讀取日志,進(jìn)而顯示在界面上。
2.根據(jù)權(quán)利要求1所述的一種基于Windows文件映射技術(shù)讀取顯示聯(lián)鎖日志的方法,其特征在于,所述的步驟3中的初始化Windows文件映射用的指針具體包括以下步驟:
步驟3.1、看文件指針組m_mapFileH_Month中的成員是否被使用過,如果使用過,則關(guān)閉文件,釋放內(nèi)存,并將對應(yīng)的文件長度數(shù)組m_FileSize_Month中對應(yīng)的成員置0;
步驟3.2、循環(huán)調(diào)用CreateFileDBMapping初始化文件組到文件指針組m_mapFileH_Month,并獲取每個(gè)文件長度,賦值到長度數(shù)組m_FileSize_Month中對應(yīng)的成員。
3.根據(jù)權(quán)利要求1所述的一種基于Windows文件映射技術(shù)讀取顯示聯(lián)鎖日志的方法,其特征在于,所述的步驟4根據(jù)搜索條件搜索日志并生成索引文件具體包括以下步驟:
步驟4.1、點(diǎn)擊“加載”或“搜索”按鈕觸發(fā)WaitForMultipleObjects等待的信號量;
步驟4.2、將“搜索”與“加載”按鈕灰化,避免加載完畢前反復(fù)觸發(fā)信號量;
步驟4.3、檢查是否存在索引文件recordonly.dat,如果存在,則銷毀;
步驟4.4、創(chuàng)建索引文件recordonly.dat,并記錄其文件指針到類成員m_fpselected_record;
步驟4.5、按文件個(gè)數(shù)循環(huán)調(diào)用SearchFromOneLogFlieRecord將需要瀏覽范圍內(nèi)的文件按次序依次瀏覽讀取,篩選所有日志,并把符合條件的日志地址記錄到m_fpselected_record中;
步驟4.6、根據(jù)索引文件大小計(jì)算得到需要顯示的條目個(gè)數(shù)nRecordCount,并設(shè)置虛擬列表的條目數(shù)目為nRecordCount;
步驟4.7、關(guān)閉文件指針m_fpselected_record并且正常化“加載”和“搜索”按鈕。
4.根據(jù)權(quán)利要求3所述的一種基于Windows文件映射技術(shù)讀取顯示聯(lián)鎖日志的方法,其特征在于,所述的步驟4.5中調(diào)用SearchFromOneLogFlieRecord具體包括以下步驟:
步驟4.5.1、判斷m_fpselected_record為空,如果為空則退出;
步驟4.5.2、調(diào)用Windows接口MapViewOfFile,將硬盤上對應(yīng)的文件按照每次m_AllocationGranularity字節(jié)大小映射到內(nèi)存指針mapH中;
步驟4.5.3、調(diào)用DealWithLogItemRecord處理MapViewOfFile讀出來的m_AllocationGranularity字節(jié)大小的數(shù)據(jù)塊;
步驟4.5.4、判斷是否到達(dá)文件結(jié)尾了,如果到達(dá),則退出程序;如果沒有則轉(zhuǎn)入步驟4.5.2,讀取文件的下一個(gè)數(shù)據(jù)塊。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于卡斯柯信號有限公司,未經(jīng)卡斯柯信號有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810691686.1/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 檢測Windows系統(tǒng)已知漏洞的方法和系統(tǒng)
- 一種對主機(jī)進(jìn)行管控的方法及系統(tǒng)
- 一種基于windows服務(wù)控制器的系統(tǒng)自動(dòng)運(yùn)行方法
- 處理windows update彈窗出現(xiàn)的方法和系統(tǒng)
- 檢測系統(tǒng)中已安裝應(yīng)用的方法和客戶端
- 一種Windows Phone手機(jī)數(shù)據(jù)的鏡像方法
- 在Windows下對Linux系統(tǒng)中無線通訊模塊調(diào)試數(shù)據(jù)抓取方法和系統(tǒng)
- 一種實(shí)現(xiàn)Windows系統(tǒng)自動(dòng)化安裝的系統(tǒng)及方法
- 一種基于Windows To Go的增強(qiáng)方法及系統(tǒng)
- 一種批量控制windows快速部署的工具及方法





