آقا براتون یه سری توضیح با زبان ساده از الگوریتم های فشرده سازی فایل
ها اوردم بری کیف عالم رو بکنین ! که بعضایش کار منه و بعضیاش کار دوستانم !
لینک هارو برین دریفت کنین و نظر هم بدین !
http://www.csharp.persiangig.com/document/Alghorithm.zip
http://www.csharp.persiangig.com/document/Algorithm2.zip
http://techmix.persiangig.com/Compress[1].pdf
اینا همه به زبان فارسی هستند و خیلی هم ساده موضوع رو مطرح کردند و کار کردند خیلی مفیدن !!!!!
اما قسمت بعدی هم دوتا سورس مامانی تو دل برو دات نت {سی شارپ و وی بی} برای ااین الگو هاست امیدوارم مفید باشه
اولی الگوی انکد کردن با(( آر لی ای)) هست که به زبان سی شارپ و توسط من نوشته شده :
private string looped;//Dim looped() As String (Char Hayeh Tekrary!!!)
private string sh;
public string RLE(string str)
{
sh=null;
looped=str[0].ToString();
int len=str.Length;//Dim len As Integer=Len(str2)
char lastchr;//Dim lastchr As String
try
{
for(int b=1;b!=str.Length;b++)//For b=1 To Len(str2(i)
{
lastchr=str[b-1];
if(lastchr==str[b])
{
looped=looped+str[b];
}
else if(lastchr!=str[b])
{
looped+="|";
looped=looped+str[b];
}
}//End For
string[]after=looped.Split("|".ToCharArray());
for(int i=0;i!=after.Length;i++)
{
sh+=after[i].Length.ToString()+after[i].Substring(0,1);
}
//sh=sh.Replace("|","");
}
catch(System.Exception ea)
{
MessageBox.Show(ea.Message);
}
return sh;
}
الگوی بعدی هم الگوی ددیکد کردن این الگوریته که به زبان وی بی دات نت و توسط دوست عزیزم امیر نوشته شده :
Public Function RLD(ByVal TxtInput As String) As String
Dim nextB, newB, Tekrar, outT As String
Dim i, d As Integer
i = 1
Do Until i > Len(TxtInput)
nextB = Mid(TxtInput, i + 1, 1)
newB = Mid(TxtInput, i, 1)
If IsNumeric(newB) And IsNumeric(nextB) = False Then
For d = 1 To newB
Tekrar = Tekrar & nextB
Next
Else
If Len(Tekrar) > 0 Then
outT = outT & Tekrar
Tekrar = ""
Else
outT = outT & newB
End If
End If
i = i + 1
Loop
Return outT
End Function
خب امیدوارم مفید واقع شده باشه !!! آقا نظر یادتون نره ها !!!!