首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么 判断一个十六进制文件是否包含有“00 00 01 FC”

2012-09-22 
如何 判断一个十六进制文件是否包含有“00 00 01 FC”?如何 判断一个十六进制文件是否包含有“00 00 01 FC”?(

如何 判断一个十六进制文件是否包含有“00 00 01 FC”?
如何 判断一个十六进制文件是否包含有“00 00 01 FC”?(如何根据帧格式)

[解决办法]

C# code
using System;using System.Text;using System.Windows.Forms;using System.IO;namespace fileContainTest{    public partial class TestForm : Form    {        string filePath = @"D:\VS2008\test\fileContainTest\file.txt";        public TestForm()        {            InitializeComponent();        }        private void btnTest_Click(object sender, EventArgs e)        {            string strFile = readFile(filePath);            if (strFile.Contains("00 00 01 FC"))                MessageBox.Show("含有");                    }        private string readFile(string path)        {            StreamReader fileReader = new StreamReader(filePath);            StringBuilder strBuildFile = new StringBuilder();            string fileLine="";                        while (fileLine != null)            {                fileLine = fileReader.ReadLine();                strBuildFile.Append(fileLine);            }            return strBuildFile.ToString();        }    }}
[解决办法]
C# code
           bool bFound = false;            int pos = -1;            string strFilename = @"E:\Users\matrixchen\Videos\day3part1_2MB_ch9.wmv";            FileStream stream = File.Open(strFilename, FileMode.Open);            byte b1 = 0x00;            byte b2 = 0x00;            byte b3 = 0x01;            byte b4 = 0xFC;             if (stream != null)            {                int baseLen = 102400;                byte[] buff = new byte[baseLen + 3];                int nRead = stream.Read(buff, 0, buff.Length);                int nBasePos = 0;                while (nRead > 3 && !bFound)                {                    for (int i = 0; i < nRead - 3; i++)                    {                        if (buff[i] == b1 && buff[i + 1] == b2 && buff[i + 2] == b3 && buff[i + 3] == b4)                        {                            bFound = true;                            pos = nBasePos + i;                            break;                        }                    }                    nBasePos += baseLen;                    stream.Seek(-3, SeekOrigin.Current);                    nRead = stream.Read(buff, 0, buff.Length);                }                stream.Close();                stream.Dispose();            } 

热点排行