小程序:LRC歌词展开

王朝other·作者佚名  2006-01-09
宽屏版  字体: |||超大  

LRC大家都知道吧(不知道?就是那个带时间标签的文本歌词格式嘛~),很好用的东东~所以最近很多MP3Player也开始支持它了。笔者手上就有一个联想F520的MP3支持,不过有点小麻烦,这个MP3只支持一行一个时间标签,但是笔者手头上的LRC一行都有好些时间标签,像这样,MP3就会把后面的时间标签全部显示出来(晕~)

看来只能修改修改了~既然我们没办法修改MP3的固件,那就在LRC上动手脚吧~把他展开为每行一个时间标签不就得了~说干就干!

不过我懒得再作界面,所以直接从命令行参数中获取,此外这个纠错机制不是很完善(毕竟才一个过程),大家也可以帮忙修改~

代码如下:

Sub Main()

Dim sCommand() As String

Dim bTmp As Byte

Dim sTmp As String

Dim cFile As Collection

Dim iNum As Integer

Dim sTmp2 As String

Dim i As Integer

Dim j As Integer

Dim sTmp3 As String

Dim bIsAdd As Boolean

Set cFile = New Collection

sCommand = Split(Command, "*") '用*作分隔符,很简单,文件名不能带*,用?也可以

Open sCommand(0) For Input As #1

Do Until EOF(1)

Input #1, sTmp

iNum = 0

Do While ((Mid(sTmp, iNum * 9 + 1, 1) = "[") And (Mid(sTmp, (iNum + 1) * 9, 1) = "]"))

iNum = iNum + 1

Loop

sTmp2 = Right(sTmp, Len(sTmp) - 9 * iNum)

For i = 0 To iNum - 1

sTmp3 = Mid(sTmp, i * 9 + 2, 7)

If cFile.Count = 0 Then

cFile.Add "[" & sTmp3 & "]" & sTmp2

Else

bIsAdd = False

For j = 1 To cFile.Count

If Mid(cFile(j), 2, 7) > Mid(sTmp, i * 9 + 2, 7) Then

cFile.Add "[" & sTmp3 & "]" & sTmp2, , j

bIsAdd = True

Exit For

End If

Next j

If Not bIsAdd Then cFile.Add "[" & sTmp3 & "]" & sTmp2

End If

Next i

Loop

Close #1

Open sCommand(1) For Output As #1

For i = 1 To cFile.Count

Print #1, cFile(i)

Next i

Close #1

End Sub

大家应该还能看的懂吧~这个经过试验还是不错的~

最终通过环境:VB6+Win2000

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有