ورود

View Full Version : مشکل در استفاده از SharpZipLib در دلفی دات نت



Mojgan110
یک شنبه 21 آبان 1385, 16:52 عصر
با سلام و خسته نباشید به بخش دلفیhttp://smilies.sofrayt.com/%5E/aiw/king.gif

در یک پروژه ای که با دلفی دات نت هست ، برای فشرده سازی از SharpZipLib (http://www.icsharpcode.net/OpenSource/SharpZipLib/Default.aspx) استفاده شده که یه پروژه بازمتن هست و برای دات نت دو هم آماده کرده اند نسخه جدیدش را .

البته واسه دلفی از نسخه دات نت 1.1 را دانلود و استفاده میخوام بکنم.

دانلود این کامپوننت (http://prdownloads.sourceforge.net/sharpdevelop/SharpZipLib085_11.zip?download)

بسیارخب ! من دانلودش کردم ( لینک بالایی) و یک DLL بنام ICSharpCode.SharpZipLib.dll در پوشه Bin ئش بود که اون را از طریق Add Refrence به پروژه دلفی دات نت ، اضافه کردم.

ولی خطایی که میگیرد این هست : http://www.kolobok.wrg.ru/smiles/light_skin/dash3.gif


[Pascal Fatal Error] F1026 File not found: 'p:\common\sharpziplib\ICSharpCode.SharpZipLib.dll '

از شما تقاضا دارم که بررسی کنید که مشکل در کجاست ؟
ضمنا یه سری Bath File هم همراه با این کامپوننت بود که من نمیدونستم باید چکارشون کنم ؟
لطفا ابتدا آن را دریافت و تست کنید و سپس روش نصب آن را به من هم یاد بدهید.

با تشکر از زحمات شما.

ghabil
یک شنبه 21 آبان 1385, 17:44 عصر
من گرفتمش و AddRefrence کردم DLLش رو (بدون نصب) بعد Useش کردم و راحت کار کرد.
راستی چرا از خود Zlib استفاده نمیکنی؟

اینو تستی نوشتم :



unit WinForm;

interface

uses
System.Drawing, System.Collections, System.ComponentModel,
System.Windows.Forms, System.Data,ICSharpCode.SharpZipLib.Zip;

type
TWinForm = class(System.Windows.Forms.Form)
{$REGION 'Designer Managed Code'}
strict private
/// <summary>
/// Required designer variable.
/// </summary>
Components: System.ComponentModel.Container;
Button1: System.Windows.Forms.Button;
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
procedure InitializeComponent;
procedure Button1_Click(sender: System.Object; e: System.EventArgs);
{$ENDREGION}
strict protected
/// <summary>
/// Clean up any resources being used.
/// </summary>
procedure Dispose(Disposing: Boolean); override;
private
{ Private Declarations }
public
constructor Create;
end;

[assembly: RuntimeRequiredAttribute(TypeOf(TWinForm))]

implementation

{$AUTOBOX ON}

{$REGION 'Windows Form Designer generated code'}
/// <summary>
/// Required method for Designer support -- do not modify
/// the contents of this method with the code editor.
/// </summary>
procedure TWinForm.InitializeComponent;
begin
Self.Button1 := System.Windows.Forms.Button.Create;
Self.SuspendLayout;
//
// Button1
//
Self.Button1.Location := System.Drawing.Point.Create(48, 88);
Self.Button1.Name := 'Button1';
Self.Button1.TabIndex := 0;
Self.Button1.Text := 'Button1';
Include(Self.Button1.Click, Self.Button1_Click);
//
// TWinForm
//
Self.AutoScaleBaseSize := System.Drawing.Size.Create(5, 13);
Self.ClientSize := System.Drawing.Size.Create(292, 266);
Self.Controls.Add(Self.Button1);
Self.Name := 'TWinForm';
Self.Text := 'WinForm';
Self.ResumeLayout(False);
end;
{$ENDREGION}

procedure TWinForm.Dispose(Disposing: Boolean);
begin
if Disposing then
begin
if Components <> nil then
Components.Dispose();
end;
inherited Dispose(Disposing);
end;

constructor TWinForm.Create;
begin
inherited Create;
//
// Required for Windows Form Designer support
//
InitializeComponent;
//
// TODO: Add any constructor code after InitializeComponent call
//
end;

procedure TWinForm.Button1_Click(sender: System.Object; e: System.EventArgs);
var
AFastZip: ICSharpCode.SharpZipLib.Zip.FastZip;
begin
AFastZip := FastZip.Create;
try
AFastZip.CreateZip('Test.Zip', '.', True, '.Txt','');
finally
AFastZip.Free;
end;
end;
end.




خوشگل هم هرچی فایل TXT تو فولدر بود رو Zip کرد.
دیگه دات نت هم هست Try.. Finally هم نزاری نزاشتی مثلا گاربیج کالکتر داره.

Mojgan110
یک شنبه 21 آبان 1385, 18:01 عصر
من گرفتمش و AddRefrence کردم DLLش رو (بدون نصب)

آهان. من هم این دفعه کار کرد. فرقش با دفه قبل این بود که پوشه ای که دانلود کرده بودم قبلا مسیرش توی دستکتاپ بود ولی حالا که بردمش مثلا به درایو F و اونجا کپیش کردم ، خطا نگرفت کار کرد.

همین را نمیفهمم ! **بدون نصب** . مگه این را باید طوری نصب کرد ؟ و اگر نصب نکنیم و فقط Add Reference کنیم ، آنوقت آیا باید خوده DLL را هم با برنامه ، توزیع کنیم ؟

ghabil
یک شنبه 21 آبان 1385, 20:46 عصر
به هر حال باید اینو همراه برنامت ببری و فکر هم نمی کنم به اینکه کجا گذاشته بودیش ربطی داشته باشه چون خودش وقتی اضافش میکنی و کامپایل میکنی یک کپی ازش رو کنار فایل Exe میسازتش ، اما اگر نصبش کنی اونوقت بعنوان یک Assembley رجیستر شده در ویندوز میشه که دیگه بقیه برنامه ها هم میتونند ارش استفاده کنند و نیازی نیست بغل هر فایل Exe یکدونه ازش باشه اما اونوقت هرجا میری باید این رو کامپیوتر نصب شده باشه...
فکر میکنم مشکلت درست Use نکردن اسمش بود.