2.PRT文件的解析

本文详细介绍了如何解析PRT文件,包括6个主要步骤:检查文件存在、读取文件流、实例化结构体、定义字节数组、截取文件头数据以及读取并显示数据。此外,还提供了总文件大小的计算方法。通过示例代码展示了具体的实现过程。
摘要由CSDN通过智能技术生成

 #region   解析步骤

 //第一步:将结构体RipHEADER实例化为newRipHEADER     

RipHEADER newRipHEADER = new RipHEADER();

//第二步:定义一个字节数组,最大的容量为48字节                         

  byte[] byteArr = new byte[48];  

//第三步:定义一个变量来接收字节数组中的值,从第0字节到第48字节     

int r = myFileStream.Read(byteArr, 0, byteArr.Length);


            //访问数据:
            /*
             newRipHEADER.Singature = BitConverter.ToInt32(byteArr, 0);//第一个数据           
             newRipHEADER.XDPI = BitConverter.ToInt32(byteArr, 4);
             newRipHEADER.YDPI = BitConverter.ToInt32(byteArr, 8);
             newRipHEADER.BytesPerLine = BitConverter.ToInt32(byteArr, 12);
             newRipHEADER.Height = BitConverter.ToInt32(byteArr, 16);
             newRipHEADER.Width = BitConverter.ToInt32(byteArr, 20);
             newRipHEADER.PaperWidth = BitConverter.ToInt32(byteArr, 24);
             newRipHEADER.Colors = BitConverter.ToInt32(byteArr, 28);
             newRipHEADER.ColorBits = BitConverter.ToInt32(byteArr, 32);
             newRipHEADER.PageUnit = BitConverter.ToInt32(byteArr, 36);
             newRipHEADER.VsdMode = BitConverter.ToInt32(byteArr, 40);
             newRipHEADER.PageUnit = BitConverter.ToInt32(byteArr, 44)
            //newRipHEADER.SpotColor1 = (byte)BitConverter.ToInt32(byteArr, 45);
            //newRipHEADER.SpotColor2 = (byte)BitConverter.ToInt32(byteArr, 46);
            //newRipHEADER.SpotColor3 = (byte)BitConverter.ToInt32(byteArr, 47);
            //newRipHEADER.SpotColor4 = (byte)BitConverter.ToInt32(byteArr, 48);//最后一个数据
            */


            //打印数据:
            /*
            MessageBox.Show("Singature的值是:" + newRipHEADER.Singature.ToString() + " ;  " + "对应十六进制的值是:" + Convert.ToString(newRipHEADER.Singature, 16));
            MessageBox.Show("XDPI的值是:" + newRipHEADER.XDPI.ToString() + "  ; " + "对应十六进制的值是:" + Convert.ToString(newRipHEADER.XDPI, 16));
            MessageBox.Show("YDPI的值是:" + newRipHEADER.YDPI.ToString() + " ;  " + "对应十六进制的值是:" + Convert.ToString(newRipHEADER.YDPI, 16));
            MessageBox.Show("BytesPerLine的值是:" + newRipHEADER.BytesPerLine.ToString() + "   " + "对应十六进制的值是:" + Convert.ToString(newRipHEADER.BytesPerLine, 16));
            MessageBox.Show("Height的值是:" + newRipHEADER.Height.ToString() + " ;  " + "对应十六进制的值是:" + Convert.ToString(newRipHEADER.Height, 16));
            MessageBox.Show("Width的值是:" + newRipHEADER.Width.ToString() + "  ; " + "对应十六进制的值是:" + Convert.ToString(newRipHEADER.Width, 16));
            MessageBox.Show("PaperWidth的值是:" + newRipHEADER.PaperWidth.ToString());
            MessageBox.Show("Colors的值是:" + newRipHEADER.Colors.ToString() + " ;  " + "对应十六进制的值是:" + Convert.ToString(newRipHEADER.Colors, 16));
            MessageBox.Show("ColorBits的值是:" + newRipHEADER.ColorBits.ToString() + " ;  " + "对应十六进制的值是:" + Convert.ToString(newRipHEADER.ColorBits, 16));
            MessageBox.Show("
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值