如何获取大文件(1G左右)的CRC码....在线等候回复。 小文件的crc我可以先把文件读入到byte[]中,然后调用Crc(buffer, 0, buffer.Length);方法就可以得到需要的crc,但是对于特别大的文件,把打的文件读入内存中根本不现实,着急的等待您的答案。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 为什么要完全读出来呢,即使是crc,也是固定长度的算法,你可以每次读一部分数据,进行crc计算处理,然后再取,再处理,……,直至结束,然后看看你算出的crc值与存在结尾的值是否一样,如果一样,证明是正确的;否则是错误。FileReader支持读固定长度的数据。 对阿,你只要对传送的内容进行crc校验就行了 存crc的目的不就是为了进行校验吗,那么根据一定算法而算出来的,这个值不就是为了来判断数据是否有效,一般这个值不就是存在结尾吗(当然也可能存在其他地方)。 to 存在结尾的值 是什么东西,多谢了。你首先要了解你所使用的crc算法,要不然无法做了。 举个简单crc例子// Create crc byte private byte GetCrc( byte[] bData ){ const byte bBase = 0xFF; byte bReturn = bBase; if( bData.Length > 0 ) { for( int i = 0; i < bData.Length; i++ ) bReturn ^= bData[i]; } return bReturn;}// Check data in crc byteprivate bool CheckData( byte[] bData ){ const byte bBase = 0xFF; byte bReturn = bBase; if( bData.Length > 0 ) { for( int i = 0; i < bData.Length - 1; i++ ) bReturn ^= bData[i]; if( bReturn == bData[i] ) return true; } return false;} 不要全读,读定长的buffer来处理 我要做的东西是把一个大文件差分成小包发送给对方,每个包有自己的crc,整个文件有自己的crc,对方接受后,验证每个小包的crc,所有的包验证无误后,在重组文件,对方再计算整个文件的crc,然后跟我这里的crc比较,如果整个文件的crc也相同,表示传输正确,否则重传。小包的crc容易得到。大文件的crc如何得到。谢谢了。 winform判断图中黑框的长和宽 请问,如何保存软件的操作信息 C# SOCKET 文件传输的问题,请教高手啊!!!! xml节点和xml元素有啥区别啊? vs2008如何编译CS代码 ,并显示结果呢 TreeView树形节点问题 求一个数的平方 用什么函数? 求助!!! 在c#中如何使用WMI特权?小弟愿给100分 急急急!呀呀呀!分分分!如何将字符串转化为UTF-8的byte[]? 如何接收MIME邮件并动态解码 实在是解决不了了!---高手救救
// Create crc byte
private byte GetCrc( byte[] bData )
{
const byte bBase = 0xFF;
byte bReturn = bBase;
if( bData.Length > 0 )
{
for( int i = 0; i < bData.Length; i++ )
bReturn ^= bData[i];
}
return bReturn;
}// Check data in crc byte
private bool CheckData( byte[] bData )
{
const byte bBase = 0xFF;
byte bReturn = bBase;
if( bData.Length > 0 )
{
for( int i = 0; i < bData.Length - 1; i++ )
bReturn ^= bData[i];
if( bReturn == bData[i] )
return true;
}
return false;
}