বিষয়বস্তুতে চলুন

বেসিক সি/ফাইলে পড়া এবং লেখা

উইকিবই থেকে

ডিজাইন অনুসারে, BasicC একটি সময়ে শুধুমাত্র একটি খোলা ফাইলকে সমর্থন করে, যা Basic.h-এ ঘোষিত FILE * প্রকারের BASFILE ভেরিয়েবলের জন্য নির্ধারিত। এই সীমাবদ্ধতা C কমান্ড ব্যবহার করে বা BASFILE-এ অন্যান্য ফাইল পয়েন্টার কপি করে এবং এর বিপরীতে কাটিয়ে উঠতে পারে। বেশিরভাগ অপারেশনের জন্য ফাইলটি Open কমান্ড দিয়ে খুলতে হয়, অপারেশন শেষ হওয়ার পরে, ফাইলটি Close কমান্ড দিয়ে বন্ধ করা উচিত। রিডিং ফাইল "কারসার" বর্তমান অবস্থান থেকে বাহিত হয়. ডিফল্টরূপে, ফাইল অপারেশন বাফার মাধ্যমে সঞ্চালিত হয়. stdio.h লাইব্রেরি আবশ্যক, যা Basic.h-এ ডিফল্টরূপে অন্তর্ভুক্ত

একটি খোলা ফাইল থেকে সর্বাধিক n বাইট পড়ে এবং n দ্বারা নির্দেশিত মেমরিতে লেখে - এটি একটি স্ট্রিং ভেরিয়েবল হতে পারে, উদাহরণস্বরূপ। আপনি যদি ফাইলের সমস্ত বাইট পড়তে চান তবে n এর জায়গায় Lof নির্দিষ্ট করা যেতে পারে। মেমরির সীমা ছাড়িয়ে যাওয়ার সম্ভাবনা থেকে সাবধান! কল fread (b, 1, n, BASFILE);

BLoad (F, b, n)

[সম্পাদনা]

Bget এর মত, এটি শুধুমাত্র প্রথম পড়ার জন্য F নামের ফাইলটি খোলে এবং শেষ পর্যন্ত বন্ধ করে। চালায় {BASFILE = fopen (F, "rb"); fread (b, 1, n, BASFILE); fclose (BASFILE);}

BLoadPak (F, B)

[সম্পাদনা]

BLoad এর মতো, কিন্তু সম্পূর্ণ BSavePak সংকুচিত ফাইলটি পড়ে। দ্রষ্টব্য - ডিকম্প্রেশনের পরে আপনাকে ডেটার আকার জানতে হবে এবং যথেষ্ট বড় B বাফার প্রস্তুত করতে হবে।

একটি ফাইলে b দ্বারা নির্দেশিত মেমরি থেকে n বাইট পর্যন্ত অনুলিপি করে। fwrite কল করে (b, 1, n, BASFILE);

BSave (F, b, n)

[সম্পাদনা]

Bput এর মত, এটি প্রথমে লেখার জন্য F নামের ফাইলটি খোলে এবং শেষ পর্যন্ত বন্ধ করে দেয়। চালায় {BASFILE = fopen (F, "wb"); fwrite (b, 1, n, BASFILE); fclose (BASFILE);}

BSavePak (F, B, n)

[সম্পাদনা]

BSave এর মতো, কিন্তু ডেটা সংকুচিত হয়।

BASFILE-এ বরাদ্দ করা ফাইলটি বন্ধ করে, এতে করা পরিবর্তনগুলি আপডেট করে। কল fclose (BASFILE);

একটি শেষ-অফ-ফাইল হিট সেট করা আছে কিনা তা পরীক্ষা করে, হ্যাঁ হলে 0 ছাড়া অন্য একটি মান প্রদান করে। ট্যাগ সেট করা হয় যেমন পড়ার চেষ্টা করার পরে যখন "কারসার" ফাইলের শেষে পৌঁছে যায়। EOF এর সাথে বিভ্রান্ত হবেন না, যা ফাইলের শেষ হয়ে গেলে কিছু ক্রিয়াকলাপ দ্বারা প্রত্যাবর্তিত একটি নেতিবাচক ধ্রুবক। কল feof (BASFILE)

ফাইল থেকে পাঠ্যের একটি লাইন পড়ে এবং উপস্থিত থাকলে লাইন বিরতি সহ স্ট্রিং ভেরিয়েবল S এ অনুলিপি করে। STRLEN-1 অক্ষরের বেশি নয়। কল fgets (S, STRLEN, BASFILE);

ফাইলে করা পরিবর্তনগুলি সংরক্ষণ করে, বাফারে সংরক্ষিত। কল ফ্লাশ (BASFILE);

ফাইলে পাঠ্য হিসাবে T নম্বরটি সংরক্ষণ করে। কল fprintf (BASFILE, "%. 12lg", (ডবল) T);

ফাইলে T টেক্সট লেখে। fputs কল করে (T, BASFILE);

ফাইল থেকে পড়া অক্ষর (বাইট) ফেরত দেয় (অথবা ফাইলের শেষ হয়ে গেলে বা একটি ত্রুটি ঘটলে EOF)। কল fgetc (BASFILE)

P. Calls remove (P) নামের একটি ফাইল রিমুভ করে;

ফাইলের "কার্সার" এর অবস্থান ফেরত দেয়। কল ftell (BASFILE)

ফাইলের দৈর্ঘ্য রিপোর্ট করে। ফাইলটি টেক্সট হিসাবে খোলা হলে এটি বাইটে সঠিক সংখ্যা নাও হতে পারে। Basic.h-এ সংজ্ঞায়িত SIZEFILE (BASFILE) ফাংশন কল করে, যা BASFILE ছাড়া অন্য ফাইলগুলির জন্যও ব্যবহার করা যেতে পারে।

M মোডে P নামের একটি ফাইল খোলে এবং BASFILE দ্বারা নির্দেশিত স্ট্রীমে বরাদ্দ করে, ব্যর্থ হলে BASFILE NULL-এ পয়েন্ট করে। BASFILE = fopen (P, "M");

+ মোড চিহ্ন (উদ্ধৃতি চিহ্ন ব্যবহার করা হয় না)
r পড়ার জন্য. ফাইলটি অবশ্যই বিদ্যমান থাকবে।
w লিখতে. একটি খালি ফাইল তৈরি করে, যদি ফাইলটি ইতিমধ্যে বিদ্যমান থাকে - এর বিষয়বস্তু মুছে ফেলা হয়।
a যোগ করা হচ্ছে। আউটপুট অপারেশনগুলি কার্সার পজিশনিং কমান্ড নির্বিশেষে ফাইলের শেষে ডেটা লেখে। ফাইলটি তৈরি করা হয় যদি এটি বিদ্যমান না থাকে।

b যোগ করা মানে ডিফল্ট টেক্সট মোডের পরিবর্তে ফাইলের বাইনারি মোড। + যোগ করার অর্থ হল লেখা এবং পড়া সম্ভব। ডকুমেন্টেশনে আরও তথ্য সি.

ফাইলে একটি অক্ষর (বাইট) c লিখে। কল fputc (c, BASFILE);

D অবস্থান দ্বারা ফাইল "কারসার" সরানো হয়। এটিকে fseek (BASFILE, D, SEEK_CUR) বলে;

ফাইল বা ডিরেক্টরী S-এর নাম পরিবর্তন করে D-এ, বা ফাইলটি সরানো হয়। এটি পুনরায় নামকরণ (এস, ডি);

ফাইলের "কারসার"কে D অবস্থানে নিয়ে যায়। এটি fseek (BASFILE, D, SEEK_SET) বলে;

ফাইলের শেষ থেকে "কারসার" ডি পজিশনে নিয়ে যায়। fseek (BASFILE, D, SEEK_END);

উদাহরণ:

#include "Basic.h"
MAIN
  FILE* plik;
  Input$(imie,STRING$)
  Input(wiek,VALUE)
  BSave("test.txt",STRING$,Len(STRING$))
  BLoad("test.txt",STRING$,Lof)
  Print$ STRING$ NL
  Open("test.txt",a+)
  FPrint$(" wiek")
  Seek(0)
  FInput$(STRING$)
  Print$ STRING$ NL
  plik=BASFILE;
  Open("test.2",w+)
  Out(0)
  FPrint(VALUE)
  Seek(0)
  Print Inp NL
  FInput$(STRING$)
  Print$ STRING$ NL
  Close	// zamkniecie pliku "test.2"
  BASFILE=plik;
  Close	// zamkniecie pliku "test.txt"
ENDMAIN

দ্রষ্টব্য - উপরের উদাহরণে BasicC STRING $ এবং VALUE সহায়ক ভেরিয়েবল ব্যবহার করা হয়েছে, এটি সুপারিশ করা হয় না কারণ কিছু কমান্ড তাদের মান পরিবর্তন করে।