歌词文件解析(一):LRC格式文件的解析

  LRC是英文lyric(歌词)的缩写,被用做歌词文件的扩展名.以lrc为扩展名的歌词文件可以在各类数码播放器中同步显示.LRC 歌词是一种包含着“*:*”形式的“标签(tag)”的基于纯文本的歌词专用格式.



1.标识标签(ID-tags)

[ar:艺人名]

[ti:曲名]

[al:专辑名]

[by:编者(指编辑LRC歌词的人)]

[offset:时间补偿值] 其单位是毫秒,正值表示整体提前,负值相反.这是用于总体调整显示快慢的.

[ti:山丘]
[ar:李宗盛]
[offset:0]



2.时间标签(Time-tag)

[mm:ss:fff]具体歌词内容

[00:19.59] 想说却还没说的 还很多
[00:28.97] 攒着是因为想写成歌
[00:33.91] 让人轻轻地唱着 淡淡地记着


Public Class LyricClass
    Structure LyricStructre ‘歌词结构类型
        Dim Count As Integer
        Dim LyricTime As List(Of Integer) ‘每行歌词的时间序列
        Dim LyricString As List(Of String) ‘每行歌词的字符串序列
    End Structure
    Structure InformationStructre ‘歌词信息结构类型
        Dim Author As String ‘作者名[ar]
        Dim Title As String ‘歌曲名[ti]
        Dim Album As String ‘专辑名[al]
        Dim Editor As String ‘编者[by]
        Dim Offset As Integer ‘时间补偿值[offset]
    End Structure
    Public LyricData As New LyricStructre With {.LyricTime = New List(Of Integer), .LyricString = New List(Of String)}
    Public LyricInf As New InformationStructre
    Public isLoadFail As Boolean = False ‘是否加载失败
    Public Sub New(ByVal FileName As String)
        LoadLyrics(FileName)
    End Sub
    Public Sub LoadLyrics(ByVal FileName As String)
        Dim str As String
        LyricData.Count = 0
        LyricData.LyricTime.Clear()
        LyricData.LyricString.Clear()
        If My.Computer.FileSystem.FileExists(FileName) = True Then
            str = My.Computer.FileSystem.ReadAllText(FileName, System.Text.Encoding.Default)
            Dim tempString As String
            For Each SubString As String In Split(str, vbCrLf)
                tempString = Mid(SubString, 2, 2)
                If IsNumeric(tempString) = True Then
                    LyricData.count += 1
                    LyricData.LyricTime.Add(Mid(SubString, 2, 2) * 60 * 100 + Mid(SubString, 5, 2) * 100 + Mid(SubString, 8, 2))
                    LyricData.LyricString.Add(Mid(SubString, SubString.IndexOf("]") + 2))
                ElseIf tempString = "ar" Then
                    LyricInf.Author = Split(Split(SubString, ":")(1), "]")(0)
                ElseIf tempString = "ti" Then
                    LyricInf.Title = Split(Split(SubString, ":")(1), "]")(0)
                ElseIf tempString = "al" Then
                    LyricInf.Album = Split(Split(SubString, ":")(1), "]")(0)
                ElseIf tempString = "by" Then
                    LyricInf.Editor = Split(Split(SubString, ":")(1), "]")(0)
                ElseIf tempString = "of" Then
                    LyricInf.Offset = Split(Split(SubString, ":")(1), "]")(0)
                End If
            Next
        Else
            isLoadFail = True ‘加载失败
        End If
    End Sub
End Class
时间: 2024-10-11 22:49:49

歌词文件解析(一):LRC格式文件的解析的相关文章

歌词文件解析(二):LRC格式文件的绘制

通过对LRC文件的解析,可以轻松实现歌词可视化. 函数名: paintLyrics(ByVal pBox As PictureBox, ByVal CurrentPosition As Integer, ByVal type As Boolean, Optional ByVal pLyric As LyricClass = Nothing) 参数: pBox:用于绘制歌词的Picturebox CurrentPosition:当前歌词的时间进度,单位为秒(Second) type:值为True时

【转】java将excel文件转换成txt格式文件

在实际应用中,我们难免会遇到解析excel文件入库事情,有时候为了方便,需要将excel文件转成txt格式文件.下面代码里面提供对xls.xlsx两种格式的excel文件解析,并写入到一个新的txt文件中,数据以分隔符逗号","隔开. excel文件如图所示: 转换后的txt文件: 需要依赖4个jar包: package com.xuan.excel; import java.io.BufferedWriter; import java.io.File; import java.io.

如何将pdf文件转换成cad格式文件

pdf文件是一个封闭性文件,文件不仅不容易编辑修改,而且还可能被加密了,那么如何将pdf文件转换成cad格式文件呢? 下面小编教大家使用pdf转换器实现以上操作,具体步骤如下. 第一步:搜索迅捷pdf在线转换器(http://app.xunjiepdf.com/pdf2cad),找到相关页面点击进入在线网站主页面,进入页面后,用我们鼠标点到文档转换,找到CAJ转Word那个栏目. 第二步:点击"选择文件"选择需要处理的文件.如果想要一次性处理多个文件,那么我们可以继续添加文件(批量转换

CAD文件转换成DWF格式文件怎么在转换器中转换?

CAD文件转换成DWF格式文件怎么在转换器中转换?大家都知道DWF文件是一种高度压缩.开放.安全的文件格式,它可以将丰富的设计数据高效的分发给需要查看.评审或者打印这些数据的人看,因为在编辑器中编辑完的图纸都是dwg格式的,所以就需要将CAD图纸进行转换,那CAD文件转换成DWF格式文件怎么在转换器中转换?具体要怎么来进行操作?下面小编就来教教大家,想要了解的朋友也可以一起来看看,希望能够帮助到你们. 第一步:打开电脑,在电脑桌面上任意的打开一个浏览器,在浏览器的搜索框中搜索迅捷CAD转换器,然

python:将xml格式文件转换成json格式文件

由于json格式的文件在处理起来,有很强的便利性,而工作中每天产生大量的xml格式的文件,所以有需求将xml格式的文件转换成json格式的文件.下面直接贴出代码,有两个版本,根据需求自由选择: #!/usr/bin/python # -*- coding: utf-8 -*- #Function:Xml_To_Json #version 1.0 #Author: Herman #需要用到的两个模块 import xmltodict; import json; #定义函数 def pythonXm

Excel文件相关:XLS格式文件基本操作

1.添加引用 添加引用->Com->Microsoft Excel 9.0 Object Library(对应Excel2000) *Microsoft Excel 11.0 Object Library(对应Excel2003)  2.新建对象 实例化 Dim myExcel as New Excel.Application() 添加工作簿 myExcel.Workbooks.Add() 打开工作簿 myExcel.Workbooks.Open("FileName as Strin

Dicom格式文件解析器

转自:http://www.cnblogs.com/assassinx/archive/2013/01/09/dicomViewer.html Dicom全称是医学数字图像与通讯,这里讲的暂不涉及通讯那方面的问题 只讲*.dcm 也就是diocm格式文件的读取,读取本身是没啥难度的 无非就是字节码数据流处理.只不过确实比较繁琐. 分析: 整体结构先是128字节所谓的导言部分,说俗点就是没啥意义的破数据 跳过就是了,然后是dataElement依次排列的方式 就是一个dataElement接一个d

正确的打开DWG格式文件用这个办法

CAD文件如今在许多的领域当中都会使用到,DWG格式文件作为最常使用的CAD文件图纸,自然经常会被我们使用到,如果我们想要对DWG格式文件进行查看和编辑,那么我们应该怎么进行操作呢?想要打开DWG格式文件,就需要使用专业的CAD文件编辑器打开.那么打开DWG格式文件正确的方法是什么? 一.什么软件可以打开DWG格式文件 打开DWG格式文件正确的方法就是使用迅捷CAD编辑器(官网:http://cad.xjpdf.com)这款专业的CAD文件编辑软件进行打开.这款软件支持多种CAD文件格式,其中就

Office文件转换PDF格式文件

1 /// <summary> 2 /// 把Word文件转换成为PDF格式文件 3 /// </summary> 4 /// <param name="sourcePath">源文件路径</param> 5 /// <param name="targetPath">目标文件路径</param> 6 /// <returns>true=转换成功</returns> 7 p