摘要:在日常的工作中,我们经常需要进行一些二进制文件或协议的读写操作,用C#解析二进制文件常常是一件比较麻烦且容易出错的工作,本文介绍了一种在C#中实现快速读写二进制文件通用的方法。以一个解析Mp3 ID3V1标签头为例,ID3V1标签保存在MP3文件尾的最后128个字节用来存放ID3信息,其格式具体如下表:字节长度 (字节)说明1-33存放"TAG"字符,表示ID3 V1.0标准。4-3330歌名34-6330作者64-9330专辑名94-974年份98-12730附注1281MP3音乐类别,共147种。如果要用C/C++语言来解析这个标签头,一般需要经过如下两个步骤:首先定义
阅读全文
摘要:C#使用BinaryReader类读取二进制文件BinaryReader类用来读取二进制数据,其读取数据的方法很多,常用方法如下:Close():关闭BinaryReader对象;Read():从指定流读取数据,并将指针迁移,指向下一个字符。ReadDecimal():从指定流读取一个十进制数值,并将在流中的位置向前移动16个字节。ReadByte():从指定流读取一个字节值,并将在流中的位置向前移动一个字节。ReadInt16():从指定流读取两个字节带符号整数值,并将在流中的位置向前移动两个字节。ReadInt32():从指定流读取两个字节带符号整数值,并将在流中的位置向前移动两个字节。R
阅读全文
摘要:/********************************************************************************* *Copyright(C),2010-2011,Your Company *FileName: // 文件名 *Author: //作者 *Version: //版本 *Date: //完成日期 *Description: //用于主要说明此程序文件完成的主要功能 //与其他模块或函数的接口、输出值、取值范围、 //含义及参数间的控制、顺序、独立及依赖关系 *Others: //其他内容说明 *Func...
阅读全文
摘要:使用VS2005以上版本(VS2005、VS2008、VS2010)编译在其他编译器下正常通过的C语言程序,你可能会遇到类似如下的警告提示:引用内容warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.1>c:/program files/microsoft visual
阅读全文
摘要:Cstring类CstringArray类CstringList类Ctiem类Cstring类Cstring提供了多种定义和赋值形式,下面通过范例来说明:一般形式 CString str1;//定义一个CString对象str1 CString str2("a string");//定义一个CString对象,在紧跟其后的括号内用字符串给其赋值 str1 = str2;//用运算符"="给对象赋值 CString str3 ="this is the third string"; CString str4( str3);//定义一个C
阅读全文
摘要:1、什么是static?答:static 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。2、为什么要引入static?答:函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一 个问题: 假如想将函数中此变量的值保存至下一次调用时,如何实现? 最轻易想到的方法是定义一个全局的变量,但定义为一个全局变量有许多缺点,最明显的缺点是破坏了此变量的访问范围(使得在此函数中定义的变量,不仅仅受此 函数控制)。3、什么时候用static?答:需要一个数据对象为整个类而非某个对象服务,同时又力求不破坏类
阅读全文