PDA

View Full Version : ترکیب فایل ها با استفاده از tstream و tfilestream



hamidele
سه شنبه 02 تیر 1388, 17:21 عصر
سلام به دوستان عزیز و عزیزان دوست:لبخندساده:

چطور میشه چند تا فایل رو با هم ترکیب(merge) کرد؟
در این مورد تقریبا تمام سایت رو چرخیدم ولی به نتیجه ی مطلوبی نرسیدم. من می خوام دوفایل اجرایی (مثل فابل 1 فایل 2)رو با هم ترکیب کنم که با اجرای حاصل ترکیب اولی اجرا بشه که اولی کارش اینه که دومی رو از حاصل ترکیب جدا می کنه و تو یه tfilestream می ریزه و در صورت لازم اونو اجرا میکنه!
یه جا تو سایت به addtostream برخوردم که هیچ جا unit ش رو ندیدم!
پیشاپیش از کمک و همیاریتون تو این بحث تشکر میکنم:لبخندساده:

hamidele
یک شنبه 07 تیر 1388, 19:12 عصر
بازم سلام به همه ی اساتید عزیزم:لبخندساده:
میگن عاقبت جوینده یابنده است!
بعد از کلی انتظار هیچ جوابی از دوستانم نشنیدم! اما بازم ممنون که به اینجا سر زدید!:لبخندساده:
من با این کد تونستم دو تا فایل اجرایی ( و البته هر نوع فایل دیگه ای ) رو به هم وصل کنم !


function Merge2EXE(file1, file2, file3: String):string;
var
Stream1, Stream2, NewFile:TFileStream;
MStream:TMemoryStream;
NewFileName:string;
begin
try
// get back up of file2 .
CopyFile(pansichar(file2),pansichar(file2+'.bak'), false);
Stream1 := TFileStream.Create(file1, fmOpenReadWrite);
Stream2:= TFileStream.Create(file2, fmOpenReadWrite);
MStream:=TMemoryStream.Create;
NewFile :=TFileStream.Create(file3, fmCreate);
MStream.Seek(0,soFromBeginning);
Stream2.Seek(0,soFromBeginning);
Stream1.Seek(0,soFromBeginning);
NewFile.Seek(0,soFromBeginning);
MStream.LoadFromStream(Stream1);
MStream.SaveToStream(NewFile);
MStream.Free;
MStream:=TMemoryStream.Create;
MStream.Seek(0,soFromBeginning);
MStream.LoadFromStream(Stream2);
MStream.SaveToStream(NewFile);
Stream1.Free;
Stream2.Free;
MStream.Free;
NewFile.Free;
NewFileName:=file3;
except
Stream1.Free;
Stream2.Free;
MStream.Free;
NewFile.Free;
NewFileName:='';
end;
result:=NewFileName;
end;

حالا از عزیزانم یه سوال دیگه دارم :
:ناراحت: حالا چطوری این دو تا رو از هم جدا کنم؟
چطوری می تونم فایل دوم رو جدا کنم و توی یه tfilestream بریزم؟
بازم از اینکه لااقل به این تاپیک سر می زنید ممنونم :لبخندساده: