主頁 > 軟體工程 > VB利用純真資料庫查詢IP歸屬地位置不正常

VB利用純真資料庫查詢IP歸屬地位置不正常

2020-09-19 03:05:44 軟體工程

求大神除錯修改
Public Function GetAddress(sip)
     If Len(sip) < 5 Then
         GetAddress = "輸入IP錯誤!"
         Exit Function
     End If
     On Error Resume Next
     Dim Wry, IPType
     Set Wry = New ShowIp
     If Not Wry.IsIp(sip) Then
         GetAddress = " 輸入IP錯誤!"
         Exit Function
     End If
     IPType = Wry.QQWry(sip)
     GetAddress = Wry.Country & " " & Wry.LocalStr
End Function
 Private Sub Command1_Click() '查詢地址
Text1.Text = GetAddress(Text2)
End Sub
'類模塊,命名為ShowIp
' ============================================
     ' 變數聲名
     ' ============================================
     Public Country, LocalStr, Buf, OffSet
     Private StartIP, EndIP, CountryFlag
     Public QQWryFile
     Public FirstStartIP, LastStartIP, RecordCount
     Private Stream, EndIPOff
     ' ============================================
     ' 類模塊初始化
     ' ============================================
     Private Sub Class_Initialize()
         On Error Resume Next
         Country = ""
         LocalStr = ""
         StartIP = 0
         EndIP = 0
         CountryFlag = 0
         FirstStartIP = 0
         LastStartIP = 0
         EndIPOff = 0
        QQWryFile = "QQWry.Dat" 'QQ IP庫路徑
     End Sub
     ' ============================================
     ' IP地址轉換成整數
     ' ============================================
     Function Iptoint(IP) As Single
         Dim IPArray, i, Iptoint1 As Single, Iptoint2 As Single, Iptoint3 As Single, Iptoint4 As Single
         IPArray = Split(IP, ".", -1)
         For i = 0 To 3
             If Not IsNumeric(IPArray(i)) Then IPArray(i) = 0
             If CInt(IPArray(i)) < 0 Then IPArray(i) = Abs(CInt(IPArray(i)))
             If CInt(IPArray(i)) > 255 Then IPArray(i) = 255
         Next
         Iptoint1 = CInt(IPArray(3))
         Iptoint2 = CInt(IPArray(2)): Iptoint2 = Iptoint2 * 256
         Iptoint3 = CInt(IPArray(1)): Iptoint3 = Iptoint3 * 256: Iptoint3 = Iptoint3 * 256
         Iptoint4 = CInt(IPArray(0)): Iptoint4 = Iptoint4 * 256: Iptoint4 = Iptoint4 * 256: Iptoint4 = Iptoint4 * 256
         Iptoint = Iptoint1 + Iptoint2 + Iptoint3 + Iptoint4
         '這個演算法在VB中會有溢位?不知道什么原因 Iptoint = ((CInt(IPArray(0)) * 256 * 256 + CInt(IPArray(1)) * 256 + CInt(IPArray(2))) * Iptoint + CInt(IPArray(3))
     End Function
     ' ============================================
     ' 整數逆轉IP地址
     ' ============================================
     Function IntToIP(IntValue)
         p4 = IntValue - Fix(IntValue / 256) * 256
         IntValue = (IntValue - p4) / 256
         p3 = IntValue - Fix(IntValue / 256) * 256
         IntValue = (IntValue - p3) / 256
         p2 = IntValue - Fix(IntValue / 256) * 256
         IntValue = (IntValue - p2) / 256
         p1 = IntValue
         IntToIP = CStr(p1) & "." & CStr(p2) & "." & CStr(p3) & "." & CStr(p4)
     End Function
     ' ============================================

      ' 獲取開始IP位置
     ' ============================================
     Private Function GetStartIP(RecNo)
         OffSet = FirstStartIP + RecNo * 7
         Stream.Position = OffSet
         Buf = Stream.Read(7)
                 
         FirstStartIP1 = AscB(MidB(Buf, 1, 1))
         FirstStartIP2 = AscB(MidB(Buf, 2, 1)): FirstStartIP2 = FirstStartIP2 * 256
         FirstStartIP3 = AscB(MidB(Buf, 3, 1)): FirstStartIP3 = FirstStartIP3 * 256: FirstStartIP3 = FirstStartIP3 * 256
         FirstStartIP4 = AscB(MidB(Buf, 4, 1)): FirstStartIP4 = FirstStartIP4 * 256: FirstStartIP4 = FirstStartIP4 * 256: FirstStartIP4 = FirstStartIP4 * 256
         StartIP = FirstStartIP1 + FirstStartIP2 + FirstStartIP3 + FirstStartIP4
         
         LastStartIP1 = AscB(MidB(Buf, 5, 1))
         LastStartIP2 = AscB(MidB(Buf, 6, 1)): LastStartIP2 = LastStartIP2 * 256
         LastStartIP3 = AscB(MidB(Buf, 7, 1)): LastStartIP3 = LastStartIP3 * 256: LastStartIP3 = LastStartIP3 * 256
         'LastStartIP4 = AscB(MidB(Buf, 8, 1)): LastStartIP4 = LastStartIP4 * 256: LastStartIP4 = LastStartIP4 * 256: LastStartIP4 = LastStartIP4 * 256
         EndIPOff = LastStartIP1 + LastStartIP2 + LastStartIP3 '+ LastStartIP4
        
         '這個演算法在VB中會有溢位?不知道什么原因 EndIPOff = AscB(MidB(Buf, 5, 1)) + (AscB(MidB(Buf, 6, 1)) * 256) + (AscB(MidB(Buf, 7, 1)) * 256 * 256)
         '這個演算法在VB中會有溢位?不知道什么原因 StartIP = AscB(MidB(Buf, 1, 1)) + (AscB(MidB(Buf, 2, 1)) * 256) + (AscB(MidB(Buf, 3, 1)) * 256 * 256) + (AscB(MidB(Buf, 4, 1)) * 256 * 256 * 256)
         GetStartIP = StartIP
     End Function
     ' ============================================
     ' 獲取結束IP位置
     ' ============================================
     Private Function GetEndIP()
         Stream.Position = EndIPOff
         Buf = Stream.Read(5)
         
         FirstStartIP1 = AscB(MidB(Buf, 1, 1))
         FirstStartIP2 = AscB(MidB(Buf, 2, 1)): FirstStartIP2 = FirstStartIP2 * 256
         FirstStartIP3 = AscB(MidB(Buf, 3, 1)): FirstStartIP3 = FirstStartIP3 * 256: FirstStartIP3 = FirstStartIP3 * 256
         FirstStartIP4 = AscB(MidB(Buf, 4, 1)): FirstStartIP4 = FirstStartIP4 * 256: FirstStartIP4 = FirstStartIP4 * 256: FirstStartIP4 = FirstStartIP4 * 256
         EndIP = FirstStartIP1 + FirstStartIP2 + FirstStartIP3 + FirstStartIP4
         
         '這個演算法在VB中會有溢位?不知道什么原因 EndIP = AscB(MidB(Buf, 1, 1)) + (AscB(MidB(Buf, 2, 1)) * 256) + (AscB(MidB(Buf, 3, 1)) * 256 * 256) + (AscB(MidB(Buf, 4, 1)) * 256 * 256 * 256)
         CountryFlag = AscB(MidB(Buf, 5, 1))
         GetEndIP = EndIP
     End Function
     ' ============================================
     ' 獲取地域資訊,包含國家和和省市
     ' ============================================
     Private Sub GetCountry(IP)
         If (CountryFlag = 1 Or CountryFlag = 2) Then
             Country = GetFlagStr(EndIPOff + 4)
             If CountryFlag = 1 Then
                 LocalStr = GetFlagStr(Stream.Position)
                 ' 以下用來獲取資料庫版本資訊
                 If IP >= Iptoint("255.255.255.0") And IP <= Iptoint("255.255.255.255") Then



                      LocalStr = GetFlagStr(EndIPOff + 21)
                     Country = GetFlagStr(EndIPOff + 12)
                 End If
             Else
                 LocalStr = GetFlagStr(EndIPOff + 8)
             End If
         Else
             Country = GetFlagStr(EndIPOff + 4)
             LocalStr = GetFlagStr(Stream.Position)
         End If
         ' 過濾資料庫中的無用資訊
         Country = Trim(Country)
         LocalStr = Trim(LocalStr)
     End Sub

 

uj5u.com熱心網友回復:

‘接上面    
' ============================================
     ' 獲取IP地址識別符號
     ' ============================================
     Private Function GetFlagStr(OffSet)
         Dim Flag
         Flag = 0
         Do While (True)
             Stream.Position = OffSet
             Flag = AscB(Stream.Read(1))
             If (Flag = 1 Or Flag = 2) Then
                 Buf = Stream.Read(3)
                 If (Flag = 2) Then
                     CountryFlag = 2
                     EndIPOff = OffSet - 4
                 End If
                 FirstStartIP1 = AscB(MidB(Buf, 1, 1))
                 FirstStartIP2 = AscB(MidB(Buf, 2, 1)): FirstStartIP2 = FirstStartIP2 * 256
                 FirstStartIP3 = AscB(MidB(Buf, 3, 1)): FirstStartIP3 = FirstStartIP3 * 256: FirstStartIP3 = FirstStartIP3 * 256
                 OffSet = FirstStartIP1 + FirstStartIP2 + FirstStartIP3 ' + FirstStartIP4
                 
                 Else
                 Exit Do
             End If
         Loop
         
         If (OffSet < 12) Then
             GetFlagStr = ""
         Else
             Stream.Position = OffSet
             GetFlagStr = GetStr()
         End If
     End Function
     ' ============================================
     ' 獲取字串資訊
     ' ============================================
     Private Function GetStr()
         Dim c
         GetStr = ""
         Do While (True)
             c = AscB(Stream.Read(1))
             If (c = 0) Then Exit Do
             
             '如果是雙位元組,就進行高位元組在結合低位元組合成一個字符
             If c > 127 Then
                 If Stream.EOS Then Exit Do
                 GetStr = GetStr & Chr(AscW(ChrB(AscB(Stream.Read(1))) & ChrB(c)))
             Else
                 GetStr = GetStr & Chr(c)
             End If
         Loop
     End Function
     ' ============================================
     ' 核心函式,執行IP搜索
     ' ============================================
     Public Function QQWry(DotIP)
         Dim IP, nRet
         Dim RangB, RangE, RecNo
         Dim FirstStartIP1, FirstStartIP2, FirstStartIP3, FirstStartIP4
         Dim LastStartIP1, LastStartIP2, LastStartIP3, LastStartIP4
         IP = Iptoint(DotIP)
         
         Set Stream = CreateObject("ADodb.Stream")
         Stream.Mode = 3
         Stream.Type = 1
         Stream.Open
         Stream.LoadFromFile QQWryFile
         Stream.Position = 0
         Buf = Stream.Read(8)
         
         FirstStartIP1 = AscB(MidB(Buf, 1, 1))
         FirstStartIP2 = AscB(MidB(Buf, 2, 1)): FirstStartIP2 = FirstStartIP2 * 256
         FirstStartIP3 = AscB(MidB(Buf, 3, 1)): FirstStartIP3 = FirstStartIP3 * 256: FirstStartIP3 = FirstStartIP3 * 256

          FirstStartIP4 = AscB(MidB(Buf, 4, 1)): FirstStartIP4 = FirstStartIP4 * 256: FirstStartIP4 = FirstStartIP4 * 256: FirstStartIP4 = FirstStartIP4 * 256
         FirstStartIP = FirstStartIP1 + FirstStartIP2 + FirstStartIP3 + FirstStartIP4
         
         LastStartIP1 = AscB(MidB(Buf, 5, 1))
         LastStartIP2 = AscB(MidB(Buf, 6, 1)): LastStartIP2 = LastStartIP2 * 256
         LastStartIP3 = AscB(MidB(Buf, 7, 1)): LastStartIP3 = LastStartIP3 * 256: LastStartIP3 = LastStartIP3 * 256
         LastStartIP4 = AscB(MidB(Buf, 8, 1)): LastStartIP4 = LastStartIP4 * 256: LastStartIP4 = LastStartIP4 * 256: LastStartIP4 = LastStartIP4 * 256
         LastStartIP = LastStartIP1 + LastStartIP2 + LastStartIP3 + LastStartIP4
        
         '這個演算法在VB中會有溢位?不知道什么原因 LastStartIP = AscB(MidB(Buf, 5, 1)) + (AscB(MidB(Buf, 6, 1)) * 256) + (AscB(MidB(Buf, 7, 1)) * 256 * 256) + (AscB(MidB(Buf, 8, 1)) * 256 * 256 * 256)
         
         RecordCount = Int((LastStartIP - FirstStartIP) / 7)
         ' 在資料庫中找不到任何IP地址
         If (RecordCount <= 1) Then
             Country = "未知"
             QQWry = 2
             Exit Function
         End If
         
         RangB = 0
         RangE = RecordCount
         
         Do While (RangB < (RangE - 1))
             RecNo = Int((RangB + RangE) / 2)
             Call GetStartIP(RecNo)
             If (IP = StartIP) Then
                 RangB = RecNo
                 Exit Do
             End If
             If (IP > StartIP) Then
                 RangB = RecNo
             Else
                 RangE = RecNo
             End If
         Loop
         
         Call GetStartIP(RangB)
         Call GetEndIP
         If (StartIP <= IP) And (EndIP >= IP) Then
             ' 沒有找到
             nRet = 0
         Else
             ' 正常
             nRet = 3
         End If
         Call GetCountry(IP)
         QQWry = nRet
     End Function
     ' ============================================
     ' 檢查IP地址合法性
     ' ============================================
     Public Function IsIp(IP)
     varparts = Split(IP, ".")
     Debug.Print UBound(varparts)
     If UBound(varparts) <> 3 Then
     IsIp = False
     Exit Function
     End If
     For i = 0 To 3
         If Val(varparts(i)) > 255 Or Val(varparts(i)) < 0 Then
         IsIp = False
         Exit Function
         Else
         IsIp = True
         End If
     Next i
     
     End Function
     ' ============================================
     ' 類終結
     ' ============================================
     Private Sub Class_Terminate()
         On Error Resume Next
         Stream.Close
         If Err Then Err.Clear
         Set Stream = Nothing
     End Sub

uj5u.com熱心網友回復:

先用單引號注釋掉所有On Error Resume Next陳述句
再在VB6 IDE中運行,彈出出錯對話框時點除錯,游標會自動停在當前源代碼行,此時在立即視窗中使用
?運算式
顯示運算式的當前值輔助除錯。

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/78300.html

標籤:網絡編程

上一篇:sql中一次只能插入一個欄位,怎么把所有欄位都插入,是插入不是修改

下一篇:VB 查詢VFP資料庫彈出missing operand錯誤

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • Git本地庫既關聯GitHub又關聯Gitee

    創建代碼倉庫 使用gitee舉例(github和gitee差不多) 1.在gitee右上角點擊+,選擇新建倉庫 ? 2.選擇填寫倉庫資訊,然后進行創建 ? 3.服務端已經準備好了,本地開始作準備 (1)Git 全域設定 git config --global user.name "成鈺" git c ......

    uj5u.com 2020-09-10 05:04:14 more
  • CODING DevOps 代碼質量實戰系列第二課,相約周三

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。**《DevOps 代碼質量實戰(PHP 版)》**為 CODING DevOps 代碼質量實戰系列的第二課,同時也是本系列的 PHP ......

    uj5u.com 2020-09-10 05:07:43 more
  • 推薦Scrum書籍

    推薦Scrum書籍 直接上干貨,推薦書籍清單如下(推薦有順序的哦) Scrum指南 Scrum精髓 Scrum敏捷軟體開發 Scrum捷徑 硝煙中的Scrum和XP : 我們如何實施Scrum 敏捷軟體開發:Scrum實戰指南 Scrum要素 大規模Scrum:大規模敏捷組織的設計 用戶故事地圖 用 ......

    uj5u.com 2020-09-10 05:07:45 more
  • CODING DevOps 代碼質量實戰系列最后一課,周四發車

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。 **《DevOps 代碼質量實戰(Java 版)》**為 CODING DevOps 代碼質量實戰系列的最后一課,同時也是本系列的 ......

    uj5u.com 2020-09-10 05:07:52 more
  • 敏捷軟體工程實踐書籍

    Scrum轉型想要做好,第一步先了解并真正落實Scrum,那么我推薦的Scrum書籍是要看懂并實踐的。第二步是團隊的工程實踐要做扎實。 下面推薦工程實踐書單: 重構:改善既有代碼的設計 決議極限編程 : 擁抱變化 代碼整潔代碼 程式員的職業素養 修改代碼的藝術 撰寫可讀代碼的藝術 測驗驅動開發 : ......

    uj5u.com 2020-09-10 05:07:55 more
  • Jenkins+svn+nginx實作windows環境自動部署vue前端專案

    前面文章介紹了Jenkins+svn+tomcat實作自動化部署,現在終于有空抽時間出來寫下Jenkins+svn+nginx實作自動部署vue前端專案。 jenkins的安裝和配置已經在前面文章進行介紹,下面介紹實作vue前端專案需要進行的哪些額外的步驟。 注意:在安裝jenkins和nginx的 ......

    uj5u.com 2020-09-10 05:08:49 more
  • CODING DevOps 微服務專案實戰系列第一課,明天等你

    CODING DevOps 微服務專案實戰系列第一課**《DevOps 微服務專案實戰:DevOps 初體驗》**將由 CODING DevOps 開發工程師 王寬老師 向大家介紹 DevOps 的基本理念,并探討為什么現代開發活動需要 DevOps,同時將以 eShopOnContainers 項 ......

    uj5u.com 2020-09-10 05:09:14 more
  • CODING DevOps 微服務專案實戰系列第二課來啦!

    近年來,工程專案的結構越來越復雜,需要接入合適的持續集成流水線形式,才能滿足更多變的需求,那么如何優雅地使用 CI 能力提升生產效率呢?CODING DevOps 微服務專案實戰系列第二課 《DevOps 微服務專案實戰:CI 進階用法》 將由 CODING DevOps 全堆疊工程師 何晨哲老師 向 ......

    uj5u.com 2020-09-10 05:09:33 more
  • CODING DevOps 微服務專案實戰系列最后一課,周四開講!

    隨著軟體工程越來越復雜化,如何在 Kubernetes 集群進行灰度發布成為了生產部署的”必修課“,而如何實作安全可控、自動化的灰度發布也成為了持續部署重點關注的問題。CODING DevOps 微服務專案實戰系列最后一課:**《DevOps 微服務專案實戰:基于 Nginx-ingress 的自動 ......

    uj5u.com 2020-09-10 05:10:00 more
  • CODING 儀表盤功能正式推出,實作作業資料可視化!

    CODING 儀表盤功能現已正式推出!該功能旨在用一張張統計卡片的形式,統計并展示使用 CODING 中所產生的資料。這意味著無需額外的設定,就可以收集歸納寶貴的作業資料并予之量化分析。這些海量的資料皆會以圖表或串列的方式躍然紙上,方便團隊成員隨時查看各專案的進度、狀態和指標,云端協作迎來真正意義上 ......

    uj5u.com 2020-09-10 05:11:01 more
最新发布
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:41:12 more
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:35:34 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:05:44 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:00:18 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:20:31 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:55 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:18:51 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:00 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:17:55 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:12:06 more