نمایش نتایج 1 تا 2 از 2

نام تاپیک: تغییر جهت پرانتز هنگام ذخیره TRichEdit

  1. #1
    کاربر دائمی آواتار mbshareat
    تاریخ عضویت
    آبان 1387
    محل زندگی
    شهر مقدس قم-چهارمردان-کوچه 37
    پست
    963

    تغییر جهت پرانتز هنگام ذخیره TRichEdit

    سلام
    من نیاز به برنامه ای دارم که متنی با ساختار قلم داس رو بخونه و بنویسه .
    بنابر این باید هنگام بارگذاری و ذخیره متن، کارکترها رو دستکاری کنم.
    از اونجا که نیاز به ویرایش متن دارم از RichEdit استفاده می کنم.
    مشکلی که برام پیش میاد اینکه جهت پرانتز و خانواده اش (){}[]<>«» در ریچ ادیت همیشه همونطور که دیده میشند نیست.ممکنه به نظر برسه پرانتز بازه و ذخیره کنیم پرانتز بسته ذخیره بشه.
    ظاهرا جهت (باز و بسته بودن)این کاکترها طبق کارکتر قبل یا بعد از خود تعریف میشند.
    من حتی شده پرانتز رو باز و بسته کنم و وسط و کنارش هم انگلیسی بنویسم بعد از ذخیره و بازیابی ببینم جهت پرانتز و باز و بسته یکی شده و جای دو کلمه انگلیسی هم تغییر کرده.

    گفتم شاید اگر کارکتر دیگه ای رو با شکل پرانتز تعریف کنم مشکل حل بشه .
    مثلا کارکترهای 135و134رو به شکل پرانتز بسته و باز تعریف کردم.یعنی کپی پیست بکنیم در برنامه دیگه ‡† الصاق می کنه. ولی در نمایش به خاطر نوع تعریف کارکتر در قلم مخصوص، پرانتز به نظر می رسه .
    اما هنوز هم این کارکترها رو مثل پرانتز بررسی می کنه.

    این نکته رو هم بگم که در KeyPress کارکترهای همخانواده پرانتز رو با کارکتر جایگزین که شکلشون رو مثل پرانتز تعریف کردم جایگزین می کنم.
    شاید اگر از Richedit.lines.savetofile استفاده کنم درست ذخیره کنه ولی به درد من نمیخوره چون من کارکترهای تبدیل شده رو در فایل میخوام.

    بنابر این مجبورم با کدی مثل کد زیر (تبدیل کارکترها هم کد جدا میخواد)کارکتر ها رو تبدیل کنم.
    Procedure LoadFileStr(FileName:String;Out S:String);Var
    St:TStrings;
    Begin
    St:=TStringList.Create;
    St.LoadFromFile(FileName);
    S:=Copy(St.Text,1,Length(St.Text)-2);
    St.free;
    End;
    procedure SaveFileStr(FileName,S:String);
    Var
    F:File;
    begin
    AssignFile(F,FileName);
    ReWrite(F,1);
    Seek(F,0);
    BlockWrite(F,Pointer(S)^,Length(S));
    CloseFile(F);
    end;
    procedure TForm1.SaveButClick(Sender: TObject);
    var
    S:String;
    begin
    S:=RichEdit1.Lines.Text;
    SaveFileStr('C:\tst.txt',S);
    end;


    procedure TForm1.LoadButClick(Sender: TObject);
    var
    S:String;
    begin
    LoadFileStr('C:\tst.txt',S);
    RichEdit1.Lines.Text:=S;
    end;



    حالا اگر مثلا ریچ ادیت راست چین باشه (که نیاز هم دارم اینطور باشه)و بنویسیم B)L) وقت بازیابی از فایل برعکس میشه و میشه )B(L

    من سه برنامه طراحی قلم رو امتحان کردم.FontCreator Fontographer , FontLabStudio. فقط آخری تونست قلم معتبر بسازه.
    (گاهی برنامه اصلا نمی تونه قلم ttf بسازه و گاهی میسازه ولی وقتی استفاده می کنی مثلا به جای تاهوما، آریال نشون میده و تعیین اسم قلم هم دنگ و فنگ داره)
    شکل خانواده پرانتز رو با کپی پیست خانه جدول کارکتر،تعریف کردم.(ممکن بود بشه برم داخل سلول مربوط به کارکتر و شکل رو کپی بگیرم یا اصلا شکل پرانتز رو در سلول مثلا 134و135 خودم ترسیم کنم)
    علاوه بر اینها ظاهرا تعیین زبان صفحه کلید در KeyPress ، نمیتونه مشکل رو حل کنه.

    کسی میتونه راه حلی ارائه کنه؟
    آیا نوع تعریف کارکتر میتونه طور دیگه ای باشه؟ آیا کسی در مورد تعریف کارکتر تجربه ای داره؟
    آیا میشه در ریچ ادیت مثل تعیین رنگ، استایل برای این کارکترها تعیین کرد که مثلا همیشه انگلیسی حساب بشند؟

    با اینکه مشکل ترکیب انگلیسی و فارسی عام البلوی است، به احتمال ناچیزی امیدوارم کسی پیدا بشه به جای سوال کردن،یه راهنمایی بکنه.
    من حتی نمی دونم چی رو در گوگل جستجو بدم این مشکل خارجیها نیست ...
    آخرین ویرایش به وسیله mbshareat : چهارشنبه 07 خرداد 1399 در 22:25 عصر

  2. #2
    کاربر دائمی آواتار hp1361
    تاریخ عضویت
    دی 1384
    محل زندگی
    تهران
    پست
    750

    نقل قول: تغییر جهت پرانتز هنگام ذخیره TRichEdit

    نقل قول نوشته شده توسط mbshareat مشاهده تاپیک
    سلام
    من نیاز به برنامه ای دارم که متنی با ساختار قلم داس رو بخونه و بنویسه .
    بنابر این باید هنگام بارگذاری و ذخیره متن، کارکترها رو دستکاری کنم.
    از اونجا که نیاز به ویرایش متن دارم از RichEdit استفاده می کنم.
    مشکلی که برام پیش میاد اینکه جهت پرانتز و خانواده اش (){}[]<>«» در ریچ ادیت همیشه همونطور که دیده میشند نیست.ممکنه به نظر برسه پرانتز بازه و ذخیره کنیم پرانتز بسته ذخیره بشه.
    ظاهرا جهت (باز و بسته بودن)این کاکترها طبق کارکتر قبل یا بعد از خود تعریف میشند.
    من حتی شده پرانتز رو باز و بسته کنم و وسط و کنارش هم انگلیسی بنویسم بعد از ذخیره و بازیابی ببینم جهت پرانتز و باز و بسته یکی شده و جای دو کلمه انگلیسی هم تغییر کرده.

    گفتم شاید اگر کارکتر دیگه ای رو با شکل پرانتز تعریف کنم مشکل حل بشه .
    مثلا کارکترهای 135و134رو به شکل پرانتز بسته و باز تعریف کردم.یعنی کپی پیست بکنیم در برنامه دیگه ‡† الصاق می کنه. ولی در نمایش به خاطر نوع تعریف کارکتر در قلم مخصوص، پرانتز به نظر می رسه .
    اما هنوز هم این کارکترها رو مثل پرانتز بررسی می کنه.

    این نکته رو هم بگم که در KeyPress کارکترهای همخانواده پرانتز رو با کارکتر جایگزین که شکلشون رو مثل پرانتز تعریف کردم جایگزین می کنم.
    شاید اگر از Richedit.lines.savetofile استفاده کنم درست ذخیره کنه ولی به درد من نمیخوره چون من کارکترهای تبدیل شده رو در فایل میخوام.

    بنابر این مجبورم با کدی مثل کد زیر (تبدیل کارکترها هم کد جدا میخواد)کارکتر ها رو تبدیل کنم.
    Procedure LoadFileStr(FileName:String;Out S:String);Var
    St:TStrings;
    Begin
    St:=TStringList.Create;
    St.LoadFromFile(FileName);
    S:=Copy(St.Text,1,Length(St.Text)-2);
    St.free;
    End;
    procedure SaveFileStr(FileName,S:String);
    Var
    F:File;
    begin
    AssignFile(F,FileName);
    ReWrite(F,1);
    Seek(F,0);
    BlockWrite(F,Pointer(S)^,Length(S));
    CloseFile(F);
    end;
    procedure TForm1.SaveButClick(Sender: TObject);
    var
    S:String;
    begin
    S:=RichEdit1.Lines.Text;
    SaveFileStr('C:\tst.txt',S);
    end;


    procedure TForm1.LoadButClick(Sender: TObject);
    var
    S:String;
    begin
    LoadFileStr('C:\tst.txt',S);
    RichEdit1.Lines.Text:=S;
    end;



    حالا اگر مثلا ریچ ادیت راست چین باشه (که نیاز هم دارم اینطور باشه)و بنویسیم B)L) وقت بازیابی از فایل برعکس میشه و میشه )B(L

    من سه برنامه طراحی قلم رو امتحان کردم.FontCreator Fontographer , FontLabStudio. فقط آخری تونست قلم معتبر بسازه.
    (گاهی برنامه اصلا نمی تونه قلم ttf بسازه و گاهی میسازه ولی وقتی استفاده می کنی مثلا به جای تاهوما، آریال نشون میده و تعیین اسم قلم هم دنگ و فنگ داره)
    شکل خانواده پرانتز رو با کپی پیست خانه جدول کارکتر،تعریف کردم.(ممکن بود بشه برم داخل سلول مربوط به کارکتر و شکل رو کپی بگیرم یا اصلا شکل پرانتز رو در سلول مثلا 134و135 خودم ترسیم کنم)
    علاوه بر اینها ظاهرا تعیین زبان صفحه کلید در KeyPress ، نمیتونه مشکل رو حل کنه.

    کسی میتونه راه حلی ارائه کنه؟
    آیا نوع تعریف کارکتر میتونه طور دیگه ای باشه؟ آیا کسی در مورد تعریف کارکتر تجربه ای داره؟
    آیا میشه در ریچ ادیت مثل تعیین رنگ، استایل برای این کارکترها تعیین کرد که مثلا همیشه انگلیسی حساب بشند؟

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

    در کدپیج ها، کاراکتری هست که جهت تایپ رو تغییر میده(RLM, LRM). در مورد اینا جستجو کنید

تاپیک های مشابه

  1. نمایش جدول فایلهای rtf در TRichEdit
    نوشته شده توسط polestar در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 0
    آخرین پست: یک شنبه 09 خرداد 1389, 12:17 عصر
  2. render a TRichEdit text onto a canvas را به صورت یک برنامه دلفی در بیاورید
    نوشته شده توسط ali_abbasi22145 در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 3
    آخرین پست: یک شنبه 13 اردیبهشت 1388, 13:07 عصر
  3. مخفی کردن مکان نما در TRichEdit
    نوشته شده توسط Delphi Coder در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 3
    آخرین پست: یک شنبه 17 شهریور 1387, 12:57 عصر
  4. نحوه استفاده از Align ها در TRichEdit
    نوشته شده توسط Bahmany در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 3
    آخرین پست: یک شنبه 19 خرداد 1387, 12:56 عصر
  5. سوال در مورد TRichedit
    نوشته شده توسط SUNMOON در بخش برنامه نویسی در Delphi
    پاسخ: 4
    آخرین پست: پنج شنبه 04 بهمن 1386, 15:06 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •