پرش به مطلب اصلی

fopen

هشدار

This function starts with a lowercase letter.

توضیحات

باز کردن یک فایل (برای خوندن یا نوشتن).

نامتوضیحات
const filename[]مسیر فایلی که باز میشه (اگر فقط نام فایل مشخص بشه، فایل با همون نام در پوشه 'scriptfiles' باز میشه).
filemode:modeحالتی که فایل با اون باز میشه (پیش‌فرض: io_readwrite).

برگشتی

handle فایل رو برمیگردونه. این handle برای خوندن و نوشتن استفاده میشه.

0 اگر باز کردن فایل موفق نبود.

مثال‌ها

حالت io_read:

// "file.txt" رو در حالت "read only" باز کن
new File:handle = fopen("file.txt", io_read);

// "buf" رو initialize کن
new buf[128];

// چک کن که آیا فایل باز شده
if (handle)
{
// موفق

// کل فایل رو بخون
while(fread(handle, buf))
{
print(buf);
}

// فایل رو ببند
fclose(handle);
}
else
{
// خطا
print("The file \"file.txt\" does not exists, or can't be opened.");
}

حالت io_write:

// "file.txt" رو در حالت "write only" باز کن
new File:handle = fopen("file.txt", io_write);

// چک کن که آیا فایل باز شده
if (handle)
{
// موفق

// "I just wrote here!" رو توی این فایل بنویس
fwrite(handle, "I just wrote here!");

// فایل رو ببند
fclose(handle);
}
else
{
// خطا
print("Failed to open file \"file.txt\".");
}


حالت io_readwrite:

// "file.txt" رو در حالت "read and write" باز کن

new File:handle = fopen("file.txt", io_readwrite);

// "buf" رو initialize کن
new buf[128];

// چک کن که آیا فایل باز شده
if (handle)
{
// موفق

// کل فایل رو بخون
while(fread(handle, buf))
{
print(buf);
}

// pointer فایل رو روی اولین byte بگذار
fseek(handle, _, seek_begin);

// "I just wrote here!" رو توی این فایل بنویس
fwrite(handle, "I just wrote here!");

// فایل رو ببند
fclose(handle);
}
else
{
// خطا
print("The file \"file.txt\" does not exists, or can't be opened.");
}

حالت io_append:

// "file.txt" رو در حالت "append only" باز کن
new File:handle = fopen("file.txt", io_append);

// چک کن که آیا فایل باز شده
if (handle)
{
// موفق

// "This is a text.\r\n" رو append کن
fwrite(handle, "This is a text.\r\n");

// فایل رو ببند
fclose(handle);
}
else
{
// خطا
print("Failed to open file \"file.txt\".");
}

نکات

هشدار

اگر از io_read استفاده کنی و فایل وجود نداشته باشه، یک reference NULL برمیگردونه. استفاده از reference های نامعتبر در توابع فایل سرورت رو crash میکنه!

توابع مرتبط

  • fclose: بستن یک فایل.
  • ftemp: ایجاد یک stream فایل موقت.
  • fremove: حذف کردن یک فایل.
  • fwrite: نوشتن در فایل.
  • fread: خواندن فایل.
  • fputchar: قرار دادن یک کاراکتر در فایل.
  • fgetchar: گرفتن یک کاراکتر از فایل.
  • fblockwrite: نوشتن بلوک‌های داده در فایل.
  • fblockread: خواندن بلوک‌های داده از فایل.
  • fseek: پرش به یک کاراکتر خاص در فایل.
  • flength: گرفتن طول فایل.
  • fexist: چک کردن وجود فایل.
  • fmatch: چک کردن pattern ها با نام فایل.
  • ftell: گرفتن موقعیت فعلی در فایل.
  • fflush: flush کردن فایل روی دیسک (مطمئن شدن از تکمیل همه write ها).
  • fstat: برگرداندن اندازه و timestamp فایل.
  • frename: تغییر نام فایل.
  • fcopy: کپی کردن فایل.
  • filecrc: برگرداندن مقدار CRC 32-bit فایل.
  • diskfree: برگرداندن فضای خالی دیسک.
  • fattrib: تنظیم attribute های فایل.
  • fcreatedir: ایجاد یک directory.

منابع مرتبط