PDA

View Full Version : ذخیره در فایل



Reza,M
جمعه 17 آذر 1391, 14:51 عصر
با سلام
من میخوام هر بار عکسی را در مسیری مشخص ذخیره کنم بطوری که اگه فایلی با آن نام وجود داشت عکس را با نام دیگه ای ذخیره کند

برای ذخیره از دستور زیر استفاده میکنم
bitmap.Save("C:\Pic Files\" & id & ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg)

id یک متغیر برای نام گذاری عکس هاست

shahryari
جمعه 17 آذر 1391, 16:16 عصر
با سلام
اول بايد مقدار id را با دستور شرطي تعيين كنيد كه در صورت بودن فايل مورد نظر تغيير يابد
سپس اقدام به ذخيره فايل نماييد:
مثال:
If IO.File.Exists("C:\Pic Files\" & id & ".jpg") = False Then
id = id
Else
id = id & "_2"
End If
Bitmap.Save("C:\Pic Files\" & id & ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg)

-------------
در مثال بالا در صورت وجود فايل يك آندرلاين 2 (_2) يا هرچيزي كه دوست داريد به آخر اسم فايلتان اضافه ميشود
موفق باشيد

Reza,M
جمعه 17 آذر 1391, 17:37 عصر
دوست عزیز مشکل اینجاست که وقتی برنامه را می بندی و دوباره اجراش میکنی عکس های جدید را روی عکس های قبلی بازنویسی میکند !!!!
بنظرم ابتدا باید در یک حلقه For Eachتمام پوشه چک بشه اونوقت :
If IO.File.Exists("C:\Pic Files\" & id & ".jpg") = False Then
id = id
Else
id = id & "_2"
End If
Bitmap.Save("C:\Pic Files\" & id & ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg)

shahryari
جمعه 17 آذر 1391, 18:10 عصر
براي چي بايد روي ساير فايلها ذخيره كند؟؟؟
id چه نوع متغييري است؟ عددي يا رشته اي؟
اگر عددي باشد ، نام آخرين ركورد را دريك فايل متني يا ini در مسير اجرايي برنامه ذخيره كن، تا هنگام اجراي مجدد ، از آن عدد + 1 شروع شود.
كلاس استفاده از ini را اگر نداري برايت در پست بعدي بزارم
موفق باشيد

Reza,M
جمعه 17 آذر 1391, 18:31 عصر
براي چي بايد روي ساير فايلها ذخيره كند؟؟؟
id چه نوع متغييري است؟ عددي يا رشته اي؟
اگر عددي باشد ، نام آخرين ركورد را دريك فايل متني يا ini در مسير اجرايي برنامه ذخيره كن، تا هنگام اجراي مجدد ، از آن عدد + 1 شروع شود.
كلاس استفاده از ini را اگر نداري برايت در پست بعدي بزارم
موفق باشيد

id از نوع عددي است.
راهی دیگه نیست که از فایل متنی يا ini استفاده نکنیم ؟؟

Reza,M
جمعه 17 آذر 1391, 18:43 عصر
عکس ها که با نام عددی ذخیره میشوند(1.jpg و . . . ) حال میتوان نام آخرین فایل را گرفته و+1 کنیم ؟؟؟؟؟
با متد Name اسم و پسوند فایل قابل دریافت است چطور میشه فقط اسم رو گرفت؟

shahryari
جمعه 17 آذر 1391, 20:53 عصر
بجاي ذخيره آخرين عدد ركورد در فايل متني ، ميتواني در قسمت Setting خود پروژه ات استفاده كني
منوي Project
گزينه properties
تب Setting
يك فيلد ازنوع عددي ايجاد كن و من بعد آخرين عدد ركورد را در آن فيلد ذخيره كن

Reza,M
شنبه 18 آذر 1391, 00:43 صبح
دوست عزیز تو Setting خو با تغییر مکان برنامه اطلاعاتش پاک میشن :ناراحت:

arash020
شنبه 18 آذر 1391, 06:40 صبح
سلام
من روشهای زیادی برای این کار دارم
خودم یه برنامه کوپیک نوشتم که توش به همین کار نیاز داشتم!
یکی از راه هایی که من پیشنهاد میکننم:::
1
ذخیره یک مقدار اولیه ID توی یه فایل متنی کنار فایل اجرایی برنامه(میتونید مخفی و سیستمی هم بکنید فایل رو تا کاربر اونو بیراحتی نبینه!)

2
خوندن محتوای فایل ID در اول اجرای برنامه و اضافه کردن یک واحد به آن

3
برای جلوگیری از خطای احتمالی,چک کردن وجود فایل قبلی با اسم و ID جدید.

4
ذخیره فایل جدید

5
ذخیره ID توی فایل برای کار بعدی...

(میتونید به جای فایل , از Savesetting و Getsetting که تنظیمات رو در رجیستری ثبت میکنه و میخونه و با تغییر مکان یا هرچی از بین نمیره و تا پایداری ویندوز دوام میاره استفاده کنید.)

Hossis
شنبه 18 آذر 1391, 22:56 عصر
هیچ یک از این کارها اصولی نیست
شما باید در یک حلقه while بررسی کنید که تا زمانی که مسیر ذخیره شده در متغیر fn وجود دارد, یک عدد به Id اضافه کند تا یک شماره ای از فایل بوجود آید که دیگر وجود نداشته باشد
فرض کنید که در یک مسیر, فایلی به نام Image1.jpg ایجاد کردید, با این حلقه, چک می شود که Image1 هست, در این جا, شماره آخر از نام فایل گرفته می شود و یکی به اون اضافه می گردد می شود Image2.jpg و چک می کند, می بیند که این فایل موجود نیست, لذا عکس رو روی اون ذخیره می کند.
دفعه بعد که برنامه یا این کد اجرا شد, می بیند که ایمیج 1 و 2 موجود است, پس فایلی به اسم image3 می سازد و به همین منوال ...
لذا هیچ گاه روی فایل موجود ذخیره نخواهد شد.
اگر نتونستید پیاده سازی اش کنید, بگید تا من مثالش رو بیارم

Reza,M
یک شنبه 19 آذر 1391, 13:14 عصر
شما باید در یک حلقه while بررسی کنید که تا زمانی که مسیر ذخیره شده در متغیر fn وجود دارد, یک عدد به Id اضافه کند تا یک شماره ای از فایل بوجود آید که دیگر وجود نداشته باشد

مرسی دوست عزیز من با foreach نوشتمش.