01-10-12, 06:52 PM
كاتب الموضوع : !!! BoriS !!!
الفئة GZip : الفئة GZip تتيح لك ضغط البيانات من خلال استخدام Stream لتخزين البيانات ثم استخدام ال Method الخاصة بالفئة GZip لاجراء عملية ضغط البيانات
اهم الخصائص والطرق للفئة GZip :
Base Stream :
هده الخاصية تتيح لك عرض ال Stream الاساسى اى المستخدم فى عملية تخزين البيانات قبل ضغطها.
Can Read :
هده الخاصية تعرض لك ادا كان ال Stream يدعم عملية القراءة عند عملية فك ضغط الملف.
Can Seek :
هده الخاصية تعرض لك ادا كان ال Stream يدعم عملية التنقل داحل ال Stream
Can TimeOut :
هده الخاصية تعرض لك وقت الانتهاء من التعامل مع ال Stream
Can Write :
هده الخاصية تعرض لك ادا كان ال Stream قايل للكتابة عليه او لا
Length :
هو عبارة عن المساحة الخاصة بال Stream
Position :
وهى عبارة عن موقع المؤشر
Read Timeout :
هى خاصية تمكنك من ضبط او قراءة وقت انتهاء قراءة ال Stream
Write Timeout :
هى خاصية تمكنك من ضبط او قراءة وقت انتهاء الكتابة الخاص بال Stream
اما الطرق "
Close :
وهى طريقة لاغلاق ال Stream بعد اتمام العمليات عليه.
Flush :
هى طريقة لتنظيف اى Buffers للــStream وفرض التغييرات لتهيئتها للكتابة على المشغل او النظام.
Read :
هى طريقة لانجاز عملية القراءة المتتالية لعدد محدد من ال Bytes من مكان محدد Position داخل ال Stream ويقوم بعمل تحديث للمحث او محث القراءة (Position) عند نهاية ال Stream عند اتمام عملية القراءة.
Read Byte :
هى طريقة لعملية قراءة Byte واحد فقط واتمام عملية التحديث للمحث Position ودلك بتحريكة بالواحدة على اساس انه يقرء Single Byte
Write :
هى طريقة لكتابة عدد من ال Bytes وتقوم ايضا بتخديث ال Position .
Write Byte :
هى طريقة لكتابة Byte واحد فقط
بعد التعرف على خصائص وطرق الفئة GZip
الان كيف يتم عمل ضغط للبيانات بواسطةStream مضغوط Compression Stream
ال Streams المستخدمة فى عملية الضغط تختلف قليلا عن ال Streams عموما
كود :
[color=#000000][COLOR=#0000bb]Dim SourceFile [/color][color=#007700]as [/color][color=#0000bb]FileStream [/color][color=#007700]= [/color][color=#0000bb]File[/color][color=#007700].[/color][color=#0000bb]OpenRead[/color][color=#007700]([/color][color=#0000bb]IniFileName[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Dim destFile [/color][color=#007700]as [/color][color=#0000bb]FileStream [/color][color=#007700]= [/color][color=#0000bb]File[/color][color=#007700].[/color][color=#0000bb]Create[/color][color=#007700]([/color][color=#0000bb]OutFileName[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Dim CompStream [/color][color=#007700]as New [/color][color=#0000bb]GZipStream[/color][color=#007700]([/color][color=#0000bb]destfile [/color][color=#007700], [/color][color=#0000bb]CompressionMode[/color][color=#007700].[/color][color=#0000bb]Compress[/color][COLOR=#007700])
[/COLOR][/COLOR]
عند عملية القراءة :
كود :
[color=#000000][COLOR=#0000bb]Dim theByte [/color][color=#007700]As [/color][color=#0000bb]Integer [/color][color=#007700]= [/color][color=#0000bb]sourceFile[/color][color=#007700].[/color][color=#0000bb]ReadByte[/color][COLOR=#007700]()
While [/COLOR][color=#0000bb]theByte [/color][color=#007700]<> -[/color][COLOR=#0000bb]1
CompStream[/COLOR][color=#007700].[/color][color=#0000bb]WriteByte [/color][color=#007700]([/color][color=#0000bb]Ctype[/color][color=#007700]([/color][color=#0000bb]theByte [/color][color=#007700], [/color][color=#0000bb]Byte[/color][COLOR=#007700]))
[/COLOR][color=#0000bb]theByte [/color][color=#007700]= [/color][color=#0000bb]Sourcefile[/color][color=#007700].[/color][color=#0000bb]ReadByte[/color][COLOR=#007700]()
[/COLOR][color=#0000bb]End [/color][COLOR=#007700]While
[/COLOR][/COLOR]
اما عند عملية فك الضغط
كود :
[color=#000000][COLOR=#0000bb]Dim SourceFile [/color][color=#007700]As [/color][color=#0000bb]FileStream [/color][color=#007700]= [/color][color=#0000bb]File[/color][color=#007700].[/color][color=#0000bb]OpenRead [/color][color=#007700]([/color][color=#0000bb]inifilename[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Dim destFile [/color][color=#007700]As [/color][color=#0000bb]FileStream [/color][color=#007700]= [/color][color=#0000bb]File[/color][color=#007700].[/color][color=#0000bb]Create [/color][color=#007700]([/color][color=#0000bb]OutFileName[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Dim CompStream [/color][color=#007700]As New [/color][color=#0000bb]GZipStream [/color][color=#007700]([/color][color=#0000bb]SourceFile [/color][color=#007700], [/color][color=#0000bb]CompressionMode[/color][color=#007700].[/color][color=#0000bb]DeCompress[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Dim theByte [/color][color=#007700]As [/color][color=#0000bb]Integer [/color][color=#007700]= [/color][color=#0000bb]CompStream[/color][color=#007700].[/color][color=#0000bb]ReadByte[/color][COLOR=#007700]()
While [/COLOR][color=#0000bb]theByte [/color][color=#007700]<> -[/color][COLOR=#0000bb]1
destFile[/COLOR][color=#007700].[/color][color=#0000bb]WriteByte [/color][color=#007700]([/color][color=#0000bb]Ctype[/color][color=#007700]([/color][color=#0000bb]theByte [/color][color=#007700], [/color][color=#0000bb]Byte[/color][COLOR=#007700]))
[/COLOR][color=#0000bb]theByte [/color][color=#007700]= [/color][color=#0000bb]CompStream[/color][color=#007700].[/color][COLOR=#0000bb]ReadByte
End [/COLOR][COLOR=#007700]While
[/COLOR][/COLOR]