ANSI escape codes
مرجع متن زیر ویکیپدیای فارسی، مدخل کدهای فرار انسی میباشد
در رایانش، کدهای فرار انسی (همچنین رشتهها یا توالیهای فرار) (انگلیسی: ANSI escape codes (or escape sequences)) روشی مورد استفاده درسیگنالدهی درونمداری (en) (ارسال فرمان از طریق همان کابل صوتی یا تصویری) برای کنترل قالببندی، رنگآمیزی، ویرایش صفحه نمایش و دیگر ویژگیهای خروجی روی ترمینالهای متنی میباشد. برای کدگذاری این اطلاعات، توالیهای خاصی از بایتها (دقیقاً رشتههای خاصی از کاراکتر) درون متن جاسازی میشوند، که ترمینال آنها را تفسیر میکند، البته نه به عنوان کدهای کاراکتری معمولی. انسی مخفف عبارت انگلیسی مؤسسه استانداردهای ملی آمریکایی میباشد.
کدهای انسی در دهه ۱۹۷۰ معرفی شدند و در اوائل دهه ۱۹۸۰ در بازار مینیکامپیوترها و سرورهای اصلی (سرور پردازنده مرکزی) رایج شدند. کدهای انسی توسط بازار سیستم تخته بولتن برای ارائه نمایشگرهای بهبودیافته در مقایسه با سیستمهای اولیه که فاقد حرکت نشانهگر یا کرسر بودند مورد استفاده قرار گرفتند که به استفاده بسیار گستردهتر آنها منتهی شد.
نمونه استفاده از رنگهای ANSI
برای نمایش یک رشته به رنگ قرمز در خروجی قبل از رشته کد مربوط به رنگ مخصوص را اضافه میکنیم. سپس بعد از نمایش قسمت مورد نظر باید کد reset رنگ را قرا دهیم تا همه چیز به وضع قبل برگردد.
برای کدهای رنگی بیشتر از شکل زیر استفاده کنید:
سوال۱:
دکوراتورهای مختلفی برای سه (یا بیشتر) رنگ دلخواه بنویسد. در صورتی که این دکوراتور ها استفاده شوند، خروجی را به رنگ مورد نظر تغییر خواهند داد. مثال
@red
def echo(s):
return s
سؤال ۲:
بخشهای مختلف یک کد رنگ ANSI را میتوان بر اساس جدول زیر تفسیر کرد:
سه دسته دکوراتور بسازید که:
- دسته اول «شدت رنگ» را مشخص کند. (نامهای پیشنهادی:
highlight
وexaggerate
) - دسته دوم «رنگ» را تغییر دهند (
red
,blue
,cyan
,green
, …) - دسته سوم «نوع قلم» را تعیین کنند: (
bold
,underline
,revert
)
یک مورد استفاده از این دکوراتور ها را در مثال زیر مشاهده میکنید.
@red
@bold
@highlight
def echo(s):
return s
سؤال ۳:
دکوراتورها توابعی هستند که آرگومان ورودیشان از جنس تابع و خروجی آنها نیز از جنس تابع میباشد.
- بررسی کنید چطور میتوانیم تابعی بنویسیم که دکوراتور
return
کند؟ - به عنوان مثال اگر
color
نام تابعی باشد که دکوراتور تولید کند، یک نمونه از استفادهآن را در شکل زیر مشاهده میکنید:
@color('red')
def echo(s):
return s
FYI:
برای تغییر بخشی از یک رشته میتوانیم از متد replace
استفاده کنیم.مثلا:
>>> text1 = "all work and no play makes Jack a dull boy."
>>> text2 = text1.replace("Jack", "Me")
>>> print(text2)
all work and no play makes Me a dull boy.