主頁 > 軟體工程 > “CreateFileW”是可以打開以Unicode字符命名的檔案,但如何將一個Unicode檔案名傳入引數?

“CreateFileW”是可以打開以Unicode字符命名的檔案,但如何將一個Unicode檔案名傳入引數?

2020-09-28 07:22:27 軟體工程

使用windows的GetOpenFileNameW是可以解決問題,但前提是手動一個一個檔案去選擇

 FileHwnd = CreateFile(VarPtr(UnicodeFileName(0)), GENERIC_READ, FILE_SHARE_READ, SA, OPEN_EXISTING, 0, 0)

得到句柄后再用ReadFile吸出任天堂紅白機ROM檔案里的游戲資料,然后就可以玩魂斗羅了。

但現在我目錄里有3000多個游戲,我要做個CRC校驗,不能每個游戲去選擇一次然后點擊。VB的內置函式全線崩潰,DIR、OPEN、這些都不支持Unicode。

看到過論壇有篇文章參考物件“Fso”轉短檔案名去解決的,這個可以使用,但這樣我的代碼要重寫了。因為在我的代碼中,掃描檔案、打開檔案、校驗CRC,三個功能全寫在了一個Function上,加上有些游戲是破解過的,我還手動寫了一種演算法,抽取魂斗羅里面的部份資料作特征碼驗證,所以這個Function要改起來工程很大。

我現在只能想到的方法只能是改動掃描檔案那部份代碼,將原來的DIR掃描換成FindFirstFileW,但我找個不到關于這個API的任何示例,外國人很牛逼的,他們反映FindFirstFileA不行,然后回貼那提示一下改成FindFirstFileW可以,然后那人就自己去改了,很牛逼,但我不牛逼啊,我只想讓我的小伙伴們快活地活下去而已,如何修改達到目的?我不是程式員啊,不要給我太高深的暗示,給我一點明示。我一會還得上社保局交社保。

uj5u.com熱心網友回復:

看你說了這么一大堆回答一下吧
其實vb是很適合用w系列的函式的

Declare Function CreateFile Lib "kernel32" Alias "CreateFileW" (ByVal lpFileName As long, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long

dim s as string
FileHwnd = CreateFile(strptr(s), GENERIC_READ, FILE_SHARE_READ, SA, OPEN_EXISTING, 0, 0)
這樣傳進去的就是unicode了根本不用轉換,記得原來宣告的byval xx as string改為as long就行了

uj5u.com熱心網友回復:

很感激在我說了這么一大堆之后會有人看,但就是看了個標題

D盤有個檔案“????????????????.txt”

dim s as string

s=dir("d:\")

你覺得這時候s變數的值是什么?答案是"????????????????????????????????
.txt"

于是乎我再用strptr("????????????????????????????????
".txt)得出變數的指標,傳進去引數

FileHwnd = CreateFile(strptr(s), GENERIC_READ, FILE_SHARE_READ, SA, OPEN_EXISTING, 0, 0)

雖然我現在沒條件測驗,但我覺得FileHwnd一定會等于“-1”

就那樣,算了當我什么都沒說

uj5u.com熱心網友回復:

請大家嘗試著耐心一次,看完我的貼子,然后想想“如何將一個Unicode檔案名傳入引數/變數”,

而不是“傳入一個變數如何轉為Unicode”,更加不會是“傳入一個變數需不需要轉為Unicode”。

uj5u.com熱心網友回復:

先用 W 系列api獲取這個檔案的 unicode 檔案名,然后再傳給 createfileW 就行了

uj5u.com熱心網友回復:

自己搞定了,CopyMemory

但還有一個小細節,除了這樣賦值外還有什么好方法?

dim buff(512) as byte

游戲目錄 = "C:\"
    
    buff(0) = &H43&
    buff(1) = &H0&
    buff(2) = &H3A&
    buff(3) = &H0&
    buff(4) = &H5C&
    buff(5) = &H0&

我想達到的效果是,根據不同的目錄,賦入陣列相應的十六進制數值。(要對應unicode,每個字符占兩個Byte)

uj5u.com熱心網友回復:

樓主這個問題,無非就是列舉與讀取UNICODE檔案.

那先要找一個支持UNICODE的DIR,這個的話就要API自己寫了,或使用VB.NET.

API方面正好我有一個ANSI版本的,改一下就可以列舉出UNICODE檔案名:

Option Explicit
'列舉指定目錄下的檔案.
'
'By 嗷嗷叫的老馬
'http://www.m5home.com/

Private Const INVALID_HANDLE_VALUE As Long = -1&
Private Const MAX_PATH As Long = 260&

Private Type FILETIME
    dwLowDateTime As Long
    dwHighDateTime As Long
End Type
Private Type WIN32_FIND_DATA
    dwFileAttributes As Long
    ftCreationTime As FILETIME
    ftLastAccessTime As FILETIME
    ftLastWriteTime As FILETIME
    nFileSizeHigh As Long
    nFileSizeLow As Long
    dwReserved0 As Long
    dwReserved1 As Long
    cFileName(MAX_PATH - 1) As Byte
    cShortFileName(14 - 1) As Byte
End Type
Public Type byteFileName
    bFileName() As Byte
End Type

Private Declare Function FindClose Lib "kernel32.dll" ( _
     ByVal hFindFile As Long) As Long
Private Declare Function FindFirstFile Lib "kernel32.dll" Alias "FindFirstFileW" ( _
     ByVal lpFileName As Long, _
     ByRef lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindNextFile Lib "kernel32.dll" Alias "FindNextFileW" ( _
     ByVal hFindFile As Long, _
     ByRef lpFindFileData As WIN32_FIND_DATA) As Long
Private WFD As WIN32_FIND_DATA

Dim m_isSearch As Boolean, isStop As Boolean
Dim m_outFiles() As byteFileName, m_outCount As Long

Public Function ListFileW(ByVal sourceDir As String, ByRef outFiles() As byteFileName, Optional ByVal isCheckSub As Boolean = True) As Long
    '列出指定目錄下所有檔案
    '
    ReDim m_outFiles(1000)
    m_outCount = 0
    m_isSearch = True
    isStop = False
    
    Call Dir_Api(sourceDir, isCheckSub)
    If m_outCount > 0 Then
        ReDim Preserve m_outFiles(m_outCount - 1)
        outFiles() = m_outFiles()
    End If
    ListFileW = m_outCount
End Function

Public Function isSearch() As Boolean
    '查詢是否正在搜索中
    '
    isSearch = m_isSearch
End Function

Public Sub StopSearch()
    '中斷搜索程序
    '
    isStop = True
    DoEvents
End Sub

Private Sub Dir_Api(ByVal strPath As String, Optional ByVal isCheckSub As Boolean = True)
    '遞回程序
    '
    Dim dirCount As Long, Dirs() As String, hItem As Long
    Dim I As Long, J As Long, K As Long, II As Long, strTmp As String
    Static tmpCount As Long
    
    On Error GoTo errH
    
    If isStop Then Exit Sub
    
    If Right(strPath, 1) <> "\" Then strPath = strPath & "\"
    hItem = FindFirstFile(StrPtr(strPath & "*.*"), WFD)
    If hItem <> INVALID_HANDLE_VALUE Then
        Do
            tmpCount = tmpCount + 1
            If tmpCount Mod 20 = 0 Then DoEvents
            '檢查是不是目錄
            If (WFD.dwFileAttributes And vbDirectory) Then
                ' 檢查是不是  "." or ".."
                If Left(WFD.cFileName, InStr(WFD.cFileName, vbNullChar) - 1) <> "." And Left(WFD.cFileName, InStr(WFD.cFileName, vbNullChar) - 1) <> ".." Then
                    ReDim Preserve Dirs(0 To dirCount)
                    Dirs(dirCount) = Left(WFD.cFileName, InStr(WFD.cFileName, vbNullChar) - 1)
                    dirCount = dirCount + 1
                End If
            Else
                For I = 0 To UBound(WFD.cFileName) - 1
                    If WFD.cFileName(I) = 0 And WFD.cFileName(I + 1) = 0 Then
                        m_outFiles(m_outCount).bFileName = strPath        '引發錯誤
                        m_outFiles(m_outCount).bFileName = strPath
                        
                        K = UBound(m_outFiles(m_outCount).bFileName) + 1
                        ReDim Preserve m_outFiles(m_outCount).bFileName(1000)
                        
                        II = -1
                        
                        For J = K To K + I
                            II = II + 1
                            m_outFiles(m_outCount).bFileName(J) = WFD.cFileName(II)
                        Next
                        ReDim Preserve m_outFiles(m_outCount).bFileName(J)
                        m_outCount = m_outCount + 1
                        Exit For
                    End If
                Next
            End If
        Loop While FindNextFile(hItem, WFD)
        Call FindClose(hItem)
    End If
    If Not isCheckSub Then Exit Sub
    For I = 0 To dirCount - 1
        If isStop Then m_isSearch = False: Exit For
        Dir_Api strPath & Dirs(I) & "\", isCheckSub
    Next
    
    Exit Sub
errH:
    If Err.Number = 9 Then                  '下標越界,則擴大陣列.
        ReDim m_outFiles(m_outCount + 1000)
        Resume Next                         '擴大后繼續下一句.
    End If
    MsgBox "出現錯誤:" & Err.Description
    isStop = True
End Sub


這代碼本來以前是回傳String的,現在改成byteFileName型別了,直接是位元組陣列,防止VB自作主張地轉換.

剩下打開并讀寫之類的,這個好象你已經用CreateFileW搞定了,那就沒啥問題了.

uj5u.com熱心網友回復:

參考 6 樓 myjian 的回復:
樓主這個問題,無非就是列舉與讀取UNICODE檔案.

那先要找一個支持UNICODE的DIR,這個的話就要API自己寫了,或使用VB.NET.

API方面正好我有一個ANSI版本的,改一下就可以列舉出UNICODE檔案名:

Option Explicit
'列舉指定目錄下的檔案.
'
'By 嗷嗷叫的老馬
'http://www.m5home.com/

Private Const INVALID_HANDLE_VALUE As Long = -1&
Private Const MAX_PATH As Long = 260&

Private Type FILETIME
    dwLowDateTime As Long
    dwHighDateTime As Long
End Type
Private Type WIN32_FIND_DATA
    dwFileAttributes As Long
    ftCreationTime As FILETIME
    ftLastAccessTime As FILETIME
    ftLastWriteTime As FILETIME
    nFileSizeHigh As Long
    nFileSizeLow As Long
    dwReserved0 As Long
    dwReserved1 As Long
    cFileName(MAX_PATH - 1) As Byte
    cShortFileName(14 - 1) As Byte
End Type
Public Type byteFileName
    bFileName() As Byte
End Type

Private Declare Function FindClose Lib "kernel32.dll" ( _
     ByVal hFindFile As Long) As Long
Private Declare Function FindFirstFile Lib "kernel32.dll" Alias "FindFirstFileW" ( _
     ByVal lpFileName As Long, _
     ByRef lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindNextFile Lib "kernel32.dll" Alias "FindNextFileW" ( _
     ByVal hFindFile As Long, _
     ByRef lpFindFileData As WIN32_FIND_DATA) As Long
Private WFD As WIN32_FIND_DATA

Dim m_isSearch As Boolean, isStop As Boolean
Dim m_outFiles() As byteFileName, m_outCount As Long

Public Function ListFileW(ByVal sourceDir As String, ByRef outFiles() As byteFileName, Optional ByVal isCheckSub As Boolean = True) As Long
    '列出指定目錄下所有檔案
    '
    ReDim m_outFiles(1000)
    m_outCount = 0
    m_isSearch = True
    isStop = False
    
    Call Dir_Api(sourceDir, isCheckSub)
    If m_outCount > 0 Then
        ReDim Preserve m_outFiles(m_outCount - 1)
        outFiles() = m_outFiles()
    End If
    ListFileW = m_outCount
End Function

Public Function isSearch() As Boolean
    '查詢是否正在搜索中
    '
    isSearch = m_isSearch
End Function

Public Sub StopSearch()
    '中斷搜索程序
    '
    isStop = True
    DoEvents
End Sub

Private Sub Dir_Api(ByVal strPath As String, Optional ByVal isCheckSub As Boolean = True)
    '遞回程序
    '
    Dim dirCount As Long, Dirs() As String, hItem As Long
    Dim I As Long, J As Long, K As Long, II As Long, strTmp As String
    Static tmpCount As Long
    
    On Error GoTo errH
    
    If isStop Then Exit Sub
    
    If Right(strPath, 1) <> "\" Then strPath = strPath & "\"
    hItem = FindFirstFile(StrPtr(strPath & "*.*"), WFD)
    If hItem <> INVALID_HANDLE_VALUE Then
        Do
            tmpCount = tmpCount + 1
            If tmpCount Mod 20 = 0 Then DoEvents
            '檢查是不是目錄
            If (WFD.dwFileAttributes And vbDirectory) Then
                ' 檢查是不是  "." or ".."
                If Left(WFD.cFileName, InStr(WFD.cFileName, vbNullChar) - 1) <> "." And Left(WFD.cFileName, InStr(WFD.cFileName, vbNullChar) - 1) <> ".." Then
                    ReDim Preserve Dirs(0 To dirCount)
                    Dirs(dirCount) = Left(WFD.cFileName, InStr(WFD.cFileName, vbNullChar) - 1)
                    dirCount = dirCount + 1
                End If
            Else
                For I = 0 To UBound(WFD.cFileName) - 1
                    If WFD.cFileName(I) = 0 And WFD.cFileName(I + 1) = 0 Then
                        m_outFiles(m_outCount).bFileName = strPath        '引發錯誤
                        m_outFiles(m_outCount).bFileName = strPath
                        
                        K = UBound(m_outFiles(m_outCount).bFileName) + 1
                        ReDim Preserve m_outFiles(m_outCount).bFileName(1000)
                        
                        II = -1
                        
                        For J = K To K + I
                            II = II + 1
                            m_outFiles(m_outCount).bFileName(J) = WFD.cFileName(II)
                        Next
                        ReDim Preserve m_outFiles(m_outCount).bFileName(J)
                        m_outCount = m_outCount + 1
                        Exit For
                    End If
                Next
            End If
        Loop While FindNextFile(hItem, WFD)
        Call FindClose(hItem)
    End If
    If Not isCheckSub Then Exit Sub
    For I = 0 To dirCount - 1
        If isStop Then m_isSearch = False: Exit For
        Dir_Api strPath & Dirs(I) & "\", isCheckSub
    Next
    
    Exit Sub
errH:
    If Err.Number = 9 Then                  '下標越界,則擴大陣列.
        ReDim m_outFiles(m_outCount + 1000)
        Resume Next                         '擴大后繼續下一句.
    End If
    MsgBox "出現錯誤:" & Err.Description
    isStop = True
End Sub


這代碼本來以前是回傳String的,現在改成byteFileName型別了,直接是位元組陣列,防止VB自作主張地轉換.

剩下打開并讀寫之類的,這個好象你已經用CreateFileW搞定了,那就沒啥問題了.


抽了幾行有用的出來,其余的我刪掉了。


Option Explicit
'打開小伙伴指定的游戲.
'
'By 繳社保的老頭
'http://www.cug.net/~anonB/dj/djview.cgi?0628#joker2

Dim 檔案句柄, 搜索句柄 As Long

Dim 游戲目錄 As String

Dim 打比流愛撫弟 As WIN32_FIND_DATA

游戲目錄 = "c:\"

搜索句柄 = FindFirstFileW(StrPtr(游戲目錄 & "*.nes"), VarPtr(打比流愛撫弟))
      
FindClose 搜索句柄

ReDim 游戲目錄緩沖區(512) As Byte

Call StrConvUnicode(游戲目錄)
      
CopyMemory 游戲目錄緩沖區(Len(游戲目錄) * 2), 打比流愛撫弟.cFileName(0), 512 - Len(游戲目錄) * 2

檔案句柄 = CreateFile(VarPtr(游戲目錄緩沖區(0)), GENERIC_READ, FILE_SHARE_READ, SA, OPEN_EXISTING, 0, 0)

DrawTextW Me.hDC, VarPtr(游戲目錄緩沖區(0)), UBound(游戲目錄緩沖區) / 2, R, DT_CENTER


整出來才想起win98不支持unicode,我需要花點時間說服我的老伙伴們轉用win2000

uj5u.com熱心網友回復:

我上面給你的函式是取指定路徑下所有檔案名的,能支持子目錄,呼叫后就會回傳一個UNICODE格式的BYTE陣列.

你這么一改,難道是只需要加載一個么.

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

標籤:API

上一篇:EXCEL2010 FileSearch的問題,求高手指點

下一篇:小碼農求GridPrint控制元件

標籤雲
其他(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