منتديات العلم و المعرفة

هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.
منتديات العلم و المعرفة

منتدى شامل و عام و في خدمة المعرفة الحقة و كل عام و أنتم بخير

مطلوب مشرفون للمنتدى........رشح نفسك بسرعة

    صمم برنامج للضغط وفك الظغط - فيجوال بيسك دوت نت -

    sido-boudiaf
    sido-boudiaf
    المدير العام
    المدير العام


    عدد المساهمات : 41
    نقاط : 54820
    السٌّمعَة : 0
    تاريخ التسجيل : 17/07/2009
    العمر : 33
    الموقع : ma3rifa.own0.com

    صمم برنامج للضغط وفك الظغط - فيجوال بيسك دوت نت - Empty صمم برنامج للضغط وفك الظغط - فيجوال بيسك دوت نت -

    مُساهمة  sido-boudiaf الأحد يوليو 19, 2009 1:01 am

    اولا ضغط الملفات
    ----الأرقام من اجل التوضيح ادناه
    كود:
    Imports System.IO
    Imports System.IO.Compression
    -----------------------------------------------
    --------------------------------------
    Try
    1-

    Dim SourceFile As New FileStream
    (Me.TextBox1.Text, FileMode.Open)
    2-
    Dim MyBuffer(SourceFile.Length) As
    Byte
    3-

    SourceFile.Read(MyBuffer, 0, CInt
    (MyBuffer.Length))
    4-
    SourceFile.Close()
    5-
    Dim DestinationFile As New
    FileStream(Me.TextBox2.Text, FileMode.Create)
    6-

    Dim CompressionObject As New
    GZipStream(DestinationFile,
    CompressionMode.Compress)
    7-
    CompressionObject.Write(MyBuffer, 0,
    MyBuffer.Length)

    8-
    CompressionObject.Close()
    Catch ex As Exception
    MsgBox(ex.Message)
    End Try

    1-وضع محتوى الملف الذي نريد ضغطه في متغير
    2-نحدد متغير يساوي حجم الملف
    3-نقرأ الملف و نضع محتواه في متغير
    4-نقوم باغلاق الملف
    5-انشاء مسار و الملف الذي سيحتوي الملف المضغوط
    6-ثم ننشأ كائن من نوع GZipStream
    7-نستخدم الكائن CompressionObject لوضع الملف المراد ضغطه ان صح التعبير
    8- نغلق الكائنCompressionObject
    و هذا للضغط
    -----------------------------------------------
    --------------------------------------

    اما فك ضغط الملفات:

    كود:
    Try Dim SourceFile As New FileStream(Me.TextBox3.Text, FileMode.Open) ' هنا سوف نقوم بفك الضغط Dim DecompressionObject As New GZipStream(SourceFile, CompressionMode.Decompress) ' نضع فيه حجم الملف بال بايت Dim SizeOctet(3) As Byte Dim position As Integer = CInt(SourceFile.Length - 4) SourceFile.Position = position 'نأخذ حجم الملف لكى نحوله لأنتيجر SourceFile.Read(SizeOctet, 0, 4) SourceFile.Position = 0 'هنا هنحوله لأنتيجر علشان الـ while Dim SizeFile As Integer = BitConverter.ToInt32(SizeOctet, 0) 'هنا هنحدد حجم البفر(buffer) Dim buffer(SizeFile + 100) As Byte Dim myOffset As Integer = 0 While True 'هنا يتم فك الضغط Dim DecompressedOctets As Integer = DecompressionObject.Read(buffer, myOffset, 100) 'اذا لم يعد هناك نخرج من while Octets If DecompressedOctets = 0 Then Exit While End If 'اعادة تعيين حجم الـ myoffset myOffset += DecompressedOctets End While 'دى شفناها قبل كده Dim DestinatinationFile As New FileStream(Me.TextBox4.Text, FileMode.Create) 'كتابة الملف DestinatinationFile.Write(buffer, 0, SizeFile) 'افراغ ال Bufffers DestinatinationFile.Flush() 'اغلاق الكائن DecompressionObject.Close() Catch ex As Exception MsgBox(ex.Message) End Try

    وجزاكم الله خيرا

      الوقت/التاريخ الآن هو الأربعاء مايو 15, 2024 8:09 am