PDA

View Full Version : حفظ مقدار متغیر با خروج ار برنامه



jas1387
دوشنبه 16 دی 1387, 18:12 عصر
سلام دوستان

شاید بگویید که باید سرچ کنم ولی من سرچ کردم چیزی پیدا نکردم

من می خواهم یک متغیری داشته باشم که بهشم مقدار بدهم و وقتی از برنامه خارج شود

و دوباره برنامه را اجرا کردم آخرین مقدار متغیر را بدست آورم


با تشکر

mehdi.mousavi
دوشنبه 16 دی 1387, 18:27 عصر
سلام دوستان شاید بگویید که باید سرچ کنم ولی من سرچ کردم چیزی پیدا نکردم من می خواهم یک متغیری داشته باشم که بهشم مقدار بدهم و وقتی از برنامه خارج شود و دوباره برنامه را اجرا کردم آخرین مقدار متغیر را بدست آورم

سلام.
مقادیر مورد نظر رو هنگام خروج میتونید در Registry، فایل Config، فایل INI و ... ذخیره کنید، و در ابتدای برنامه، هنگام Load شدن اونها رو Load کنید. اگر از امکانات Configuration و ساز و کارهای مربوطه استفاده کنید، ابزارهای مناسبی رو برای این منظور میتونید به خدمت بگیرید (از قبیل Load شدن خودکار اطلاعات Config هنگام اجرای نخست برنامه و ...). برای اطلاعات بیشتر به MSDN مراجعه کنید!

Galawij
دوشنبه 16 دی 1387, 18:33 عصر
سلام دوست خوبم

باید متغیرهای ریجستری تعریف کنی .

linux
دوشنبه 16 دی 1387, 19:13 عصر
سلام دوست خوبم

باید متغیرهای ریجستری تعریف کنی .

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

arash.s
دوشنبه 16 دی 1387, 19:30 عصر
آسون ترین راه اینه:
1. بروی توی properites پروژه ات(توی solutions Explorer روی properites دابل کلیک کن) و بعد برو توی بخش setting
2. اینجا متغیرت رو تعریف کن. مثلا strFinalValue نوعش هم میتونه هر نوعی باشه که تو اون قسمت می بینی.
3. موقع ذخیره کردن، این کد رو بنویس:

Properties.Settings.Default.strFinalValue="مقدار رشته";
4. برای خوندنش هم یه متغیر محلی تعریف کن و یا مستقیما از خود همین متغیر بخونش:

private string strLocalValue = Properties.Settings.Default.strFinalValue;


فقط نکته اینه که این داده شما بصورت یک فایل xml کنار پروژه ات ذخیره می شه و اگه بحثت امنیتی باشه، طرف می تونه راحت اونو بخونه که در اینصورت باید یه سری تمهیداتی هم برای این موضوع در نظر بگیری.
موفق باشی.

Sajjad.Aghapour
دوشنبه 16 دی 1387, 21:05 عصر
فقط نکته اینه که این داده شما بصورت یک فایل xml کنار پروژه ات ذخیره می شه و اگه بحثت امنیتی باشه، طرف می تونه راحت اونو بخونه که در اینصورت باید یه سری تمهیداتی هم برای این موضوع در نظر بگیری.

خاصیت Build Action اون رو برابر Embedded Resource قرار بدید.

Chabok
دوشنبه 16 دی 1387, 23:17 عصر
فقط نکته اینه که این داده شما بصورت یک فایل xml کنار پروژه ات ذخیره می شهاون فایلی که در کنار پروژه ذخیره میشه به عنوان یک Preview میشه گفت است .
ولی فایل اصلی تنظیمات در مسیری به شکل زیر ذخیره می شود :

%APPDATA%\<AppName>\<AppName><AppConfigName_GUID>\<AssemblyVersion>\user.config
که مثلا معادل است با :

C:\Documents and Settings\Mohsen\Local Settings\Application Data\Chabok_Software_Group\MailSender.vshost.exe_U rl_y2lqcaiq3qukd1jwkbh3q1hxsa24bw3g\1.0.0.0\user.c onfig

موفق باشید.

newgoldenman
سه شنبه 17 دی 1387, 13:26 عصر
آسون ترین راه اینه:
1. بروی توی properites پروژه ات(توی solutions Explorer روی properites دابل کلیک کن) و بعد برو توی بخش setting
2. اینجا متغیرت رو تعریف کن. مثلا strFinalValue نوعش هم میتونه هر نوعی باشه که تو اون قسمت می بینی.
3. موقع ذخیره کردن، این کد رو بنویس:

Properties.Settings.Default.strFinalValue="مقدار رشته";



در تصحيح پاسخ دوست عزيزمون:
براي اينكه تغييرات ايجاد شده شما، ذخيره بشه، از اين متد استفاده كنيد:


Properties.Settings.Default.Save();

يعني توي مثال دوست عزيزمون خواهيم داشت:

Properties.Settings.Default.strFinalValue="مقدار رشته";
Properties.Settings.Default.Save();

newgoldenman
سه شنبه 17 دی 1387, 15:07 عصر
يك سوال از دوستان:
اين مقدار، تا چه زماني باقي ميمونه؟ من تست كردم اين روش رو، خاصیت Build Action اون رو برابر Embedded Resource قرار دادم. اما مثلاً وقتي فايل exe رو كپي ميكنم يه جاي ديگه كه تستش كنم، درست كار ميكنه! save ميشه و load هم ميشه. ولي، وقتي كه چند تا برنامه ي exe ديگه، از هرجاي سيستم، اجرا ميكنم و ميبندم، و دوباره ميرم سراغ همون فايل exe كپي شده، اصلاً چيزي رو load نميكنه. مثل اينكه انگار نه انگار چيزي save شده بوده باشه.

آيا اين راه، واقعاً روشي هست كه تنظيمات يا مقاديري رو بصورت Settings درون خود فايل exe ذخيره كنه؟ اگر خير، از دوستان خواهشمدنم كه روش ديگري ارائه دهند.

مممنونم

Sajjad.Aghapour
سه شنبه 17 دی 1387, 15:39 عصر
اینی که گفتید یعنی چی؟
فکر نکنم اجرا کردن چندتا فایل exe به مقدار این متغیر آسیبی بزنه و اون رو تغییر بده...

BabyBoy
جمعه 18 بهمن 1387, 21:19 عصر
اگه مي خواي فقط تا وقتي كه برنامه در حال اجراست باقي بمونه بهترين راه همون استفاده از Settings كه البته من فكر نمي كنم نياري به Save() داشته باشه

ولي اگه مي خواي براي اجراهاي بعدي هم بمونه راهترين كار اينه كه خودت يه فايل XML يا ini يا هر چيزه ديگه بسازي و مقادير رو توش بنويسي

البته فكر كنم ميشه از Resources هم استفاده كرد كه من بلد نيستم.

danial82
شنبه 19 بهمن 1387, 00:08 صبح
مقاله ای در مورد Settings


http://barnamenevis.org/forum/showpost.php?p=668596&postcount=340