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
|