الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تقسيم الملف وإعادة جمعه (split And Merge Files)

بدأه tahasit في 13 أغسطس 2009 · 1 رد · 664 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه ،،

سوف نقوم ببناء إجرائيتان (procedure) من أجل هذا :

الإجراء الأول من خلاله نقوم بتقسيم الملف وتعريف فورمات جديدة(EXT) للملفات الناتجة وفي حالتنا هنا إخترت :.Arabteam2000_

procedure SplitFile(FileName : TFileName; FilesByteSize : Integer) ;
var
A, B: TFileStream;
AB : integer;
SplitName: String;
begin A := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite) ;
try
for AB := 1 to Trunc(A.Size / FilesByteSize) + 1 do
begin SplitName := ChangeFileExt(FileName, Format('%s%d', ['.Arabteam2000_',AB])) ;
B := TFileStream.Create(SplitName, fmCreate or fmShareExclusive) ;
try
if A.Size - A.Position < FilesByteSize then
FilesByteSize := A.Size - A.Position;
B.CopyFrom(A, FilesByteSize) ;
finally
B.Free;
end;
end;
finally
A.Free;
end;
end;

الإجراء الثاني نقوم من خلاله بتجميع الأجزاء الناتجة عن عملية التقسيم الأولى :

procedure MergeFiles(FirstSplitFileName, OutFileName : TFileName) ;
var
A, B: TFileStream;
AB: integer;
begin AB := 1;
A := TFileStream.Create(OutFileName, fmCreate or fmShareExclusive) ;
try
while FileExists(FirstSplitFileName) do
begin B := TFileStream.Create(FirstSplitFileName, fmOpenRead or fmShareDenyWrite) ;
try
A.CopyFrom(B, 0) ;
finally
B.Free;
end;
Inc(AB) ;
FirstSplitFileName := ChangeFileExt(FirstSplitFileName, Format('%s%d', ['.Arabteam2000_',AB])) ;
end;
finally
A.Free;
end;
end;

بعد كتابة الإجرائين نضع مايلي على الفورم :

4 Button

2 Opendialog

2 Edit

1 ComboBox يكون محتواه كالتالي :(64.128.256.512.1024.10240.102400....)حيث أن هذه القيم تمثل عدد البايتات التي سنقسم عليها حجم الملف والخيار نتركه للمستخدم

ليكون الشكل في النهاية كالتالي:

post-145519-1250152814_thumb.png

ربما يكون المثال في حاجة لبعض التعديل والتنقيح

والمهم دائما هو الفكرة

تجدون المثال مع المرفقات

تم حذف المرفق بسبب احتواءه على فيروس, بعد تنبيه الاخ tahasit جزاه الله خيراً, لذلك يرجى من الذين قاموا بتحميل الملف ان ينتبهوا إلى الامر.

تم تعديل هذه المشاركة بواسطة Wael Dalloul في 26 أغسطس 2009 في 11:02

986902102.jpg
#2

السلام عليكــم ورحمـة الله وبركاتــه ،،

ارجو من كل من قام بتحميل المثال المرفق في المشاركة الأولى فوق أن ينتبه لأن المثال مرفق بفيروس W32.induc

وأعتذر لكل الأعضاء الذين قامو بتحميل المثال المرفق

يمكنكم معالجة المشكلة من خلال الروابط التالية :

/index.php?showtopic=202712

http://www.delphi4arab.com/forum/showthread.php?t=1733

معذرة مرة أخرى

تم تعديل هذه المشاركة بواسطة tahasit في 25 أغسطس 2009 في 23:35

986902102.jpg

مواضيع مشابهة