CRC校验程序2:通过命令提示符加载文本文档作为数据源进行CRC校验,输出校验码

将CRC校验函数封装在类中,通过控制台传参(文件的相对路径),进行CRC校验。

 1 using System;
 2 using System.Collections.Generic;
 3 using System.IO;
 4 using System.Linq;
 5 using System.Text;
 6 using System.Threading.Tasks;
 7
 8 namespace CRC
 9 {
10     class Program
11     {
12         static void Main(string[] args)
13         {
14             UInt32 LastCRC = 0x0000;
15             try
16             {
17                 FileStream FileBytes = new FileStream(args[0], FileMode.Open, FileAccess.Read);
18                 BinaryReader BinaryFile = new BinaryReader(FileBytes);
19                 while (true)
20                 {
21                     LastCRC = CalaCRC.CRCCalculating(BinaryFile.ReadByte());
22                 }
23                 FileBytes.Close();
24             }
25             catch (EndOfStreamException o)
26             {
27                 LastCRC = CalaCRC.CRCUpside(LastCRC);
28             }
29             Console.WriteLine(LastCRC);
30         }
31     }
32     class CalaCRC
33     {
34         public static UInt32 CRCCalculating(UInt32 CRCByte){
35             UInt32 CRCRegister = 0xFFFF;
36             CRCRegister = (CRCByte ^ CRCRegister);
37             CRCRegister = CRCRegister >> 1;
38             int i = 1;
39
40             for (; i <= 8; i++)
41             {
42                 if (CRCRegister % 2 == 0)
43                 {
44                     CRCRegister = CRCRegister ^ 0xA001;
45                     i--;
46                 }
47                 else
48                     CRCRegister = CRCRegister >> 1;
49             }
50             return CRCRegister;
51         }
52
53         public static UInt32 CRCUpside(UInt32 CRCRegister)
54         {
55             UInt32 CrcData = CRCRegister % 256;
56             CRCRegister = CRCRegister / 256;
57             CrcData = CrcData * 256;
58             CRCRegister = CRCRegister + CrcData;
59             return CRCRegister;
60         }
61     }
62 }

使用FileStream类读取文件,外部传参进去得到校验文件的相对路径,同时输出结果。

在Test.txt中有测试用的16进制数据原型:

在console中调用程序

下一篇,用窗体程序调用校验检查算法。

时间: 2024-10-16 10:20:39

CRC校验程序2:通过命令提示符加载文本文档作为数据源进行CRC校验,输出校验码的相关文章

.NET 未能加载文件或程序集&ldquo;xxx&rdquo;或它的某一个依赖项。试图加载格式不正确的程序。

症状: 未能加载文件或程序集"xxx"或它的某一个依赖项.试图加载格式不正确的程序.说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息.异常详细信息: System.BadImageFormatException: 未能加载文件或程序集"xxx"或它的某一个依赖项.试图加载格式不正确的程序.源错误:执行当前 Web 请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪信息确定有关异常原因和发

VB下的CRC校验程序

随着计算机技术的不断发展,在现代工业中,利用微机进行数据通讯的工业控制 应用得也越来越广泛.由于传输距离.现场状况等诸多可能出现的因素影响,计算机与受控设备之间的 通讯数据常会发生无法预测的错误.为了防止错误所带来的影响,一般在通讯时 采取数据校验的办法,而循环冗余码校验是最常用的校验方法之一.在实际使用 的各种现场总线协议中,数据帧的校验一般都采用这种检验方式. 一. 循环冗余码校验原理 循环冗余码校验英文名称为Cyclical Redundancy Check,简称CRC.它是利 用除法及余

CRC校验程序3:通过窗体程序打开txt文件获取数据源,进行逐字节CRC校验

在上一篇中,生成输出的CRC.exe将要成为这个窗体应用的内置模块. 新建一个windows窗体应用程序,叫做CRClick.将应用程序CRC.exe从Console应用程序中找到,复制到CRClick文件夹的Debuge文件夹下.同时还有测试用的Test.txt. 打开窗体设计页面,插入两个Textbox和一个按钮,长度Textbox用来显示被校验的文件的绝对路径,短Textbox显示最终校验码.按钮激发选择文件的窗口.设计如下: 对于按钮的触发事件,我们生成一个OpenFileDialog控

未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项。试图加载格式不正确的程序。

上一篇文章说到了DLL引用问题,主要是说的程序中如果使用过了反射,则反射创建对象的dll必须放在web应用程序的bin目录里.今天又遇到了一个类似的问题,mvc3的应用程序,发布到iis上时,报:”未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项.试图加载格式不正确的程序.“.原因很简单,因为我发的时候,我项目中的oracle提供的asp.net访问oralcle数据库的这个 Oracle.DataAccess.dll的本地复制没有设置为true(在项目引用里找到该引

引用64位dll时候出现 未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项。试图加载格式不正确的程序。

引用64位dll时候出现 未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项.试图加载格式不正确的程序. 需要在web.config增加配置 <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0"/> </startup>

未能加载文件或程序集“Common”或它的某一个依赖项。试图加载格式不正确的程序

原因:操作系统是64位的,但发布的程序引用了一些32位的ddl,所以出现了兼容性的问题解决方案一:如果是64位机器,IIS--应用程序池--高级设置--启用32位应用程序 :true.解决方案二:修改项目属性--生成--目标平台(比如,X86\X64)未能加载文件或程序集"Common"或它的某一个依赖项.试图加载格式不正确的程序

未能加载文件或程序集“MagickNet”或它的某一个依赖项。试图加载格式不正确的程序

未能加载文件或程序集"MagickNet"或它的某一个依赖项 简介:之前因为系统出了问题,重装了IIS,相应的本地项目站点也重新配置了, 但当我进行网站中的一个导出操作时(会跳转到excel导出站点),出现了 此错误,如下图: 操作场景: 错误效果: 解决方案:                在应用程序池中点击应用站点的应用程序池,选择高级设置,启用32位应用程序,就OK了

未能加载文件或程序集.....或它的某一个依赖项。试图加载格式不正确的程序。

错误提示:未能加载文件或程序集.....或它的某一个依赖项.试图加载格式不正确的程序.原因:操作系统是64位的,但发布的程序引用了一些32位的ddl,所以出现了兼容性的问题.解决方案一: 修改项目属性,将目标平台修改为X86.解决方案二: IIS中,将应用程序池的高级设置中的"启用32位应用程序"设置为true.未能加载文件或程序集.....或它的某一个依赖项.试图加载格式不正确的程序.

“未能加载文件或程序集file:///E:/MoneySet.dll或它的某一个依赖项,试图加载格式不正确的程序,行203,位置5. 文件:MReportSet.resx”,

http://bbs.csdn.net/topics/390334265 "未能加载文件或程序集file:///E:/MoneySet.dll或它的某一个依赖项,试图加载格式不正确的程序,行203,位置5. 文件:MReportSet.resx",