PDA

View Full Version : سوال: مدیریت نوشتار (کاری که ویندوز خودش انجام می دهد) ؟



SATIAR2008
شنبه 08 مرداد 1390, 23:07 عصر
مدیریت نوشتار (کاری که ویندوز خودش انجام می دهد) ؟

درود بر شما دوستان

می خواستم نحوه نمایش نوشتار را بدون مدیریت ویندوز انجام دهم.

زمانی که ما متنی را در قالب string به سیستم می دهیم بصورت حروف جداگانه ذخیره می کند

مثال : اگر ما متن "محمد" را با قالب string به سیستم بدهیم به صورت ==> (م ح م د) ذخیره می شود
و زمانی که سیستم می خواهد متن را نمایش دهد آن را مدیریت می کند

اگر حرف اول باشد و حرف بعد از آن space نباشد به صورت ==> (مـ) می شود
اگر حرف میانی باشد و قبل و بعد از آن space نباشد به صورت ==> (ـحـ) می شود و (ـمـ)
و اگر حرف پایانی باشد و قبل از آن spase نباشد به صورت ==> (ـد) می شود

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

خودم مشخص کنم که کدی از کارکتر نمایش داده شود .

یا اینکه بجای این که متن string رو بدم کد کارکتر رو بدم و سیستم فقط زحمت نمایش کارکتر رو بکشه

SATIAR2008
یک شنبه 09 مرداد 1390, 14:35 عصر
کسی در باره چگونگی مدیریت نوشتاری سیستم نی دونه ؟

خوب دوستان برنامه نویس :

کدهای کارکتری برای متن "محمد" م = 0645 ، ح = 062D ، م = 0645 ، د = 062F

اما من از این کد ها نمی خوام استفاده کنم
از این ها می خوام استفاده کنم مـ = FEE3 ، ـحـ = FEA4 ، ـمـ = FEE4 ، ـد = FEAA

دوستان عزیز کسی می دونه چگونه می تونم از کدهای دومی استفاده کنم بجای کدهای اول؟

کامپیوتر زمانی که متن را با قالب
string s = "محمد";
تعریف می کنیم در حافظه کامپیوتر به صورت کدهای اولی که حروف جدا از هم هستن ذخیره می شه و زمان نمایش مدیریت می شه که و با توجه به جایگاه حرف از کدوم کد دومی استفاده بشه !

حالا من می خوام که این مدیریت سیستم رو خودم انجام بدم که چه کدی ذخیره بشه و یا چه کدی نمایش داده بشه !

SATIAR2008
چهارشنبه 12 مرداد 1390, 13:15 عصر
استاد بزرگان برنامه نویسی سایت کجا هستن ؟

Farshid007
چهارشنبه 12 مرداد 1390, 13:58 عصر
والا این چیزی که فرمودی یه خورده که چه عرض کنم ،خیلی عجیب غریبه(اینا دیگه چیه؟؟؟؟):گیج:
اساتید بزرگ کم اوردند:لبخند:

mehranmsba
پنج شنبه 13 مرداد 1390, 17:10 عصر
این ساختار یعنی ساختارهای متن پیوسته مثل فارسی و عربی و چند زبان دیگه که به تعداد انگشت های یک دست هم نمی شن تا مدتی حتی از طرف مایکروسافت هم پشتیبانی نمی شد تا اینکه در XP ارائه گردید. Adobe هنوز هم این موتور رو در بعضی نسخه هاش ارائه می کنه که در اصطلاح بهش ME می گویند.
پس اگر می خواهید ساختار فوق را پیاده سازی کنید کافیست تا حالات تمام حروف خودمون رو بدنید مثلا 4 حالات برای غ و دوحالت برای ق و... آن وقت شما رشته را تحت یک آرایه کاراکتر می گیرید . سپس خانه های قبلی و بعدی یک کاراکتر را بررسی می کنید و اگر بعد از آن Space بود حالت پایانی حرف .اگر قبل آن Space بود شکل اول حرف و تا آخر تک تک خانه های حافظه آرایه را داخل یک For بررسی می کنید و به ازای برقراری هر شرط یک رشته را که قبلا تعریف کرده ایدبا کد کاراکتر مورد نظر که شکل صحیح آن حرف است پر می کنید.
این روند را که تا پایان بروید رشته بازگشتی آن تابع متن پیوسته شما خواهد بود.
این الگوریتم به ذهنم رسید، ولی همیشه راه های دیگری هم هست.

موفق باشید.

SATIAR2008
یک شنبه 16 مرداد 1390, 13:03 عصر
با تشکر از شما دوست عزیز که نظر خود را بیان کردید.

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

AAtoZZ
یک شنبه 16 مرداد 1390, 15:57 عصر
اما من از این کد ها نمی خوام استفاده کنم
از این ها می خوام استفاده کنم مـ = FEE3 ، ـحـ = FEA4 ، ـمـ = FEE4 ، ـد = FEAA

دوستان عزیز کسی می دونه چگونه می تونم از کدهای دومی استفاده کنم بجای کدهای اول؟

این کدها رو از کجا آوردید؟

SATIAR2008
جمعه 18 شهریور 1390, 13:19 عصر
این کدها رو از کجا آوردید؟


دوست عزیز این کدها از قسمت مپ کارکتر ویندوز می تونی بدست بیاری

علیرضا حسن زاده
جمعه 18 شهریور 1390, 16:42 عصر
ممکنه بفرمایید چرا می خواید این کار رو بکنید؟
فکر جستجو تو رشته رو هم کردین که اگه یه موقع با این روش یه متن رو ذخیره کردین بعدا چطوری می خواین تو اون متن جستجو انجام بدین؟(نمگم نمیشه ولی کار پرهزینه ای میشه) به نظرم بهترین روش همین روش سیستم عامله که کاراکترهای در زمان نمایش مدیریت میکنه و مشکلات بعدی برای جستجو روهم نداره
این کار رو برای برنامه تحت داس انجام داده بودم ولی ویندوز فرق میکنه(کلا به نظر من کار درستی نیست که بخواین همچین کاری انجام بدین البته اگه پشت سرش دلیل قانع کننده ای داشته نداشته باشین)
برای کاری هم که می خواید انجام بدین خیلی راحت می تونید کد کاراکترها رو تبدیل به کارکتر کنید و مثلا تو تکست باکس نشون بدین این کار رو هم می تونید کاراکتر رو قبل از اینکه نمایش داده بشه و زمان زدن کلید انجام بدین ولی همونطور که گفتم پردازش همچین کاری یه سرباز اضافی برای سیستم هست که باید دلیل خوبی برای انجامش داشته باشین

exlord
جمعه 18 شهریور 1390, 19:00 عصر
میتونی کد اسکی شونو پیدا کنی و از اونا استفاده کنی ...

int c = (int)'ﺤ';//65188
int d = (int)'ﻤ';//65252

label1.Text = Char.ConvertFromUtf32(c).ToString();

linux
جمعه 18 شهریور 1390, 19:01 عصر
مدیریت نوشتار (کاری که ویندوز خودش انجام می دهد) ؟
درود بر شما دوستان
می خواستم نحوه نمایش نوشتار را بدون مدیریت ویندوز انجام دهم.
زمانی که ما متنی را در قالب string به سیستم می دهیم بصورت حروف جداگانه ذخیره می کند
مثال : اگر ما متن "محمد" را با قالب string به سیستم بدهیم به صورت ==> (م ح م د) ذخیره می شود
و زمانی که سیستم می خواهد متن را نمایش دهد آن را مدیریت می کند
اگر حرف اول باشد و حرف بعد از آن space نباشد به صورت ==> (مـ) می شود
اگر حرف میانی باشد و قبل و بعد از آن space نباشد به صورت ==> (ـحـ) می شود و (ـمـ)
و اگر حرف پایانی باشد و قبل از آن spase نباشد به صورت ==> (ـد) می شود
حالا من نمی خواهم سیستم زحمت بکشه این کار رو انجام بده ، می خواهم خودم این کار رو انجام.
خودم مشخص کنم که کدی از کارکتر نمایش داده شود .
یا اینکه بجای این که متن string رو بدم کد کارکتر رو بدم و سیستم فقط زحمت نمایش کارکتر رو بکشه
این چیزی که شما می خواهید اصطلاحا الگوریتم bidi گفته می شود.
که به زبان C# هم پیاده سازی شده در قالب پروژه ای به اسم nbidi در این آدرس http://sourceforge.net/projects/nbidi/ اطلاعات بیشتری بدست می آورید در این pdf کل الگوریتم شرح داده شده http://www.unicode.org/reports/tr9/

saman2
سه شنبه 16 اسفند 1390, 16:26 عصر
البته ممکنه سئوال من خیلی به موضوع تاپیک مرتبط نباشه ولی نخواستم یه تاپیک مجزا براش ایجاد کنم، چون یکی از سئوالای خاص خودمه که مثل همیشه شاید جواب خیلی ساده ای داشته باشه (و البته شایدم غامض!).
سئوال من درباره پردازش رشته ها در دات نت هستش. دات نت برای پردازش کاراکتر و رشته ها تعدادی عضو داره. قاعدتا این اعضا ابتدائا برای کار با الفبای انگلیسی ایجاد شده اند،اما ما از اونا برای زبان فارسی هم استفاده می کنیم. میخواستم بپرسم اولا آیا همیشه این اعضا کاملا یکسان برای هر الفبا و زبانی کار می کنن؟ چون تابحال که من بهش برنخوردم.
سئوال دوم، اینکه کسی از دوستان میدونه مثلا تابعی مثل IsChar یا مشابه اون چطوری روی کاراکترهای فارسی پردازش انجام میده؟