ورودی خروجی io
خواندن از صفحهکلید، خواندن و نوشتن پرونده و نوشتن در خروجی خطا.
واردسازی ورودی خروجی
بیشتر برنامهها باید چیزی بخوانند و چیزی بنویسند. بستهی ورودی خروجی سادهترین راهها را برای این کار دارد: یک خط از کاربر بخوانید، یک پرونده را یکجا بخوانید یا بنویسید، یا با یک پروندهی باز تکهتکه کار کنید.
روالهایی که نام پرونده میگیرند (مثل خواندن پرونده) خودشان پرونده را باز میکنند و میبندند. روالهایی که پرونده* میگیرند با پروندهای کار میکنند که خودتان با سیستم عامل.بازکردن باز کردهاید؛ یادتان باشد آن را با بستن ببندید.
اندازهها در این بسته بر حسب بایت است، نه حرف. هر حرف فارسی در UTF-8 دو بایت جا میگیرد، پس اگر پروندهی فارسی را تکهتکه میخوانید، ممکن است یک حرف وسط دو تکه نصف شود.
روالها
بخوان Input
روال بخوان(): رشتهورودی() میکند. نمونهی زیر منتظر تایپ شماست، پس اینجا فقط ترجمه میشود و اجرا نمیشود.واردسازی ورودی خروجی
روال ریشه:
چاپ "نام شما چیست؟ "
نام := ورودی خروجی.بخوان()
سرچاپ "خوش آمدی،", نام
پایانخواندن Read
روال خواندن(f: پرونده*، size: طبیعی۶۴): رشتهsize بایت از جای فعلی پرونده میخواند. اگر به پایان پرونده رسیده باشید، رشتهی تهی برمیگرداند.واردسازی ورودی خروجی
واردسازی سیستم عامل
روال ریشه:
ورودی خروجی.نوشتن پرونده("داده.txt"، "salam\ndonya\npayan\n")
پ := سیستم عامل.بازکردن("داده.txt"، "rb")
سرچاپ ورودی خروجی.خواندن خط(پ)
سرچاپ ورودی خروجی.خواندن(پ، ۳ برگردان طبیعی۶۴)
ورودی خروجی.جابجایی مکان نما(پ، ۰، ۰)
چاپ ورودی خروجی.خواندن همه(پ)
ورودی خروجی.بستن(پ)
پایانخواندن خط Readline
روال خواندن خط(f: پرونده*): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: io-Read.salam
نوشتن Write
روال نوشتن(f: پرونده*، data: رشته): صحیحواردسازی ورودی خروجی
واردسازی سیستم عامل
روال ریشه:
پ := سیستم عامل.بازکردن("گزارش.txt"، "wb")
ن := ورودی خروجی.نوشتن(پ، "گزارش امروز\n")
ورودی خروجی.بستن(پ)
سرچاپ "بایتهای نوشتهشده:", ن
مبدأ := سیستم عامل.بازکردن("گزارش.txt"، "rb")
مقصد := سیستم عامل.بازکردن("رونوشت.txt"، "wb")
سرچاپ "رونوشت:", ورودی خروجی.کپی(مقصد، مبدأ), "بایت"
ورودی خروجی.بستن(مبدأ)
ورودی خروجی.بستن(مقصد)
چاپ ورودی خروجی.خواندن پرونده("رونوشت.txt")
پایانجابجایی مکان نما Seek
روال جابجایی مکان نما(f: پرونده*، offset: صحیح۶۴، whence: صحیح): صحیحoffset فاصله بر حسب بایت است و whence میگوید از کجا شمرده شود: صفر یعنی از آغاز پرونده، یک یعنی از جای فعلی و دو یعنی از پایان پرونده. اگر موفق شود صفر برمیگرداند.نمونهی این مورد همراه با موارد بالاتر آمده است: io-Read.salam
بستن Close
روال بستن(f: پرونده*)دیرکن است.نمونهی این مورد همراه با موارد بالاتر آمده است: io-Read.salam
خواندن پرونده ReadFile
روال خواندن پرونده(path: رشته): رشتهواردسازی ورودی خروجی
روال ریشه:
مسیر := "یادداشت.txt"
ورودی خروجی.نوشتن پرونده(مسیر، "خط نخست\n")
ورودی خروجی.افزودن به پرونده(مسیر، "خط دوم\n")
چاپ ورودی خروجی.خواندن پرونده(مسیر)
سرچاپ ورودی خروجی.خواندن پرونده("پروندهای که نیست.txt") == ""
پایاننوشتن پرونده WriteFile
روال نوشتن پرونده(path: رشته، data: رشته): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: io-ReadFile.salam
افزودن به پرونده AppendFile
روال افزودن به پرونده(path: رشته، data: رشته): صحیحنوشتن پرونده تعداد بایتها یا منفی یک برمیگرداند.نمونهی این مورد همراه با موارد بالاتر آمده است: io-ReadFile.salam
خط ها Lines
روال خط ها(path: رشته): وکتور<رشته>آزادکن رها کنید.واردسازی ورودی خروجی
روال ریشه:
ناپایا خطها := وکتور {} برگردان وکتور<رشته>
دیرکن خطها.آزادکن()
خطها.بیفزا("سیب")
خطها.بیفزا("انار")
خطها.بیفزا("انگور")
بایت := ورودی خروجی.نوشتن خط ها("میوهها.txt"، خطها)
سرچاپ "نوشته شد:", بایت, "بایت"
خوانده := ورودی خروجی.خط ها("میوهها.txt")
دیرکن خوانده.آزادکن()
هر (ش، م) در خوانده:
سرچاپ ش + ۱, م
پایان
پایاننوشتن خطا EPrint
روال نوشتن خطا(s: رشته)واردسازی ورودی خروجی
روال ریشه:
سرچاپ "این در خروجی عادی است"
ورودی خروجی.نوشتن خطا("هشدار: ")
ورودی خروجی.نوشتن خطا با خط جدید("این پیام در خروجی خطا میرود")
چاپ "بدون خط تازه..."
ورودی خروجی.تخلیه()
سرچاپ ""
پایاننوشتن خطا با خط جدید EPrintln
روال نوشتن خطا با خط جدید(s: رشته)نوشتن خطا، ولی پس از پیام به خط بعد میرود.نمونهی این مورد همراه با موارد بالاتر آمده است: io-EPrint.salam
تخلیه Flush
روال تخلیه()چاپ متنی بدون پایان خط نوشتهاید و میخواهید کاربر فوراً آن را ببیند، به کار میآید.نمونهی این مورد همراه با موارد بالاتر آمده است: io-EPrint.salam
خواندن همه ReadAll
روال خواندن همه(f: پرونده*): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: io-Read.salam
کپی Copy
روال کپی(dst: پرونده*، src: پرونده*): صحیح۶۴src مانده را در پروندهی dst مینویسد و تعداد بایتهای رونوشتشده را برمیگرداند. برای پروندههای بزرگ مناسب است، چون همهی پرونده را یکجا در حافظه نمیآورد.نمونهی این مورد همراه با موارد بالاتر آمده است: io-Write.salam
نوشتن خط ها WriteLines
روال نوشتن خط ها(path: رشته، lines: وکتور<رشته>): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: io-Lines.salam