ANSI escape codes

مرجع متن زیر ویکی‌پدیای فارسی، مدخل کدهای فرار انسی می‌باشد

در رایانش، کدهای فرار انسی (همچنین رشته‌ها یا توالی‌های فرار) (انگلیسی: ANSI escape codes (or escape sequences)) روشی مورد استفاده درسیگنال‌دهی درون‌مداری ‏(en)‏ (ارسال فرمان از طریق همان کابل صوتی یا تصویری) برای کنترل قالب‌بندی، رنگ‌آمیزی، ویرایش صفحه نمایش و دیگر ویژگی‌های خروجی روی ترمینال‌های متنی می‌باشد. برای کدگذاری این اطلاعات، توالی‌های خاصی از بایت‌ها (دقیقاً رشته‌های خاصی از کاراکتر) درون متن جاسازی می‌شوند، که ترمینال آنها را تفسیر می‌کند، البته نه به عنوان کدهای کاراکتری معمولی. انسی مخفف عبارت انگلیسی مؤسسه استانداردهای ملی آمریکایی می‌باشد.

کدهای انسی در دهه ۱۹۷۰ معرفی شدند و در اوائل دهه ۱۹۸۰ در بازار مینی‌کامپیوترها و سرورهای اصلی (سرور پردازنده مرکزی) رایج شدند. کدهای انسی توسط بازار سیستم تخته بولتن برای ارائه نمایشگرهای بهبودیافته در مقایسه با سیستم‌های اولیه که فاقد حرکت نشانه‌گر یا کرسر بودند مورد استفاده قرار گرفتند که به استفاده بسیار گسترده‌تر آنها منتهی شد.

نمونه استفاده از رنگ‌های ANSI

برای نمایش یک رشته به رنگ قرمز در خروجی قبل از رشته کد مربوط به رنگ مخصوص را اضافه می‌کنیم. سپس بعد از نمایش قسمت مورد نظر باید کد reset رنگ را قرا دهیم تا همه چیز به وضع قبل برگردد.

img

برای کدهای رنگی بیشتر از شکل زیر استفاده کنید:

img

سوال۱:

دکوراتورهای مختلفی برای سه (یا بیشتر) رنگ دلخواه بنویسد. در صورتی که این دکوراتور ها استفاده شوند، خروجی را به رنگ مورد نظر تغییر خواهند داد. مثال

@red
def echo(s):
    return s

سؤال ۲:

بخش‌های مختلف یک کد رنگ ANSI را می‌توان بر اساس جدول زیر تفسیر کرد: img

سه دسته دکوراتور بسازید که:

یک مورد استفاده از این دکوراتور ها را در مثال زیر مشاهده می‌کنید.

@red
@bold
@highlight
def echo(s):
    return s

سؤال ۳:

دکوراتورها توابعی هستند که آرگومان ورودی‌شان از جنس تابع و خروجی آن‌ها نیز از جنس تابع می‌باشد.

@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.