- рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ
- рд▓рдЧрднрдЧ рдХрд┐рд╕реА рдЪреЗрдХрд╕рдо рд╕реЗ рддреБрд▓рдирд╛ рдХрд░рдХреЗ рд╡рд╕реНрддреБ рдХреА рд╕рд╣реА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред
рдЕрдВрддрд┐рдо рд▓рдХреНрд╖реНрдп:
- рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдореИрдЪреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред
рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдПрдХ рдкреНрд░рддреНрдпрдп рдХрд╛ рдкреЗрдбрд╝ рдмрдирд╛рдирд╛ рд╣реИ , рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдЪреЗрдХрд╕рдо рдХреЗ рдПрдХ рдмрд╛рдЗрдЯ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдЕрдЧрд▓реА рд╡рд╕реНрддреБ рдХреЗ рдЪреЗрдХрд╕рдо рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░, рд╣рдо рдкреЗрдбрд╝ рдХреА рдЬрдбрд╝ рд╕реЗ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЪрд▓рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЕрдЧрд░ рд╣рдореЗрдВ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рдЕрдЧрд▓реЗ рдмрд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдиреЛрдб рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдмрдирд╛рдПрдВред рдЪреЗрдХрд╕рдо рдХреЗ рдЕрдВрдд рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдФрд░ рдЕрдВрддрд┐рдо рдиреЛрдб рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЗрд╕рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдирддреАрдЬрддрди, рд╣рдо рдЕрдВрдд рдиреЛрдбреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдпрджрд┐ рдЕрдВрдд рдиреЛрдб рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╡рд┐рд╡рд░рдг рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдорд╛рди рд╣реИрдВред
рдореИрдВ рдмреЗрд╣рддрд░ рд╕рдордЭ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдкрд╛рда рдХрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рджреЗрддрд╛ рд╣реВрдВ, рдЬрд┐рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
using System;
using System.Collections. Generic ;
/// <summary>
///
/// </summary>
public class HashObject
{
public string attribute1 { get ; set ; }
public string attribute2 { get ; set ; }
}
/// <summary>
/// ,
///
///
/// </summary>
public class HashTreeNode
{
/// <summary>
///
/// </summary>
private byte myPart;
public byte MyPart
{
get { return myPart; }
}
public HashTreeNode( byte part)
{
myPart = part;
}
/// <summary>
/// ,
/// </summary>
public List <HashObject> files = null ;
/// <summary>
///
/// </summary>
private List <HashTreeNode> NextNodes = new List <HashTreeNode>();
/// <summary>
///
/// </summary>
public HashTreeNode FindEndNode( byte [] crc, int position)
{
HashTreeNode endNode = FindSubNodes(crc[position]);
if (position < crc.Length - 1)
return endNode.FindEndNode(crc, position + 1);
else return endNode;
}
/// <summary>
/// /
/// </summary>
private HashTreeNode FindSubNodes( byte part)
{
lock (NextNodes)
{
for ( int i = 0; i < NextNodes.Count; i++)
if (NextNodes[i].MyPart.Equals(part))
return NextNodes[i];
NextNodes.Add( new HashTreeNode(part));
return NextNodes[NextNodes.Count - 1];
}
}
}
/// <summary>
/// ,
/// </summary>
public class HashTree
{
/// <summary>
///
/// </summary>
List <HashTreeNode> Nodes = new List <HashTreeNode>();
/// <summary>
///
/// ,
/// </summary>
/// <param name="crc">Crc32 </param>
/// <returns></returns>
public HashTreeNode CheckOnTree( byte [] crc)
{
HashTreeNode root = FindNode(crc[0]);
return root.FindEndNode(crc, 1);
}
/// <summary>
///
/// </summary>
private HashTreeNode FindNode( byte part)
{
lock (Nodes)
{
for ( int i = 0; i < Nodes.Count; i++)
if (Nodes[i].MyPart.Equals(part))
return Nodes[i];
Nodes.Add( new HashTreeNode(part));
return Nodes[Nodes.Count - 1];
}
}
}
* This source code was highlighted with Source Code Highlighter .
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХрд╛рдо рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдПрдХ HTML рд░рд┐рдкреЛрд░реНрдЯ рдлрд╝рд╛рдЗрд▓ рдорд┐рд▓рддреА рд╣реИред
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ Microsoft Visual Studio 2008 рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ Windows x86 рдХреЗ рддрд╣рдд рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдлреЛрдЯреЛ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдлрд╝реЛрд▓реНрдбрд░ рдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо:
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ: 4326
рдЗрди рддрд╕реНрд╡реАрд░реЛрдВ рдореЗрдВ рд╕реЗ: 4131
рдЫрд╡рд┐ рд╡рдЬрди: 8.33 рдЬреАрдмреА
рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЦреЛрдЬ рд╕рдордп: рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдФрд░ рд░рд┐рдкреЛрд░реНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 117 рд╕реЗрдХрдВрдб (2 рдорд┐рдирдЯ) + 6 рд╕реЗрдХрдВрдбред
рдорд┐рд▓рд╛: 90 рдбреБрдкреНрд▓рд┐рдХреЗрдЯред
рдЖрд╡реЗрджрди рдФрд░ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдВ:
ifolder.ru/19211139
рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ, рддреЛ рдЫрд╡рд┐рдпреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╛рдЗрд▓реЛрдВ рдХреА рдЬрд╛рдВрдЪ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рджреНрд╡рд╛рд░рд╛, рдлрд╝рд╛рдЗрд▓ рд╣реЗрдбрд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдХреЗ рдХреА рдЬрд╛рддреА рд╣реИред Signatures.cs рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╡рд░реНрдЧ рд╣реИред
рдкреЗрд╢реЗрд╡рд░реЛрдВ:
- рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЙрдЪреНрдЪ рдЧрддрд┐
- рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рдбреЗрдЯрд╛ рднрдВрдбрд╛рд░рдг рдореЗрдВ рдЖрд╕рд╛рдиреА
рд╡рд┐рдкрдХреНрд╖:
- рд╕рдВрдкреВрд░реНрдг рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рд░реИрдо рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред рдЕрдЧрд░ рдЪрд┐рддреНрд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реИрдХрдбрд╝реЛрдВ рдпрд╛ рд▓рд╛рдЦреЛрдВ рдореЗрдВ рдорд╛рдкреА рдЬрд╛рдПрдЧреА, рддреЛ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдкреЗрдбрд╝ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрд╕рдХреЗ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдпрд╛ рджреВрд╕рд░реЗ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреА рдЦреЛрдЬ рдХрд░реЗрдВред
рдореИрдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХрд╛ рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛, рдЬреЛ рдкрдж рдкрд░ рд░рд╣рддреЗ рд╣реИрдВ, рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдЬреНрдЮрд╛рдд рдмреЗрд╣рддрд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдкреНрд░рджрд╛рди рдХрд░реЗрдВрдЧреЗ рдпрд╛ рд╡рд░реНрдгрд┐рдд рдХрдорд┐рдпреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВрдЧреЗред