منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[مشروع] [* محدث*] تقسيم ملف و تجميعه مرة اخرى. - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم امثلة ومشاريع VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=188)
+--- الموضوع : [مشروع] [* محدث*] تقسيم ملف و تجميعه مرة اخرى. (/showthread.php?tid=42102)



[* محدث*] تقسيم ملف و تجميعه مرة اخرى. - سعود - 07-08-22

أفضل تحديث(عبارة غير مكتمل اي لا يحتوي الميزة الاقل وهي استعادة التحميل مرة اخرى الفكرة موجودة لكن الارهاق وصل ذروته)
[مشروع] غير مكتمل (تقسيم و دمج الملفات البعيدة و القريبة)
____________________________________________________________________________________
[صورة مرفقة: arrow-up-30649.jpg]


[مشروع] مشروع تقسيم ملف بعيد وتجميع الاجزاء بعد التحميل



كلمة المرور:vb4arb
تسمية ملف المشروع (مش حالك)



RE: تقسيم ملف ودمجه او تجميعه مرة اخرى و شكرا - سعود - 27-08-22


اشكر كل من قدم معلومة في المنتدى عموما 
المعلومة اللي كنت محتاجا لمدة طويلة لمعرفة نهاية الملف موجودة هنا

ايضا اشكر الاخ Taha Okla
ففي هذه المشاركة تمكنت من معرفة كم ملف سيتم تقسيمه وكنت  بعدها فقط احتاج نهاية الملف والحمدلله .
كلمة المرور saud



RE: [* محدث*] تقسيم ملف و تجميعه مرة اخرى. - سعود - 27-08-22

آخر كلام حسنت اللي يمكنني تحسينه
جربت قبل قليل باكثر من حجم ونوع
جربت بحجم 5 جيجا نسخة ويندوز iso
وايضا بحجم مقارب .zip
وتم



RE: [* محدث*] تقسيم ملف و تجميعه مرة اخرى. - سعود - 27-08-22

هذا المشروع هو اللي كان ناقص وكملته ورفعته الان فقط لانسخه الى جهازي الاخر
الان المثالين مثل بعض بالاكواد فقط شكل وتسميات تفرق بينهم



RE: [* محدث*] تقسيم ملف و تجميعه مرة اخرى. - Taha Okla - 27-08-22

يعطيك العافية - صرفت عليه الكثير من الجهد ليصل لهذه الجمالية ..
-------------------------------------
ولكن قمت ببعض التعديلات :
تم التعديل على المثال - بحيث تتطابق احجام المخرجات (عدا الاخير) .
تم التعديل على تسمية الملفات بحيث لا يعطي أصفار اطول من عدد الملفات.
تم التعديل على سرعة التقسيم بحيث يبدو شريط التقدم يعمل ببطئ مهما كان حجم الملف(وهو تقدم فعلي وليس وهمي).

طبعاً الفضل الأول يبقى لصاحب الفكرة للاخ المتميز (سعود الشرارات)


RE: [* محدث*] تقسيم ملف و تجميعه مرة اخرى. - سعود - 27-08-22

إقتباس :تم التعديل على تسمية الملفات بحيث لا يعطي أصفار اطول من عدد الملفات.
هذي لحالها تحتاج وقت للفهم .
رائع بارك الله فيك.


RE: [* محدث*] تقسيم ملف و تجميعه مرة اخرى. - Taha Okla - 27-08-22

(27-08-22, 10:06 AM)سعود كتب :
إقتباس :تم التعديل على تسمية الملفات بحيث لا يعطي أصفار اطول من عدد الملفات.
هذي لحالها تحتاج وقت للفهم .
رائع بارك الله فيك.

الطريقة بسيطة ..
1 - نحسب عدد الملفات الناتجة (المخرجات) + 1
2 - نحسب طول سلسلة الرقم (يعني كم خانة).
3 - نستعين بالدالة (StrDup) لتكرار خانة معينة عددة مرات (وهي الصفر) بعدد خانات سلسلة الرقم (الذي هو عدد الملفات الناتجة).
4 - نجعل رقم الملف (متغير يحسب عدد الملفات الناجة مع كل صنع ملف جديد) يدخل السلسلة السابقة ويأخذ تنسيقها.
5 - وفي الختام السلام.


RE: [* محدث*] تقسيم ملف و تجميعه مرة اخرى. - سعود - 27-08-22

(27-08-22, 10:12 AM)Taha Okla كتب :
(27-08-22, 10:06 AM)سعود كتب :
إقتباس :تم التعديل على تسمية الملفات بحيث لا يعطي أصفار اطول من عدد الملفات.
هذي لحالها تحتاج وقت للفهم .
رائع بارك الله فيك.

الطريقة بسيطة ..
1 - نحسب عدد الملفات الناتجة (المخرجات) + 1
2 - نحسب طول سلسلة الرقم (يعني كم خانة).
3 - نستعين بالدالة (StrDup) لتكرار خانة معينة عددة مرات (وهي الصفر) بعدد خانات سلسلة الرقم (الذي هو عدد الملفات الناتجة).
4 - نجعل رقم الملف (متغير يحسب عدد الملفات الناجة مع كل صنع ملف جديد) يدخل السلسلة السابقة ويأخذ تنسيقها.
5 - وفي الختام السلام.

الله يسلمك و يبارك فيك


RE: [* محدث*] تقسيم ملف و تجميعه مرة اخرى. - سعود - 28-08-22

السلام عليكم ورحمة الله و بركاته
التحديث للمشروع الثاني ونفس الشي مناسب للاول وهو تعديل تسمية الملف بعد تعديل الاخ الكريم بارك الله فيه و له.
سيكون تنسيق الاسم الجديد هكذا:
PHP كود :
A7mad_saud.zip.Total27part01 
بالكود التالي:
اولا نعرف متغير باي اسم وتكون قيمته هي عدد الملفات
PHP كود :
       Dim allgroups As Long
        If mo 
0 Then
            allgroups 
= (rmain 1)
 
       ElseIf mo 0 Then
            allgroups 
rmain
        End 
If 
و عند التسمية نكتب كود:
PHP كود :
       Dim newfile As String folder fn ".Total" allgroups "part" & (n1 1).ToString(StrDup(Len(rmain.ToString), "0")) 
هذا بالنسبة لعملية الـ split اما الـ merge :
PHP كود :
       Dim newfilename As New IO.FileInfo(lst(0))
 
       Dim fn As String newfilename.Name
        fn 
Mid(fn1fn.LastIndexOf(".")) 
الان fn  هو الاسم الاصلي بعد حذف الزيادة .
كود زر الدمج بعد التعديل:
PHP كود :
       If txtfolder.Text.Trim "" Then Exit Sub
        folder 
txtfolder.Text
        Dim s 
As New FolderBrowserDialog
        If s
.ShowDialog Windows.Forms.DialogResult.OK Then
            th 
= New Threading.Thread(AddressOf merge)
 
           If th.IsAlive False Then
                btnsplit
.Enabled False
                btnstopsplit
.Enabled False
                btnmerge
.Enabled False
                btnstopmerge
.Enabled True
                th
.Start(s.SelectedPath "\")
            End If
        End If 
استخدمنا تحديد مجلد لوضع الملف المدموج الجديد والاسم بخطوة الدمج حيث ناخذ اسم اول ملف فقط لتوليد المسمى الاصلي.

اذا لم تتضح فالمثال مرفق من غير كلمة مرور


RE: [* محدث*] تقسيم ملف و تجميعه مرة اخرى. - سعود - 28-08-22

المثال الاول ايضا تم تحديثه ليستخدم افضل ما يمكن والشكر لله ثم للاخ الكريم Taha Okla