# Native Code > برنامه نویسی با C > برنامه نویسی در محیط QT و هم خانواده هایش > سوال: پاک شدن داده های QStringList بعد از بستن برنامه.

## mousa1994

سلام، من توی Qt تازه کارم و رشته ام الکترونیک هستش. من توی برنامه ام یه QStringList ماکزیمم 10 عضوی دارم هر عضو هم نهایت 20 کارکتر داره اعضای QStringList بجز عضو صفرم در طول برنامه ممکن تغییرات داشته باشند برنامه ای که نوشتم بخوبی کار میکنه تنها مشکلم این که بعد از بسته شدن برنامه QStringList برمیگرده به حالت اولیه که فقط عضو صفرم مقدار داره و بقیه اعضا پاک میشن. امیدوارم منظورم رو بدرستی رسونده باشم.

----------


## mousa1994

سلام، کسی نیست؟  عضو صفرم QStringList چون اول برنامه مقدار اولیه بهش دادم بعد از بستن و باز کردن برنامه همون مقدار رو در خودش داره ولی بقیه اعضای QStringList چون در طول برنامه یا به لیست اضافه یا از لیست کم میشن بعد از بستن برنامه پاک میشن. فکر کنم بخاطر اینکه حافظه گرفته شده بعد از بستن برنامه آزاد میشه حالا من چطور این لیست رو روی حافظه دائم برنامه ذخیره کنم.

----------


## حامد مصافی

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

----------


## gghazbil

سلام دوست عزیز
تمام متغیرهایی که شما توی برنامه ها تعریف میکنید بعد از بسته شدن برنامه از بین میروند. برای آنکه متغیرهاتون بمونن و با دوباره باز کردن برنامه اونها رو داشته باشید بایستی از یک فایل برای ذخیره سازی و بازیابی اطلاعات استفاده کنید. منظورتون از بستن و باز کردن برنامه دقیقا چیه؟ میتونید یه نمونه کد از برنامه تون بزارید یا اطلاعات لیستتون رو نشون بدید؟

----------


## mousa1994

سلام، یه برد دارم که از طریق پورت usb با کامپیوتر در ارتباط هستش حالا من میخوام برای برنامه سمت کامپیوترش قبل از برنامه اصلی یه دیالوگ login بزارم که فقط کاربرهای عضو قابلیت کنترل دستگاه رو داشته باشن برا همین یه QstringList با حداکثر 10 عضو برای گرفتن پسورد کاربرها گذاشتم که اول برنامه عضو صفرم رو به عنوان Admin تعریف کردم بقیه اعضا در طول برنامه توسط Admin اضافه یا حذف میشن حالا مشکل من اینه که نمیخوام از فایل استفاده کنم چون قابل مشاهده هستش باید چطور این لیست رو ذخیره کنم که بعد از بستن و باز کردن برنامه ریست نشه. یه فرم خارجی دیدم که میگفت میشه از QSettings استفاده کرد یا با دیتابیس اینکار رو کرد من اطلاعات زیادی از دیتابیس ندارم اگه در مورد QSettings اطلاع دارید یا هر راهی که بنظرتون میرسه ممنون میشم راهنمایی کنید.

----------


## gghazbil

دوست عزیز اگر میخواهید واقعا پسوردهاتون رو به صورت امن ذخیره کنید قاعدتا نباید از سیستم ذخیره اونها در فایل استفاده کنید. 
اون سایتهایی هم که نوشتن از QSettings میتونید استفاده کنید اول نوشتن که باید پسوردهاتون رو رمزنگاری کنید.
با استفاده از QSettings میتونید اطلاعات رو تو رجیستری ویندوز یا فایلهای xml مانند ذخیره کنید و بعد از هر بار باز و بسته شدن نرم افزار دوباره متغیرها رو بخونید و یا تغییر بدید.
من از QSettings توی یکی از پروژه هام استفاده کردم میتونم کمی راهنماییت کنم اما قطعا باید اول دنبال روشی برای رمز نگاریشون بگردی. یکی از فروم ها پیشنهاد کرده بود که حداقل چندین بار هش کنی پسوردهاتو که قابلیت رمزگشایی نداشته باشه.

----------


## mousa1994

سلام، ببخشید دیر جواب میدم درگیر کاری بودم  نتونستم جوابتون رو بدن ممنون میشم نحوه خوندن لیست در ابتدا برنامه و نوشتن دوباره لیست در انتهای برنامه رو با QSettings برام بنویسید.

----------

