قمت بكتابة كود بسيط يقوم ب تجميع الملفات الموجودة في ListBox ثم يحولها الى ملف واحد
الفكرة بسيطة نقوم بحلقة عدد التكرار فيها هو عدد الملفات الموجودة في ListBox في كل مرة نفتح الملف نقرأ محتواه في buffer ثم نزيده الى الملف النهائي . وهكذا حتى يصبح لدينا ملف واحد حجمه هو حاصل جمع حجم الملفات الموجودة في ListBox
لكن الحلقة تنفذ مرة واحدة فقط ثم يظهر خطأ . ماعرفت وين الخطأ
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;