-
درخواست آموزش فایل
با سلام
ترم پیش زمانش خیلی کوتاه شده بود! به خاطر همون برف اومدنا و تعطیلیا!!!
استاد C++ ما هم وقت کم آورد و تقریبا بعد pointer که در واقع C++ از اون جا شروع میشد رو پیچوند!!!
خلاصه فایل رو هم که در عرض 30 دقیقه سر و تهشو هم آورد!
اگر ممکنه 1 توضیح و آموزش کامل از فایل و نحوه ی کار باعاش این جا بذارین
ممنون:40:
-
معمولاً کار با فایل شامل این قدم ها هست:
1. باز کردن فایل
2. خواندن یا نوشتن در فایل، همچنین عقب و جلو رفتن در فایل
3. بستن فایل
یک نمونه از نوشتن در فایل:
کد:
// writing on a text file
#include <iostream>
#include <fstream>
using namespace std;
int main () {
ofstream myfile ("example.txt");
if (myfile.is_open())
{
myfile << "This is a line.\n";
myfile << "This is another line.\n";
myfile.close();
}
else cout << "Unable to open file";
return 0;
}
که فایلی در همون شاخه فایل اجرایی درست می کنه به نام example.txt و توش محتویات زیر رو می نویسه:
کد:
This is a line.
This is another line.
حالا با مثال زیر محتویات همون فایل رو می خونیم و چاپ می کنیم در خروجی:
کد:
// reading a text file
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main () {
string line;
ifstream myfile ("example.txt");
if (myfile.is_open())
{
while (! myfile.eof() )
{
getline (myfile,line);
cout << line << endl;
}
myfile.close();
}
else cout << "Unable to open file";
return 0;
}
که خروجی زیر رو نمایش می ده:
کد:
This is a line.
This is another line.
خوندن عدد هم مثل همینه. توجه کن که ورودی و خروجی با این صورت دقیقاً مثل ورودی خروجی از کیبورد و به مانیتوره. یعنی جریان های ورودی خروجی کد اسکی هستند. به این معنی که اگه تو کدهای بالا به جای اشیاء ifstream و ofstream ، از cin و cout استفاده کنی، خروجی در مانیتور و ورودی از صفحه کلید دریافت میشه (به این میگن قدرت شئ گرایی!)
ولی مد دیگری هست برای IO که اون مد باینری هست. یعنی مثلاً شما توی فایل صفر و یک می نویسی و صفر و یک می خونی.
توی این لینک کمی توضیح داده ام. همچنین در مورد تابع fseek هم یه مثال زده ام (کاربردش عقب و جلو رفتن توی فایل هست):
کد:
http://forum.p30world.com/showthread.php?t=276769
این لینک جای خوبیه برای یادگیری کار با فایل ها در c++:
کد:
http://www.cplusplus.com/doc/tutorial/files.html
-
ممنون واقعا
مثلا یک یاز چیزایی که من متوجه نشدم این بود که ما 1 فایل داشتیم که اسم تعدادی کتاب و تعداد موجود از هر کدوم و کسی که رزرو کرده و تاریخ رزرو و ... توش ذخیره میشد و هر بار که برنامه ران میشد از اون فایل اتفاده می کرد که اطلاعات رو دوباره داشته باشه!ولی من نمی فهمیدم از کجا برنامه تشخیص میده کدوم قسمت فایل تاریخه کدوم تعداده کدوم اسمه و ...
-
خوب شما خودت فایل رو ذخیره کردی و می دونی کجاش کجاشه!
مثلاً با خودت قرار می ذاری که خط اول فایل تعداد کل کتاب هاست (n). سپس به تعداد n باید اطلاعات کتاب ها رو بخونی. اطلاعات کتاب ها هم به این صورته که خط اول یه int باشه که شماره کتابه. خط دو اسم کتاب. خط سوم اسم نویسنده.
مثلاً
کد:
2
01554
c++
deitel and deitel
450364
introduction to algorithms
coreman
همون طور که می بینی تو فایل بالا اطلاعات دو تا کتاب هست. شما وقتی برنامت شروع میشه اول n رو می خوانی (اینجا 2). سپس توی یه حلقه for ، ب n بار (2اینجا بار) سه خط از فایل می خونی که خط اول شماره کتاب، خط دوم اسم کتاب و خط سوم نام نویسنده هست:
کد:
scanf(n)
for(i=0;i<n;i++)
{
scanf(bookNumber)
scanf(bookname)
scanf(author)
printf(bookNumber, bookname,author);
}
پس می بینید که ساختار فایل دست شماست. اصلاً شاید بخواهید اول اطلاعات رو رمز کنید و بعد ذخیره کنید! در اون صورت باید توابع رمز گذار و رمزگشا هم داشته باشی.
-
در مورد فایلها در سی شارپ هم توضیح دهید
اگر بخواهیم در فایل جستجو کرده و وقتی به محل مورد نظر رسیدیم اطلاعاتش را پاک کنیم ؟....