فارسی سازی برنامه های نوشته شده در توربو سی

v.b.f1

Active Member
سلام خدمت دوستان عزیز

ایا میشه برنامه هایی که به زبان سی که تو توروبو سیه میشه اونو فارسی کرد

راهی واسه فارسی سازیش هست
 

the_king

مدیرکل انجمن
سلام خدمت دوستان عزیز

ایا میشه برنامه هایی که به زبان سی که تو توروبو سیه میشه اونو فارسی کرد

راهی واسه فارسی سازیش هست

اگه منظورتون Turbo C تحت DOS است، کلا برنامه های تحت DOS برای فارسی شدن به دو چیز نیاز دارند :

مورد اول، کاراکتر های فارسی است که بایستی به جدول ASCII اضافه بشه (البته در حقیقت اضافه نمیشه، روی
یکسری از کاراکتر های دیگه بازنویسی میشه) اینکار معمولا یا توسط یک ابزار فارسی ساز تحت DOS مثل Sepand
انجام میشه و یا یک فایل جانبی مثل VGAF.EXE که کارش صرفا اضافه کردن حروف فارسی به جدول ASCII است.

مورد دوم، یک بخشی است که در حافظه مقیم بشه و زمانی که کاربر کلید های روی صفحه کلید رو فشار داد بجای
حروف انگلیسی کاراکتر های فارسی رو درج کنه. اینکار رو در بعضی برنامه های بزرگ ایرانی تحت DOS با کد نویسی
و داخل خود برنامه انجام داده اند اما اکثرا اونهم توسط ابزار فارسی ساز مثل Sepand انجام میشه.

برای فارسی کردن محیط اینگونه برنامه ها، ابتدا فایل اجرایی برنامه فارسی ساز (مثلا Sepand) رو اجرا می کنید
و سپس در محیط برنامه Turbo C با فشردن کلید Caps Lock یا Scroll Lock یا هر کلید دیگری که در فارسی ساز
تعریف شده بین زبان فارسی و انگلیسی سوئیچ کرده و تایپ می کنید.

فقط توجه کنید که چون ابزار های فارسی ساز برای DOS طراحی شده بودند، برای محیط Command Prompt
ویندوز مناسب نیستند و احتمال دارد که با ویندوز های مدرن اصلا جواب ندهند. بنابر این اگر قصد دارید که
چنین برنامه هایی را در ویندوز اجرا کنید، به ابزار هایی مثل DOSBox نیازمندید که محیط DOS را در ویندوز
شبیه سازی می کنند.
 

v.b.f1

Active Member
اقا علی پس این چیکا میکنه میشه بگین چطو کار میکنه
 

پیوست ها

  • pfarsi.zip
    11.6 کیلوبایت · بازدیدها: 24

the_king

مدیرکل انجمن
اقا علی پس این چیکا میکنه میشه بگین چطو کار میکنه

خوب این دقیقا یه نمونه از فارسی ساز های تحت DOS است ، مشابه Sepand که بهش اشاره کردم.
یک برنامه ای است که هم کاراکتر های فارسی رو به جدول کاراکتر های ASCII اضافه می کنه و هم یک بخش
مقیم در حافظه داره که موقع تایپ کردن بین فارسی و انگلیسی سوئیچ کنه.

برنامه های مقیم در حافظه برنامه هایی هستند که بصورت عادی کارشون رو تموم نمی کنند، به سیستم عامل
اعلام می کنند که کل برنامه یا بخشی از اونرو در حافظه RAM نگه دار و کاملا حافظه برنامه رو آزاد نکن.
یه همین دلیله که بعد از اجرا کردن فارسی ساز به ظاهر برنامه خاتمه پیدا کرده اما همچنان در حافظه و در حال
اجرا است.

در ضمن این فارسی ساز ها وقفه (Interrupt) صفحه کلید رو روی برنامه تنظیم کرده اند، در نتیجه هر بار که کلیدی
فشرده میشه از فیلتر برنامه فارسی ساز می گذره. اگه روی وضعیت انگلیسی باشه، برنامه تغییری رو خروجی
نمیده و اجازه میده همون کلید که فشرده شده درج بشه اما اگه وضعیت فارسی باشه، بر اساس حرفی که قبلا
نوشته شده بوده، از جدول کاراکتر های فارسی معادل اش رو انتخاب می کنه و بجای کاراکتر انگلیسی درج میشه.

بعد از اجرا کردن این فایل با فشار دادن کلید Scroll Lock بین فارسی و انگلیسی سوئیچ می کنید.
توضیحاتش رو که خودش ابتدای اجرا شدنش نشون میده.
 

v.b.f1

Active Member
دوست عزیز واسه من ناخواناست چطوری باید اجراش کنم که بتونم تو محیط توربو سی فارسی بنویسم
 

the_king

مدیرکل انجمن
دوست عزیز واسه من ناخواناست چطوری باید اجراش کنم که بتونم تو محیط توربو سی فارسی بنویسم

لابد دارین تو محیط ویندوز و با Command Prompt اجرا اش می کنید که براتون ناخوانا است، از ابزار DOSBox
کمک بگیرید.

رجوع شود به تاپیک روشن کردن چراغ های کیبورد با اسمبلی؟ که البته عنوان تاپیک ظاهرا بی ربطه.
 

v.b.f1

Active Member
اجراش کردم با داس بوکس فارسی الان چیکارش کنم چطوری تو توربو سی استفاده کنم
 

v.b.f1

Active Member
دوست عزیز از طریق داس بوکس تونستم وقتی تو برنامه تیسی از تو داس بوکس فارسی مینویسم کلی ارور میده حتی از stdio.h
 

the_king

مدیرکل انجمن
دوست عزیز از طریق داس بوکس تونستم وقتی تو برنامه تیسی از تو داس بوکس فارسی مینویسم کلی ارور میده حتی از stdio.h

مشکل رو می تونم حدس بزنم، هیچ ربطی به فارسی ساز نداره، داخل محیط DOSBox شما برای دسترسی به
Turbo C یک درایو مجازی ساختید، به همین دلیل تنظیمات Directories محیط Turbo C باید روی اون پوشه مجازی
تنظیم بشه وگرنه موقع کامپایل کردن نه فایل های Include شده رو پیدا می کنه و نه Library ها رو.
در داخل محیط Turbo C منوی Options گزینه Directories رو انتخاب کرده و بر اساس اسم درایو مجازی و
پوشه Turbo C مسیر ها رو تنظیم کنید.
 

v.b.f1

Active Member
درست شد اما مشکل بعدی علی راستی مزاحم نباشیما

ورور سوال میپرسیم

الان فارسی کردم کامپایل کردم ذخیرش کردم اما وقتی اون فایل ذخیره شده رو اجرا میکنم ناخواناست
یعنی میخوام وقتی فایل ذخیره شده رو جایی میبرم روی یه کامپیوتر دیگه اونجا فارسی نشون بده

بازم بابت همه راهنماییهات ممنون
 

the_king

مدیرکل انجمن
الان فارسی کردم کامپایل کردم ذخیرش کردم اما وقتی اون فایل ذخیره شده رو اجرا میکنم ناخواناست
یعنی میخوام وقتی فایل ذخیره شده رو جایی میبرم روی یه کامپیوتر دیگه اونجا فارسی نشون بده

بازم بابت همه راهنماییهات ممنون

طبیعتا اگه جدول کاراکتر های پیشفرض ASCII با کاراکتر های فارسی جایگزین نشه، بجای متن فارسی
یکسری کاراکتر های نامربوط و بی معنی نمایش داده میشه.

می بایستی فارسی ساز رو در کنار کد برنامه (یا فایل اجرایی برنامه) ضمیمه کنید تا در کامپیوتر های دیگه
قبل از اجرا کردن برنامه فارسی ساز اجرا اش کنند.

البته می توانید در کد برنامه تون همون ابتدای اجرا شدن برنامه فایل اجرایی فارسی ساز رو بصورت خودکار
فراخوانی کنید :
کد:
#include <stdlib.h>
#include <stdio.h>

int main()
{
	system("pfarsi.exe");
.
.
.
 

جدیدترین ارسال ها

بالا