思路很簡單可以定義一個結(jié)構(gòu)LyricStructure Lyric
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:國際域名空間、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、廬山網(wǎng)站維護、網(wǎng)站推廣。
Dim Time As Single
Dim Content As String
End Structure聲明一個列表 Private Lyrics As New List(Of Lyric)然后以文本方式把歌詞文件讀入一個變量 并對它進行分析 分別把時間和歌詞內(nèi)容存入一個Lyric,并加入Lyrics中。代碼如下:(假設(shè)歌曲文件的路徑為path)Dim LrcPath As String== IO.Path.GetDirectoryName(cPath) "/" IO.Path.GetFileNameWithoutExtension(cPath) ".lrc"If IO.File.Exists(LrcPath= True Then AnalysisLyric() Private Sub AnalysisLyric()
Lyrics.Clear() '先清空列表
Dim tm As Byte
Dim sr As New IO.StreamReader(LrcPath, System.Text.Encoding.Default) '讀取歌詞文件
Do While sr.EndOfStream = False '判斷是否處于文件流末尾
Dim tmpStr As String = sr.ReadLine '讀取一行
If tmpStr.Length 5 Then Continue Do '長度小于5則跳過,進行下一次循環(huán)
Select Case Mid(tmpStr, 2, 2) '判斷第2-3個字符 因為歌詞里的注釋都是[ti:***]類似的結(jié)構(gòu)
Case "ti"
lTitle = Mid(tmpStr, 5, tmpStr.Length - 5)
Case "ar"
lArtist = Mid(tmpStr, 5, tmpStr.Length - 5)
Case "al"
lAlbum = Mid(tmpStr, 5, tmpStr.Length - 5)
Case "by"
lAuthor = Mid(tmpStr, 5, tmpStr.Length - 5)
Case Else '如果不為以上的內(nèi)容 則為歌詞正文,進行以下操作
If Not Mid(tmpStr, 1, 6) Like "?##:##" Then Continue Do
Dim time(-1) As String '因為有時歌詞是以[00:00.00][00:00.00]**** 這樣歌詞把多個時間存放在一起的 ,所以定義一個數(shù)組來存放歌詞
Do '因為不確定時間的個數(shù),所以此處必須循環(huán)判斷
tm = InStr(tmpStr, "]") '因為歌詞時間有時是[00:00.00]形式,有時是[00:00]形式,所以不能單純的截取第幾個字符 ,我是根據(jù)查找']'字符來進行判斷的
ReDim Preserve time(time.GetUpperBound(0) + 1) 為time數(shù)組重新分配大小
time(time.GetUpperBound(0)) = Mid(tmpStr, 1, tm) 'time.GetUpperBound(0)返回數(shù)組的第一維的最大下標
tmpStr = IIf(tmpStr.Length = tm, " ", Mid(tmpStr, tm + 1)) '歌詞內(nèi)容
Loop While Mid(tmpStr, 1, 6) Like "?##:##" '如果截取剩下的部分依然匹配的話繼續(xù)循環(huán)
For Each t In time '為每個時間都創(chuàng)建一個Lyric變量
Dim ln As Lyric
ln.Time = SwitchTime(Mid(t, 2, t.Length - 2))
ln.Content = tmpStr
Lyrics.Add(ln)
Next
End Select
Loop
sr.Close() 關(guān)閉流
Sort() '把所有Lyric按時間順序排序
End Sub Private Function SwitchTime(ByVal time As String) As Single ‘這個函數(shù)是用來把00:00.00格式的時間轉(zhuǎn)化成以秒數(shù)顯示的數(shù)值
Dim tm As Single
Dim minute As Single = Val(Mid(time, 1, 2))
Dim second As Single = Val(Mid(time, 4, 5))
tm = minute * 60 + second
Return tm
End Function Private Sub Sort()
For i = 0 To Lyrics.Count - 2
For j = i To Lyrics.Count - 1
If Lyrics(i).Time Lyrics(j).Time Then
Dim tm As Lyric = Lyrics(i)
Lyrics(i) = Lyrics(j)
Lyrics(j) = tm
End If
Next
Next
End Sub 接下來是顯示歌詞的問題了 ,只要有每句歌詞和對應(yīng)的時間,那么問題就好辦了。你可以用Windows Media Player控件返回的時間和每句歌詞的時間做比較,來判斷應(yīng)該顯示那一句。代碼是很久前寫的 ,那時沒加注釋,都是剛剛加上去的喲,你可以根據(jù)你的實際情況自己修改,有什么不懂的地方可以繼續(xù)問我哈~~
四 第一個Visual Basic Net程序 Hello World!
如果你沒有Visual Studio Net 你也可以通過一個文本編輯器和從微軟下載安裝 Net Frame Work SDK來編寫Visual Basic Net 文本編輯器來編輯Visual Basic Net源程序 安裝下載的 Net FrameWork SDK后就會用以Visual Basic Net的編譯器Vbc exe 通過這個編譯器就可以編譯 聯(lián)接用文本編輯器編輯的Visual Basic Net源文件 雖然這種做法能夠讓我們更加了解Visual Basic Net的運行機制和一些底層的機理 但卻很難推廣 一方面是Visual Studio Net的確是太優(yōu)秀了 利用文本編輯器很難實現(xiàn)如資源編輯 組件編輯等操作 另外一方面 Visual Basic Net源文件結(jié)構(gòu)相對復(fù)雜 用文本編輯器編寫的代碼會導(dǎo)致大量的錯誤 并且這些錯誤有很難查出來 而利用Visual Studio Net來開發(fā)Visual Basic Net應(yīng)用程序就能夠大大避免上述的尷尬 并且能夠方便的調(diào)試編程中出現(xiàn)的各種警告 錯誤
本系列文章中介紹程序的編寫 調(diào)試和運行的軟件環(huán)境
( ) 視窗 服務(wù)器版
( ) Visual Studio Net 企業(yè)級結(jié)構(gòu)設(shè)計版
用Visual Studio Net開發(fā) Hello World! 程序
我們知道 Hello World 一般是命令行程序 而這種程序在Visual Studio Net中被稱為 控制臺程序 下面是Visual Studio Net編寫控制臺 Hello World! 程序的具體步驟
( ) 啟動Visual Studio Net
( ) 選擇菜單【文件】|【新建】|【項目】后 彈出【新建項目】對話框
( ) 將【項目類型】設(shè)置為【Visual Basic項目】
( ) 將【模板】設(shè)置為【控制臺應(yīng)用程序】
( ) 在【名稱】文本框中輸入【Hello World】
( ) 在【位置】的文本框中輸入【E:\VS NET項目】 然后單擊【確定】按鈕 則Visual Studio Net會按照上面設(shè)定的參數(shù)創(chuàng)建一個控制臺應(yīng)用程序項目
( ) 在【解決方案資源管理器】窗口中 雙擊Module vb文件 進入Module vb文件的編輯界面
( ) Visual Studio Net已經(jīng)為產(chǎn)生Main()函數(shù) 在系統(tǒng)創(chuàng)建的Main()函數(shù)中加入下面一行代碼就可以了
Console WriteLine ( Hello World! )
( ) 選擇【文件】|【保存Module vb】菜單或者按快捷鍵Ctrl+S 保存所做的修改
( ) 此時單擊快捷鍵Ctrl+F 運行程序就可以得到運行界面
通過以上可見利用Visual Studio Net編寫控制臺 Hello World! 程序 自始至終只需輸入一行代碼 Visual Studio Net自動實現(xiàn)源程序編譯 聯(lián)接等過程 避免在命令行提示符下敲編譯命令的苦惱 不僅如此Visual Studio Net自動的語法檢測 既給程序員帶來便捷 又避免了因為拼寫造成的不必要的錯誤 等等這些都比起用行編輯器來編寫Visual Basic Net程序要方便 簡潔
Hello World! 程序是一個控制臺程序 而后面的章節(jié)中程序的類型主要是Windows應(yīng)用程序(一般簡稱WinForm程序) 利用Visual Studio Net編寫WinForm應(yīng)用程序和控制臺應(yīng)用程序步驟基本相似 下面就介紹一下Visual Studio Net編寫WinForm類型的 Hello World 程序的基本步驟
Hello World! 程序的WinForm版本
Hello World! 程序的WinForm版本的可是我取的名字 此程序同樣也是輸出 Hello World! 字符串 只不過不是在命令提示行中實現(xiàn) 而是通過單擊程序中的按鈕 會彈出一個消息框 并在消息框中顯示 Hello World! 字符串 下面是 Hello World! 程序的WinForm版本的具體步驟
( ) 啟動Visual Studio Net
( ) 選擇菜單【文件】|【新建】|【項目】后 彈出【新建項目】對話框
( ) 將【項目類型】設(shè)置為【Visual Basic項目】
( ) 將【模板】設(shè)置為【W(wǎng)indows應(yīng)用程序】
( ) 在【名稱】文本框中輸入【Hello_World程序WinForm版】
( ) 在【位置】的文本框中輸入【E:\VS NET項目】 然后單擊【確定】按鈕 則Visual Studio Net會按照上面設(shè)定的參數(shù)創(chuàng)建一個Windows應(yīng)用程序項目
( ) 選擇【工具箱】中的【W(wǎng)indows窗體組件】 并從中拖入一個Button組件到【Form vb(設(shè)計)】窗口 此組件名稱為button 雙擊拖入的button 組件 Visual Studio Net會切換窗口到Form 的設(shè)計窗口 并自動產(chǎn)生button 的Click事件對應(yīng)的代碼
( ) 在button 的Click事件的代碼區(qū)添加下列代碼 下列代碼的功能是彈出 Hello World! 提示框
MessageBox Show ( Hello World! )
( ) 選擇【文件】|【保存Form vb】菜單或者按快捷鍵Ctrl+S 保存所做的修改
( ) 選擇【生成】|【生成Hello_World程序WinForm版】菜單 則Visual Studio Net會自動編譯 連接源程序 并生成Hello_World程序WinForm版的執(zhí)行文件
( ) 選擇【調(diào)試】|【啟動】菜單或者單擊快捷鍵 F 則開始運行Hello_World程序WinForm版程序 單擊程序中的【button 】按鈕 則彈出 Hello World! 提示框
至此Hello_World程序WinForm版程序的全部編寫工作就完成了 對于其他的WinForm程序 其編寫的基本步驟是相似的 只不過程序中涉及到更多的組件 類和其他的調(diào)用 無非是上面這些操作步驟的變形和再組合
五.總結(jié)
lishixinzhi/Article/program/net/201311/14627
VB編程工具
Visual Basic 6.0簡體中文版 Visual Basic 6.0綠色精簡版 MSDN VB6精簡版
VB入門教程
VB程序設(shè)計系列教程 VB 趣味例程 VB6實例教程
中文VB6傻瓜書 VB最簡單入門教程 VB 6.0中文版范例入門與提高
VB初哥教學 VB編程標準 看實例學VB 6.0
VB.NET學習教程 VB.NET控件時尚編程百例 VB 中文版實用培訓(xùn)教程
VB經(jīng)典編程 VB6循序漸進教程 VB 6.0 中文版教程
VB_NET實例解析與應(yīng)用編程 VB.NET中高級篇 VB精彩編程200例
VB超級教程 VB API函數(shù)大全 Visual Basic 6.0實例教程
VB 6.0數(shù)據(jù)庫開發(fā)學習教程 VB.NET數(shù)據(jù)庫編程從入門到精通 VB6.0入門提高
21天學通Visual Basic.NET Visual Basic.NET實用全書 Visual Basic.NET學習范本
Visual Basic.NET培訓(xùn)教程 Visual Basic實用編程標準 VB學習教程
VB的控件的學習
VB編程開發(fā)技術(shù)
COM+與VB6分布式應(yīng)用程序設(shè)計 Visual Basic 插件開發(fā)人員指南 VB.NET高級開發(fā)指南
VB.Net高級編程 VB.NET 面向?qū)ο罂芍赜媒M件開發(fā) Visual Basic精彩編程200例
VB.Net多媒體編程 VB.NET高級程序員指南 Visual Basic.NET GDI+技術(shù)教程
VB.Net控件應(yīng)用編程實例教程 VB.NET XML Web開發(fā)人員指南 VB和SQL Server編程指南
用VB.NET開始Asp.NET1.1的開發(fā) VB 游戲編程學習系統(tǒng) Visual Basic.NET 編碼技術(shù)
VB.NET面向?qū)ο驝LASS的實現(xiàn) VB.NET應(yīng)用集錦例程 VB.NET實例解析應(yīng)用編程
Visual Basic.Net與動態(tài)網(wǎng)頁技術(shù) VB6開發(fā)寶典 VB系統(tǒng)資源
VB 例程序講解 VB.NET數(shù)據(jù)庫開發(fā)實例 VB.NET與數(shù)據(jù)庫開發(fā)教程
VB語言程序設(shè)計 VB.NET面向?qū)ο蟮膶崿F(xiàn) Visual Basic 6.0應(yīng)用編程150例
Visual Basic.NET項目開發(fā)實踐 Visual Basic 6.0 開發(fā)寶典 Visual Basic 6.0網(wǎng)絡(luò)編程
Visual Basic6.0企業(yè)級應(yīng)用程序開發(fā) Visual Basic6.0數(shù)據(jù)庫程序設(shè)計 Visual Basic .NET程序設(shè)計基礎(chǔ)
Visual Basic.NET數(shù)據(jù)庫開發(fā)教程 Visual Basic 6 循序漸進教程 VB游戲編程21天自學通
Visual Basic.NET進銷存程序設(shè)計 Visual Basic程序設(shè)計導(dǎo)學 Visual Basic.NET技術(shù)內(nèi)幕
VB.NET和SOL Server 2000高級編程 利用VB設(shè)計打印復(fù)雜報表 Visual Basic.NET編程基礎(chǔ)
Visual Basic6.0元件程序開發(fā)指南 VB.Net網(wǎng)絡(luò)數(shù)據(jù)庫整合應(yīng)用 Visual Basic或C#創(chuàng)建WS
Visual Basic.NET程序設(shè)計與應(yīng)用
VB開發(fā)手冊與指南
VB.Net與ASP.Net代碼手冊 VB 6.0中文版語言參考手冊 VB編程經(jīng)驗手冊
VB API 函數(shù)使用手冊 VBA高級開發(fā)手冊 VB速查手冊之技巧篇
VB.NET Remoting 技術(shù)手冊 VB.Net調(diào)試技術(shù)手冊 Visual Basic 6.0 組件工具指南
VB.Net字符串和正則表達式參考手冊 VBScript語言參考 VB6程序設(shè)計參考手冊
VB技巧問答10000例 VB5 開發(fā)WEB數(shù)據(jù)庫指南 VBscript英文幫助手冊
VB6控件參考手冊 VB6語言參考手冊 VB6程序員指南
VB5開發(fā)WEB數(shù)據(jù)庫指南 VBA 高級開發(fā)指南 VB中文版實用參考手冊
VB編程經(jīng)驗手冊 VB6組件工具指南 Visual Basic API函數(shù)參考手冊
Visual Basic 6.0實用參考手冊 Vsual Basic 6.0 控件參考手冊 Visual Basic.NET類設(shè)計手冊
Visual Basic.NET 語言參考手冊 Visual Basic.net 反射參考手冊 Visual Basic.net線程參考手冊
Visual Basic編程經(jīng)驗手冊 Visual Basic.Net專家指南 Visuai Basic.NET編程培訓(xùn)教程
VB速查手冊之技巧篇 VBscript英文幫助手冊
VB其它相關(guān)資源
VBSCRIPT函數(shù)方法速查 Visual Basic 第三方控件大全 Visual Basic 語言參考-函數(shù)速查
Access 2003 VBA 程序員參考書 VB、C快速進階 V3.0 VB系統(tǒng)資源
VB Script語言參考 VB編程技巧集 VBScript 教程及語言參考
VBScript與JScript實例教程 VB精華文摘 Visual Basic 術(shù)語解釋
VB常用函數(shù) VBScript學習 VB學習一點通
VB Script基礎(chǔ) VBScript 幫助手冊 Visual Basic 常用數(shù)值算法集
VB視頻相關(guān)
VB編程與應(yīng)用(電大)29講 編程經(jīng)典Visual Basic 用多媒體學Visual Basic
電子科大--- VB程序設(shè)計 VB.net多媒體教學
微軟中國的視頻教學,夠牛了吧,都是專家講課,從基礎(chǔ)講,,net2.0教學使用的是vb符合你的要求吧
地址是:
備注:你需要先注冊一下才能看教程,教程可以在線看,和下載看,比如你要看.net2.0,你注冊登陸后進入會員中心,然后你可以搜索一看自己要看的講座,比如你可以搜.net2.0,或者你按找講師來搜"蘇鵬"他就是那個用vb來講.NET2.0的那個人了,絕對是從零開始講起,記住,一定要先注冊,哦,忘記說了,如果你觀看了直播還會有小禮物的呵呵。