نمایش نتایج 1 تا 3 از 3

نام تاپیک: چگونه میتوان چند فایل مجزا را در یک فایل ذخیره کرد؟

  1. #1

    چگونه میتوان چند فایل مجزا را در یک فایل ذخیره کرد؟

    من یک دلفی کار مبتدی هستم. چگونه میتوان چند فایل مجزا را از چند نوع مختلف در یک فایل با یک پسوند ذخیره کرد و دوباره همان فایلها را خواند. مثلا یک فایل bmp. و
    یک فایل wav. را در یک فایل zzz. ذخیره کرد و بدون ایراد آنها را خواند.
    متشکرم؛ البته اگر کمکم کنید! :oops:

  2. #2

    مخلصیم!

    سلام علی جان بابا کجا بودی! :heart:

    خب اگر می خوای هر کدام از فایل های فوق جداگانه در یک فایل ذخیره بشن و دوباره بتونی اونا رو با فرمت ها قبلی استخراج کنی می تونی از TCollection استفاده کنی!

    یعنی یه Stream توی TCollectionItem بزاری و بعدش با استفاده از Stream فایل مربوطه رو لود کنی.

    من یونیت کامل این TCollection رو می زارم اینجا!

    نحوه استفاده:
    برای اینکه فایلها رو توش وارد کنی از کد زیر استفاده کن:
    procedure TForm1.Button1Click(Sender: TObject);
    var
    fany:TAnyFile;
    fItem1,fItem2:TAnyFileItem;
    begin
    fany:=TAnyFile.Create(TAnyFileItem);
    try
    {--start Adding bmp format--}
    fItem1:=fany.Add;
    fItem1.Stream.LoadFromFile('c:\myPicture.b mp');
    {---End Adding bmp format---}

    {--start Adding wav format--}
    fItem2:=fany.Add;
    fItem2.Stream.LoadFromFile('c:\MyWave.wav' );
    {---End Adding wav format---}

    {---Save last file----}
    fAny.SaveToFile('c:\MyCombinedFiles.zzz'&# 41;;
    {---------------------}
    finally
    fany.Free;
    end;
    end;


    و برای استخراج از فایل فوق می تونی از دستور زیر استفاده کنی:
    procedure TForm1.Button2Click(Sender: TObject);
    var
    fany:TAnyFile;
    fItem1,fItem2:TAnyFileItem;
    begin
    fany:=TAnyFile.Create(TAnyFileItem);
    try
    fany.LoadFromFile('c:\MyCombinedFiles.zzz' );
    fany.Items[0].Stream.SaveToFile('c&#58 ;\myPicture.bmp');

    fany.Items[1].Stream.SaveToFile('c&#58 ;\MyWave.wav');

    finally
    fany.Free;
    end;
    end;

    این هم یه دیه حسابی واسه تو :gift:
    امید وارم مفید بوده باشه (:D)

  3. #3
    سلام علی جان... :heart:
    می بخشید مثل اینکه کد قبلی اشکال داشت!! چون تستش نکرده بودم!! :oops:
    مشکل از اینجا بود که هنگام نوشتن کامپوننت TAnyFileItem پروپرتی Stream نوشته نمی شد. پس برای حل مشکل از DefineProperties استفاده کردم که در کلاس TComponent موجود است و اونو در کلاس TAnyFilesWrapper به کار بردم.
    DefineProperties به ما اجازه می ده که هر آنچه را که خواستیم بتوانیم به عنوان پروپرتی ( یا همان دارایی) کامپوننتمان ذخیره کنیم (فرقی نمی کنه کجا, در هر فایلی یا در فایل DFM).
    به هر حال...

    دوباره اصلاحش کردم. و تستش کردم. درست کار می کنه.
    با همون مثال بالایی می تونی کار کنی. :)

    خوش باشی...(غم مخور که دنیا یک روز است)... :) :flower:

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •