热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

VB:读取MP3的Tag(对网上流行版本改进)

网上有一段关于VB读取MP3Tag的代码,但不支持中文。这里我对这个代码进行改进。这是我改进后的代码:PublicTypeMp3tagArtistAsStringAr

网上有一段关于VB读取MP3Tag的代码,但不支持中文。这里我对这个代码进行改进。

这是我改进后的代码:

Public Type Mp3tag
        Artist   As String  'Artist  
存储歌手信息
        Album    As String  'Album    存储唱片专辑信息
        Title    As String 
'Title    存储标题信息
        sYear    As String  'Year     存储年代信息
        Comments As String 
'Comments 存储备注信息
        Genre    As Integer
'Genre    存储音乐风格序列
End Type

Public Function GetMp3Tag(FName As String) As Mp3tag
    Dim Artist   As String
    Dim Album   As String
    Dim Title   As String
    Dim Year   As String
    Dim Comments   As String
    Dim Genre   As Integer
    If FName = "" Then Exit Function
    If Dir(FName) = "" Then Exit Function
    Dim FileNum   As Integer
    FileNum = FreeFile '
得到一个自由的文件号
    Dim strInput() As Byte
   
Open FName For Binary Access Read As FileNum '以二进制形式打开文件
    If LOF(FileNum) <128 Then
       
Close FileNum
       
Exit Function
    End If
   
Seek FileNum, LOF(FileNum) - 127 '把文件指针移动到MP3信息处
   
ReDim strInput(2)
    Get FileNum, , strInput
    If StrConv(strInput, vbUnicode) <> "TAG" Then
'如果没有发现信息标识,就关闭文件
       
Close FileNum
       
GoTo Done
    End If
    On Error Resume Next
    ReDim strInput(29)
    Get FileNum, , strInput
    Title = StrConv(strInput, vbUnicode)
    Title = Left$(Title, InStr(1, Title, vbNullChar) - 1)
    Get FileNum, , strInput
    Artist = StrConv(strInput, vbUnicode)
    Artist = Left$(Artist, InStr(1, Artist, vbNullChar) - 1)
    Get FileNum, , strInput
    Album = StrConv(strInput, vbUnicode)
    Album = Left$(Album, InStr(1, Album, vbNullChar) - 1)
    ReDim strInput(3)
    Get FileNum, , strInput
    sYear = StrConv(strInput, vbUnicode)
    sYear = Left$(Year, InStr(1, Year, vbNullChar) - 1)
   
ReDim strInput(29)
    Get FileNum, , strInput
    Comments = StrConv(strInput, vbUnicode)
    Comments = Left$(Comments, InStr(1, Comments, vbNullChar) - 1)
   
ReDim strInput(0)
    Get FileNum, , strInput
    Genre =
Asc(strInput)
Done:
    GetMp3Tag.Title = Title
    GetMp3Tag.Artist = Artist
    GetMp3Tag.Album = Album
    GetMp3Tag.sYear = sYear
    GetMp3Tag.Comments = Comments
    If Genre <0 Or Genre > 254 Then Genre = 12
    GetMp3Tag.Genre = CInt(Genre)
   
Close FileNum
End Function


推荐阅读
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • This article discusses the efficiency of using char str[] and char *str and whether there is any reason to prefer one over the other. It explains the difference between the two and provides an example to illustrate their usage. ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了游标的使用方法,并以一个水果供应商数据库为例进行了说明。首先创建了一个名为fruits的表,包含了水果的id、供应商id、名称和价格等字段。然后使用游标查询了水果的名称和价格,并将结果输出。最后对游标进行了关闭操作。通过本文可以了解到游标在数据库操作中的应用。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
author-avatar
涐們的故事丘
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有