小程式 LRC歌詞展開

2021-04-01 06:33:56 字數 1752 閱讀 9626

lrc大家都知道吧(不知道?就是那個帶時間標籤的文字歌詞格式嘛~),很好用的東東~所以最近很多***player也開始支援它了。筆者手上就有乙個聯想f520的***支援,不過有點小麻煩,這個***只支援一行乙個時間標籤,但是筆者手頭上的lrc一行都有好些時間標籤,像這樣,***就會把後面的時間標籤全部顯示出來(暈~)

看來只能修改修改了~既然我們沒辦法修改***的韌體,那就在lrc上動手腳吧~把他展開為每行乙個時間標籤不就得了~說幹就幹!

不過我懶得再作介面,所以直接從命令列引數中獲取,此外這個糾錯機制不是很完善(畢竟才乙個過程),大家也可以幫忙修改~

**如下:

sub main()

dim s***mand() 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 st***      as string

dim bisadd     as boolean

set cfile = new collection

s***mand = split(***mand, "*") '用*作分隔符,很簡單,檔名不能帶*,用?也可以

open s***mand(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

st*** = mid(stmp, i * 9 + 2, 7)

if cfile.count = 0 then

cfile.add "[" & st*** & "]" & 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 "[" & st*** & "]" & stmp2, , j

bisadd = true

exit for

end if

next j

if not bisadd then cfile.add "[" & st*** & "]" & stmp2

end if

next i

loop

close #1

open s***mand(1) for output as #1

for i = 1 to cfile.count

print #1, cfile(i)

next i

close #1

end sub

大家應該還能看的懂吧~這個經過試驗還是不錯的~

最終通過環境:vb6+win2000

LRC歌詞格式簡介

lrc歌詞文字中含有兩類標籤 一 標識標籤其格式為 標識名 值 ar 歌手名 artist藝術家 演唱者 ti 歌曲名 title題目,標題,曲目 al 名 album唱片集 by 編輯者 介詞 製作者 編輯人員 一般指lrc歌詞的製作人 二時間標籤,格式為 mm ss 或 mm ss.fff mm...

讀取LRC同步歌詞的類

下面就是這個類 code package lrc if gc.charcodeat j i 13 while gc.charcodeat j i 13 j i return fhz 將此檔案儲存為readlrc.as。注意 一定要把此as檔案放入乙個名為lrc的資料夾中,才可以使用。下面就用乙個小示...

使用lex來解析lrc歌詞檔案

剛學習lex的實踐.很簡單.lrc.l lex檔案,定義了time tag標記,以及操作 num 0 9 timetag n int yywrap 中間為空,沒有什麼要提前宣告的 num,timetag定義了識別乙個timetag的正規表示式 00 00 00 00.00 第乙個 後定義了找到乙個t...