1. مبدأ قطع الملف/الجمع
قطع الملفات هو قطع ملف إلى عدة ملفات صغيرة. تتمثل الطريقة في قراءة كائن ملف في شكل "دفق الملف" ثم حفظه في ملفات وفقًا لحجم كتلة معين. مزيج الملف يعني الجمع بين العديد من الملفات في ملف واحد. على سبيل المثال ، يتم استخدام هذا المبدأ لأدوات التغليف (Wise). إذا كنت على دراية بمفهوم "التدفق" ، فسيكون من السهل تنفيذها. 2. إدراك
قم بإنشاء مشروع جديد في Delphi ، ثم أضف زرينين ، أحدهما تحرير ، واحد opendialog ، وواحد محفوظ إلى النموذج ، ثم قم بتغيير تعليق Button1 إلى "Cut" ، و Caption of Button2 to عناصر التحكم في السمات المحذوفة). انقر نقرًا مزدوجًا فوق الزر 1 و Button2 واكتب الرمز التالي:
// قطع الملف
الإجراء tform1.button1click (المرسل: tobject) ؛
var
أنا ، أردت من Fragsize ، realtowrite: عدد صحيح ؛
// إعلان كائنات دفق الملف
// instream هو كائن تدفق ملف مصدر الإدخال ، والتفوق هو كائن دفق ملفات قطع الإخراج
instream ، OutStream: tfilestream ؛
S: سلسلة.
يبدأ
إذا opendialog1.execute ثم
يبدأ
SAVEDIALOG1.TITLE: = "أدخل اسم ملف القطع الذي تريد حفظه" ؛
إذا كان حفظه 1.execute ثم
يبدأ
مطلوب من Fragsize: = strtoint (edit1.text) ؛
أنا: = 0 ؛
// قم بإنشاء كائن دفق ملف الإدخال بطريقة للقراءة فقط
instream: = tfilestream.create (
opendialog1.filename ، fmopenread) ؛
يحاول
// إذا لم يكن موضع المؤشر الحالي لدفق instream في النهاية ، فاقرأ البيانات وقم بتخزينها في ملف وفقًا لحجم الكتلة المحدد //
بينما (instream.position <instream.size) تفعل
يبدأ
S: = inttoStr (i) ؛
بينما الطول (s) <3 do s: = '0'+s ؛
s: = '.'+s ؛
// إنشاء امتداد الملف المقطوع ، استخدم ثلاثة أرقام كملحق لتسهيل مجموعة الملفات
// إذا كان حجم الكتلة المتبقية في Instream أصغر من حجم الكتلة المحددة ، احفظ رقم الكتلة المتبقية // بيانات في ملف
إذا instream.size - instream.position <wantedfragsize ثم
realtowrite: = instream.size - instream.position
آخر
Realtowrite: = Wantedfragsize ؛
// إنشاء كائن دفق ملف الإخراج
OutStream: = tfilestream.create (SaveAdialog1.Filename+S ، Fmcreate) ؛
يحاول
Outstream.copyfrom (instream ، realtowrite) ؛
INC (I) ؛
أخيراً
// حرر كائن دفق ملف الإخراج
Outstream.free ؛
نهاية؛
نهاية؛
أخيراً
instream.free ؛
نهاية؛
نهاية؛
نهاية؛
نهاية ملف
الإجراء tform1.button2Click (المرسل: tobject) ؛
var
أنا: عدد صحيح.
instream ، OutStream: tfilestream ؛
Sourcepath ، Fragname ، S: String ؛
يبدأ
opendialog1.title: = "الرجاء تحديد CUT FILE" ؛
إذا opendialog1.execute ثم
يبدأ
// احصل على المسار إلى ملف القطع المفتوح حاليًا
sourcepath: = extractFilePath (opendialog1.filename) ؛
// احصل على اسم ملف ملف القطع المفتوح حاليًا
fragname: = extractFilename (opendialog1.filename) ؛
SAVEDIALOG1.TITLE: = "الرجاء إدخال اسم الملف الذي تريد الجمع عنه" ؛
إذا كان حفظه 1.execute ثم
يبدأ
أنا: = 0 ؛
S: = inttoStr (i) ؛
بينما الطول (s) <3 do s: = '0'+s ؛
s: = '.'+s ؛
Fragname: = changefileStext (fragname ، s) ؛
// إذا كان هناك ملف يحتوي على امتداد .000 في الدليل ، قم بإنشاء دفق ملف الإخراج // كائن
إذا كانت fileexists (sourcepath+fragname) ثم
يبدأ
OutStream: = tfilestream.create (SaveAdialog1.Filename ، fmcreate) ؛
يحاول
// الجمع بين الملفات بزيادات مع ملحق الملف
في حين أن fileexists (sourcepath+fragname) تفعل
يبدأ
instream: = tfilestream.create (sourcepath+fragname ، fmopenread) ؛
يحاول
// اكتب بيانات دفق ملف الإدخال إلى دفق ملف الإخراج
Outstream.copyfrom (instream ، 0) ؛
INC (I) ؛
S: = inttoStr (i) ؛
بينما الطول (s) <3 do s: = '0'+s ؛
s: = '.'+s ؛
Fragname: = changefileStext (fragname ، s) ؛
أخيراً
instream.free ؛
نهاية؛
نهاية؛
أخيراً
Outstream.free ؛
نهاية؛
نهاية؛
نهاية؛
نهاية؛
نهاية؛
من بين العديد من الأدوات اليومية التي نستخدمها ، هناك العديد من كائنات "الدفق" التي سنستخدمها ، وستشمل وظائفها أيضًا مهمة للغاية. استيعابها مفيدة للغاية وأكثر أهمية.