易語(yǔ)言通過(guò)計(jì)算替換字節(jié)實(shí)現(xiàn)酷狗音樂(lè)緩存文件轉(zhuǎn)MP3的代碼
DLL命令表
.版本 2 .DLL命令 創(chuàng)建線(xiàn)程_, 整數(shù)型, "kernel32", "CreateThread", , CreateThread建立新的線(xiàn)索 .參數(shù) lpThreadAttributes, 整數(shù)型, , 0 .參數(shù) dwStackSize, 整數(shù)型, , 0 .參數(shù) lpStartAddress, 子程序指針 .參數(shù) lpParameter, 整數(shù)型 .參數(shù) dwCreationFlags, 整數(shù)型, , 0 .參數(shù) lpThreadId, 整數(shù)型, , 線(xiàn)程ID .DLL命令 _創(chuàng)建許可證, , "kernel32", "InitializeCriticalSection", , 創(chuàng)建許可證 .參數(shù) lpCriticalSection, 多線(xiàn)程許可證, 傳址 .DLL命令 _刪除許可證, , "kernel32", "DeleteCriticalSection", , 刪除許可證 .參數(shù) lpCriticalSection, 多線(xiàn)程許可證, 傳址 .DLL命令 _進(jìn)入許可區(qū), , "kernel32", "EnterCriticalSection", , 進(jìn)入許可區(qū) .參數(shù) lpCriticalSection, 多線(xiàn)程許可證, 傳址 .DLL命令 _退出許可區(qū), , "kernel32", "LeaveCriticalSection", , 退出許可區(qū) .參數(shù) lpCriticalSection, 多線(xiàn)程許可證, 傳址 .DLL命令 線(xiàn)程_掛起, 整數(shù)型, "kernel32", "SuspendThread" .參數(shù) hThread, 整數(shù)型 .DLL命令 線(xiàn)程_恢復(fù), 整數(shù)型, "kernel32", "ResumeThread" .參數(shù) hThread, 整數(shù)型
自定義數(shù)據(jù)類(lèi)型表
.版本 2 .數(shù)據(jù)類(lèi)型 多線(xiàn)程許可證, 公開(kāi) .成員 DebugInfo, 整數(shù)型 .成員 LockCount, 整數(shù)型 .成員 RecursionCount, 整數(shù)型 .成員 OwningThread, 整數(shù)型 .成員 LockSemaphore, 整數(shù)型 .成員 SpinCount, 整數(shù)型
酷狗kgtemp轉(zhuǎn)MP3的代碼
.版本 2
.支持庫(kù) iext
.支持庫(kù) spec
.程序集 窗口程序集_啟動(dòng)窗口
.程序集變量 許可證, 多線(xiàn)程許可證
.程序集變量 線(xiàn)程數(shù), 整數(shù)型
.程序集變量 handle, 整數(shù)型, , "0"
.程序集變量 是否暫停, 邏輯型
.程序集變量 是否停止, 邏輯型
.子程序 __啟動(dòng)窗口_創(chuàng)建完畢
路徑編輯框.內(nèi)容 = 取運(yùn)行目錄 () + “\mp3\”
_創(chuàng)建許可證 (許可證)
輸出調(diào)試文本 (許可證.DebugInfo)
.子程序 _按鈕生成_被單擊
.局部變量 初始目錄, 文本型
.局部變量 文件, 文本型
.局部變量 索引, 整數(shù)型
.局部變量 數(shù)值1, 文本型
.局部變量 i, 整數(shù)型
按鈕開(kāi)始.禁止 = 假
超級(jí)列表框1.表項(xiàng) = { }
i = 0
初始目錄 = 取運(yùn)行目錄 () + “\”
文件 = 尋找文件 (初始目錄 + “*.kgtemp”, )
.循環(huán)判斷首 ()
.如果真 (文件是否存在 (初始目錄 + 文件))
i = i + 1
索引 = 超級(jí)列表框1.插入表項(xiàng) (, , , , , )
超級(jí)列表框1.置標(biāo)題 (索引, 0, 到文本 (i))
超級(jí)列表框1.置標(biāo)題 (索引, 1, 初始目錄 + 文件)
超級(jí)列表框1.置標(biāo)題 (索引, 2, “待轉(zhuǎn)”)
.如果真結(jié)束
文件 = 尋找文件 (, )
.循環(huán)判斷尾 (文件 ≠ “”)
.子程序 _按鈕開(kāi)始_被單擊
.如果真 (文件是否存在 (路徑編輯框.內(nèi)容) = 假)
創(chuàng)建目錄 (路徑編輯框.內(nèi)容)
.如果真結(jié)束
是否停止 = 假
按鈕開(kāi)始.禁止 = 真
按鈕生成.禁止 = 真
按鈕停止.禁止 = 假
按鈕暫停.禁止 = 假
多線(xiàn)程啟動(dòng) ()
按鈕生成.禁止 = 假
按鈕停止.禁止 = 真
按鈕暫停.禁止 = 真
按鈕開(kāi)始.禁止 = 假
.子程序 單線(xiàn)程轉(zhuǎn)換
.參數(shù) 表項(xiàng), 整數(shù)型
.局部變量 文件路徑, 文本型
.局部變量 文件名, 文本型
.局部變量 mp3, 字節(jié)集
文件路徑 = 超級(jí)列表框1.取標(biāo)題 (表項(xiàng), 1)
文件名 = 取文本右邊 (文件路徑, 取文本長(zhǎng)度 (文件路徑) - 倒找文本 (文件路徑, “\”, , 假))
mp3 = kgtemp轉(zhuǎn)MP3 (文件路徑)
.如果 (mp3 ≠ { })
.如果 (寫(xiě)到文件 (路徑編輯框.內(nèi)容 + 文件名 + “.mp3”, mp3))
超級(jí)列表框1.置標(biāo)題 (表項(xiàng), 2, “完成”)
.否則
超級(jí)列表框1.置標(biāo)題 (表項(xiàng), 2, “失敗”)
.如果結(jié)束
.否則
超級(jí)列表框1.置標(biāo)題 (表項(xiàng), 2, “失敗”)
.如果結(jié)束
超級(jí)列表框1.保證顯示 (表項(xiàng))
_進(jìn)入許可區(qū) (許可證)
線(xiàn)程數(shù) = 線(xiàn)程數(shù) - 1
_退出許可區(qū) (許可證)
.子程序 多線(xiàn)程啟動(dòng)
.局部變量 數(shù)量, 整數(shù)型
.局部變量 i, 整數(shù)型
數(shù)量 = 超級(jí)列表框1.取表項(xiàng)數(shù) ()
重定義數(shù)組 (handle, 假, 數(shù)量) ' 防止數(shù)組越界
.計(jì)次循環(huán)首 (數(shù)量, i)
.如果真 (是否停止)
跳出循環(huán) ()
.如果真結(jié)束
.判斷循環(huán)首 (是否暫停)
延遲 (200) ' 如果單擊了暫停按鈕,程序就停在此處無(wú)限循環(huán),直到單擊恢復(fù)。
.判斷循環(huán)尾 ()
創(chuàng)建線(xiàn)程_ (0, 0, &單線(xiàn)程轉(zhuǎn)換, i - 1, 0, handle [i])
超級(jí)列表框1.置標(biāo)題 (i - 1, 2, “轉(zhuǎn)換中”)
_進(jìn)入許可區(qū) (許可證)
線(xiàn)程數(shù) = 線(xiàn)程數(shù) + 1 ' 循環(huán)一次就讓線(xiàn)程數(shù)增加1
_退出許可區(qū) (許可證)
.判斷循環(huán)首 (線(xiàn)程數(shù) = 到整數(shù) (編輯框線(xiàn)程數(shù).內(nèi)容))
.如果真 (是否停止)
跳出循環(huán) ()
.如果真結(jié)束
延遲 (100) ' 延遲的目的是防止線(xiàn)程數(shù)超過(guò)設(shè)定數(shù)目。
.判斷循環(huán)尾 ()
.計(jì)次循環(huán)尾 ()
.子程序 _按鈕暫停_被單擊
.局部變量 cout, 整數(shù)型
.局部變量 i, 整數(shù)型
cout = 超級(jí)列表框1.取表項(xiàng)數(shù) ()
.判斷開(kāi)始 (按鈕暫停.標(biāo)題 = “暫?!?
是否暫停 = 真
.計(jì)次循環(huán)首 (cout, i)
線(xiàn)程_掛起 (handle [i])
.計(jì)次循環(huán)尾 ()
按鈕暫停.標(biāo)題 = “恢復(fù)”
.默認(rèn)
按鈕暫停.標(biāo)題 = “恢復(fù)”
是否暫停 = 假
.計(jì)次循環(huán)首 (cout, i)
線(xiàn)程_恢復(fù) (handle [i])
.計(jì)次循環(huán)尾 ()
按鈕暫停.標(biāo)題 = “暫?!?
.判斷結(jié)束
.子程序 _按鈕停止_被單擊
是否停止 = 真
按鈕生成.禁止 = 真
.子程序 kgtemp轉(zhuǎn)MP3, 字節(jié)集
.參數(shù) 文件路徑, 文本型
.局部變量 key, 整數(shù)型, , "4"
.局部變量 文件號(hào), 整數(shù)型
.局部變量 臨時(shí)字節(jié)集文件, 字節(jié)集
.局部變量 臨時(shí)字節(jié)集指針, 整數(shù)型
.局部變量 字節(jié)集長(zhǎng)度, 整數(shù)型
.局部變量 計(jì)數(shù), 整數(shù)型
.局部變量 i, 整數(shù)型
.局部變量 結(jié)果, 整數(shù)型
.局部變量 輸出結(jié)果, 字節(jié)集
.局部變量 時(shí)間, 整數(shù)型
key [1] = 172
key [2] = 236
key [3] = 223
key [4] = 87
文件號(hào) = 打開(kāi)文件 (文件路徑, , )
臨時(shí)字節(jié)集文件 = 讀入字節(jié)集 (文件號(hào), 取文件長(zhǎng)度 (文件號(hào)))
關(guān)閉文件 (文件號(hào))
臨時(shí)字節(jié)集文件 = 取字節(jié)集右邊 (臨時(shí)字節(jié)集文件, 取字節(jié)集長(zhǎng)度 (臨時(shí)字節(jié)集文件) - 1024)
臨時(shí)字節(jié)集指針 = 取變量數(shù)據(jù)地址 (臨時(shí)字節(jié)集文件)
字節(jié)集長(zhǎng)度 = 取字節(jié)集長(zhǎng)度 (臨時(shí)字節(jié)集文件)
時(shí)間 = 取啟動(dòng)時(shí)間 ()
.計(jì)次循環(huán)首 (字節(jié)集長(zhǎng)度, 計(jì)數(shù))
i = 計(jì)數(shù) % 4
.如果真 (i = 0)
i = 4
.如果真結(jié)束
結(jié)果 = 位異或 (取低位 (臨時(shí)字節(jié)集文件 [計(jì)數(shù)]), 取低位 (key [i]))
結(jié)果 = 位或 (左移 (位異或 (取高位 (臨時(shí)字節(jié)集文件 [計(jì)數(shù)]), 取高位 (key [i]), 結(jié)果), 4), 結(jié)果)
寫(xiě)到內(nèi)存 (取字節(jié)集左邊 (到字節(jié)集 (結(jié)果), 1), 臨時(shí)字節(jié)集指針 + 計(jì)數(shù) - 1, 1)
.計(jì)次循環(huán)尾 ()
輸出調(diào)試文本 (取啟動(dòng)時(shí)間 () - 時(shí)間)
返回 (臨時(shí)字節(jié)集文件)
.子程序 MP3轉(zhuǎn)kgtemp, 字節(jié)集
.參數(shù) 文件路徑, 文本型
.局部變量 key, 整數(shù)型, , "4"
.局部變量 文件號(hào), 整數(shù)型
.局部變量 臨時(shí)字節(jié)集文件, 字節(jié)集
.局部變量 臨時(shí)字節(jié)集指針, 整數(shù)型
.局部變量 字節(jié)集長(zhǎng)度, 整數(shù)型
.局部變量 計(jì)數(shù), 整數(shù)型
.局部變量 i, 整數(shù)型
.局部變量 結(jié)果, 整數(shù)型
.局部變量 輸出結(jié)果, 字節(jié)集
.局部變量 時(shí)間, 整數(shù)型
key [1] = 172
key [2] = 236
key [3] = 223
key [4] = 87
文件號(hào) = 打開(kāi)文件 (文件路徑, , )
臨時(shí)字節(jié)集文件 = 讀入字節(jié)集 (文件號(hào), 取文件長(zhǎng)度 (文件號(hào)))
關(guān)閉文件 (文件號(hào))
臨時(shí)字節(jié)集指針 = 取變量數(shù)據(jù)地址 (臨時(shí)字節(jié)集文件)
字節(jié)集長(zhǎng)度 = 取字節(jié)集長(zhǎng)度 (臨時(shí)字節(jié)集文件)
時(shí)間 = 取啟動(dòng)時(shí)間 ()
.計(jì)次循環(huán)首 (字節(jié)集長(zhǎng)度, 計(jì)數(shù))
i = 計(jì)數(shù) % 4
.如果真 (i = 0)
i = 4
.如果真結(jié)束
結(jié)果 = 位異或 (取高位 (臨時(shí)字節(jié)集文件 [計(jì)數(shù)]), 取低位 (臨時(shí)字節(jié)集文件 [計(jì)數(shù)]), 取高位 (key [i]))
結(jié)果 = 位或 (左移 (結(jié)果, 4), 位異或 (取低位 (臨時(shí)字節(jié)集文件 [計(jì)數(shù)]), 取低位 (key [i])))
寫(xiě)到內(nèi)存 (取字節(jié)集左邊 (到字節(jié)集 (結(jié)果), 1), 臨時(shí)字節(jié)集指針 + 計(jì)數(shù) - 1, 1)
.計(jì)次循環(huán)尾 ()
輸出調(diào)試文本 (取啟動(dòng)時(shí)間 () - 時(shí)間)
返回 (#head + 臨時(shí)字節(jié)集文件)
.子程序 取高位, 整數(shù)型
.參數(shù) 待取整數(shù), 整數(shù)型
返回 (右移 (待取整數(shù), 4))
.子程序 取低位, 整數(shù)型
.參數(shù) 待取整數(shù), 整數(shù)型
返回 (位與 (待取整數(shù), 15))
.子程序 __啟動(dòng)窗口_將被銷(xiāo)毀
_刪除許可證 (許可證)
運(yùn)行結(jié)果:

總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
易語(yǔ)言QQ群發(fā)支持圖片文字?jǐn)?shù)據(jù)一起發(fā)送的工具
今天小編就為大家分享一篇關(guān)于易語(yǔ)言QQ群發(fā)支持圖片文字?jǐn)?shù)據(jù)一起發(fā)送的工具,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12
零基礎(chǔ)易語(yǔ)言入門(mén)教程(二)之編程思路
這篇文章主要介紹了零基礎(chǔ)易語(yǔ)言入門(mén)教程(二)之編程思路的相關(guān)資料,非常不錯(cuò),適合新手入門(mén)學(xué)習(xí),需要的朋友可以參考下2016-05-05
易語(yǔ)言將當(dāng)前窗口位置設(shè)置成不可移動(dòng)
今天小編就為大家分享一篇關(guān)于易語(yǔ)言將當(dāng)前窗口位置設(shè)置成不可移動(dòng),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-11-11
易語(yǔ)言鍵盤(pán)鉤子與鼠標(biāo)鉤子的狀態(tài)參數(shù)值表
在本篇內(nèi)容里,小編給大家整理了關(guān)于易語(yǔ)言鍵盤(pán)鉤子與鼠標(biāo)鉤子的狀態(tài)參數(shù)值表的用法代碼,需要的參考下2018-11-11

