PDA

View Full Version : مشکل کار با فایل در ++vc



asmarostamabadi
یک شنبه 21 بهمن 1386, 09:03 صبح
من توی کتابهایی که دارم یه مثال که قشنگ از فایلها گفته باشه ندارم فقط یه چیزای اولیه گفتن.یه مثال احتیاج دارم که کامل باشه تا بفهمم با پروژه ام چی کار کنم .نمی خوام مثل دوستام بدم یکی از دفتر کامپیوتریها بنویسن برام که چیز بدرد بخوری یاد نگرفته باشم.اگه امکان داره یه مثال یا یه کتاب کامل به من معرفی کنید.بی نهایت سپاس گذارم

Nima_NF
یک شنبه 21 بهمن 1386, 13:21 عصر
شما مشخص نکردید که پروژه شما از چه نوعی هست ؟ کنسول یا MFC یا win32 ؟

اگر کنسول هست در همان بخش ++C/C جستجو کنید ، مطالب زیاد هست : fstream , ifstream
شمنا باید مشخص کنید که از فایل ها چه می خواهید که در کتاب ها وجود نداشت.

asmarostamabadi
یک شنبه 21 بهمن 1386, 16:55 عصر
سلام پروژه من از نوع کنسول هست.من پروژه ام اینه که باید یه فایل باینری برای خریدار/یکی برای فروشنده و 2 تا برای کالا ها تعریف کنم/حالا خریدار خودش شامل نام وکده و بقیه هم مثل خریدار یه مشخصاتی دارن/نمیدونم چطوری برنامم رو شروع کنم یه مثال شبیه پروژه ام هم پیدا نکردم/مشکلم اینکه چطوری کالاها و خریداران و فروشنده را با این مشخصاتشون در فایل باینری تعریف و استفاده کنم؟اگه از srtuct استفاده کنم برای این چیزا چطوری به فایل باینری ارتباطش بدم و ازش استفاده کنم؟

Nima_NF
یک شنبه 21 بهمن 1386, 23:19 عصر
اگه از srtuct استفاده کنم برای این چیزا چطوری به فایل باینری ارتباطش بدم و ازش استفاده کنم؟
چند پست قبل هم این را توضیح دادم ، کار چندان پیچیده نیست ، به این شکل:
شما می توانید یک اشاره گر به struct خودتان بسازید و به این طوری به آن به شکل یک آدرس نگاه می کنید که بایت هایی را نگه می دارد و فایل هم به صورت باینری تعریف می کنید و موقع خواندن از فایل باید قبل از انجام عملیات نیز به آن حافظه اختصاص دهید .
در مورد کار با فایل های باینری که قبلا بحث کرده اید .



MyStruct * PtoStruct ;

** اینجا به اشاره گر حافظه اختصاص دهیدmalloc **
** از فایل بخوانید**
-----------------------------------------
برای نوشتن در فایل ://
ofstream myFile ("Info.dat", ios::out | ios::binary);
myFile.write ((char*)&PtoStruct , sizeof(MyStruct) );

برای استفاده هم اگر به صورت زیر عمل کنید ، مثل این است که اطلاعات خوانده شده را در یک struct ریخته اید و خودش با توجه به struct تعریف شده شما ، می فهمد که اطلاعات هر عضو در چه آدرسی نسبت به ابتدای آن قرار دارد.



PtoStruct->szName
PtoStruct->szTitle

برای نوشتن هم آدرس stuct را با & به خروجی می فرستید و اندازه نوشتن را با sizeof همان محاسبه می کند ، برای نمونه لینک زیر راببینید:
خواندن و نوشتن یک struct در فایل باینری (http://www.forteach.net/Programming/cplus/26542.html)