ذخيره تغييرات

Ehssan_it

Well-Known Member
تو اين پروژه اي كه دارم درست ميكنم مي خوام كاربر بتونه يكسري تغييراتي كه تو پروژه ميده براي بار دوم هم كه اجرا ميكنه اعمال شده باشه
مثلا انتخاب يك عكس ( از بين چند عكسي كه در پروژه به صورت پيش فرض هستند )
با حالت شفافيت پروژه


ميدونم كه كليات يكي هستند براي همين سرتون رو درد نميارم

شرمنده اين دفعه سرعتم براي جستجو واقعا كم هست وگرنه دوستان ميدونن كه من بدون جستجو پست نميزنم
 

blue_rays

Member
سلام.
شما با استفاده از دستور save variable و همين طور load variable ميتونيد اين كارو براحتي انجام بديد. مثلآ بعد از تنظيم و اعمال تغييرات مقدار شفافيت پروژه بصورت يك عدد تو رجيستري ذخيره بشه. همين طور براي انتخاب عكس براي هر عكس يه عدد تعيين كن كه با انتخابش اون عدد تو رجيستري ذخيره بشه و در صفحه ي اول پروژت تعيرف كن كه اگه اين عدد 1 باشه فلان عكس اگه 2 باشه اون يكي اگه 3 باشه .... به همين ترتيب. براي شفافيت هم تعريف كن كه هر عديد براش ذخيره شده در همون صفحه اول توسط يكي از پلاگين هاي موجود رو پروژت اعمال بشه.
فكر نميكنم نياز به مثال باشه چون خيلي آسون هستش. اگه نياز بود بگو مثال بزارم.

موفق باشي
 

Free Man

کاربر متخصص مولتی مدیا بیلدر
با سلام ،

رروشی که دوست عزیزمون blue_raysگفتند ، کاملا درسته.

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

به چند دلیل :

1- در بعضی از سیستم ها به دلایل امنیتی هر چند وقت یکبار رجیستری را ریستور می کنند.

2- اگر نیاز دارید ه این تغییرات بعد از نصب مجدد ویندوز باقی بماند

3- مدیریت ini آسان تر و دقیق تر است.

4- در سیستم های غیر Admin و محدود شده ، به برنامه اجازه ی دسترسی به رجیستری داده نمی شود.

5- این یک روش قراردادی در طراحی نرم افزار است . (البته فایل های XML نیر برای این امر استفاده می شوند.)

موفق باشید.
 

Ehssan_it

Well-Known Member
ممنون blue_rays جان
اگه ممكنه براي ايناي كه گفتي يك مثال بزاري ممنون ميشم.

يك سوال هم از اقا محسن دارم
ايا اين فايل ini قابل embedd شدن هست يا نه؟
 

blue_rays

Member
سلام. خواهش ميكنم. همونطور كه دوستمون گفتن براي اينكار بهتره از يه فايل ini استفاده كني و در كنار فايل برنامت باشه مثلآ فايل settings.ini كه تو بعضي برنامه ها وجود داره. البته اين فايل رو نبايد embedded كني چون تغييراتت روي فايلت اعمال نميشن يعني هميشگي نيستن و بايد در كنار برنامت ازش استفاده كني.:)
روش كار هم مثل قبله با اين تفاوت كه دستت بازتره نسبت به رجيستري و براي ذخيره اطلاعات تو اين فايا بايد از دستور str to file استفاده كني. مثل دستور زير
:
کد:
string$= EditBox1$
ReturnVal=StrToFile(file$,string$,TRUE,TRUE)

string$ مقداري هست كه ميخاي تو فايل ذخيره كني. file$ هم آدرس فايلت كه كنار برنامت بايد بزاريش. True اول و دوم هم براي اينه كه تنظيم كني آيا پشت سر هم ذخيره بشه يا خط به خط و ...

براي خوندن هر خط از فايلت هم ميتوني از اين دستور استفاده كني:

کد:
NOL=NOL(file$)
For i=1 To NOL
  string$[i]=StrFromFile(file$,i,1)
Next i
l1$=string$[1]
l2$=string$[2]

براي file$ مسير فايل ini رو ميدي و l1$ و l2$ مقدار برگشت داده شده ي خط اول و دومت هستن. به همين ترتيب براي خط سوم به بعد هم خودت اضافه كن. مثلآ

کد:
l3$=string$[3]

مثلآ فر كن تو خط سومت اسم كاربره كه ذخيره شده.
در مورد روش خودم هم بايد از اين دستور استفاده كني:

کد:
default=1
SaveVariable("Defaultpic","default")

default مثلآ شماره ي عكس هست كه كاربر انتخاب كرده و اين مقدار در رجيستري با نام defaultpic ذخيره ميشه. در صفحه اول هم بايد با اين دستور عدد رو لود كني:

کد:
LoadVariable("Defaultpic","default")

عدد مورد نظر در متغيير default لود ميشه و شما بايد با دستور if تععين كني كه اگر عدد 1 بود اين عكس رو نشو بده و اگر 2 بود اون يكي و الي آخر.
transparncy هم كه به همين صورته.
ولي توصيه منم استفاده از فايل ini هست. اين فايل يه فايل حاوي اطلاعات هست كه استاندارش ini هست ولي شما ميتوني با هر پسوندي حتي dll هم ذخيرش كني و فرقي تو كاراييش نداره واسه خود برنامه.:paint:
 
آخرین ویرایش:

جدیدترین ارسال ها

بالا