delphi4arab منتديات دلفي للعرب
سؤال حول الملفات - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : سؤال حول الملفات (/showthread.php?tid=1127)



سؤال حول الملفات - virtual - 15-08-2009

السلام عليكم

قمت بكتابة كود بسيط يقوم ب تجميع الملفات الموجودة في ListBox ثم يحولها الى ملف واحد

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


لكن الحلقة تنفذ مرة واحدة فقط ثم يظهر خطأ . ماعرفت وين الخطأ



شكرا


سؤال حول الملفات - musvc - 15-08-2009

[COLOR="Indigo"]ليست لدي نسخة دلفي حديثة على جهازي في الوقت الحالي سوى الدلفي 2
و هناك اخطاء كثيرة فيها لكن نضرت الى السورس و لاحضت بعض الأمور

كود :
var F , tmp : FILE;
حولها الى :
كود :
var F , tmp : TextFile;

كود :
Reset(tmp,1);
حولها الى :
كود :
Reset(tmp);

جربها ربما تنفع :omg:[/COLOR]


سؤال حول الملفات - virtual - 15-08-2009

شكرا musvc

لكن الملف F هو bin اي file of byte و ليس text file . لانه سيخزن جميع انواع الملفات

جربت rest . باقي نفس المشكل .

هل انشاء ذاكرة ب getmem و تحريرها f reemem عدة مرات في نفس الحلقة لا يشكل خطأ ؟


سؤال حول الملفات - Effector - 17-08-2009

ايليت ذكرت نوع او تفاصيل الخطئ


سؤال حول الملفات - TF6M - 20-08-2009

1- يا أخي لماذا التعقيد (التعقيد <> الإحترافية) .
2- لم أصحح كل البرنامج أو أعمل شبيه له فقط تعديلات :

كود :
procedure TForm1.Button3Click(Sender: TObject); var F,T :File; Index : Word; buf : Byte; begin SD.Execute; If (SD.FileName = '') Or (Lb.Count = 0) Then Exit; {$I-} AssignFile(F,Sd.FileName); Rewrite(F,1); Seek(F,0); TrunCate(F); {$I+} If IoResult <> 0 Then Exit; Application.ProcessMessages; for Index := 0 to LB.Items.Count -1 do begin {$I-} AssignFile(T,Lb.Items[Index]); ReSet(T,1); Seek(T,0); {$I+} If IoResult <> 0 Then Exit; While Not Eof(T) Do Begin BlockRead(T,buf,1); BlockWrite(F,buf,1); End; CloseFile(T); End; CloseFile(F); end;

بالتوفيق ,,