গ্রাফিক্সের ভিত্তিতে স্ট্রিং ক্লাস?


9

আমি ভাবছি কেন আমাদের কাছে এমন কিছু স্ট্রিং ক্লাস নেই যা কোড পয়েন্ট বা অক্ষরের পরিবর্তে ইউনিকোড গ্রাফিম ক্লাস্টারের একটি স্ট্রিং উপস্থাপন করে। আমার কাছে মনে হয় বেশিরভাগ অ্যাপ্লিকেশনগুলিতে প্রোগ্রামারদের কোড পয়েন্টগুলি থেকে বিন্যাস করার চেয়ে প্রয়োজনে গ্রাফিমের উপাদানগুলি অ্যাক্সেস করা সহজ হবে, যা কেবল "মিড-গ্রাফিম" -র স্ট্রিংটিকে অনিয়মিতভাবে এড়িয়ে চলতে না পারলেও প্রয়োজনীয় দেখা যায় (কমপক্ষে তত্ত্বে)। অভ্যন্তরীণভাবে একটি স্ট্রিং ক্লাস একটি চলক দৈর্ঘ্য এনকোডিং যেমন ইউটিএফ -8, ইউটিএফ -16, বা এই প্রসঙ্গে এমনকি ইউটিএফ -32 চলক দৈর্ঘ্যও ব্যবহার করতে পারে; বা তাদের সকলের জন্য সাবক্লাসগুলি বাস্তবায়ন করুন (এবং রান-টাইমে বিকল্পটি পছন্দটি কনফিগার করুন যাতে বিভিন্ন ভাষা তাদের অনুকূল এনকোডিংগুলি ব্যবহার করতে পারে)। তবে প্রোগ্রামাররা যদি স্ট্রিং পরিদর্শন করার সময় গ্রাফিম ইউনিটগুলি "দেখতে" পারত, তবে '


আমার ধারণা অনেকটা সময় কেটে গেছে, এবং এখন আমাদের কাছে বেশ কয়েকটি ভাষা রয়েছে যা আসলে এটি করে। : ডি
ট্রেজকাজ

উত্তর:


4

যথাযথতা পাওয়ার সর্বোত্তম পদ্ধতির মতো মনে হচ্ছে প্রোগ্রামারদের "স্ট্রিং হ্যাকিং" করা থেকে বিরত রাখা ... আপনার নিজের শব্দ মোড়ানো, হাইফেনেশন, শব্দের গণনা, ন্যায়সঙ্গততা, কার্সার মুভমেন্ট ইত্যাদি রুটিন লিখতে ঠিক হবে না। সমস্ত আধুনিক ইউআই ফ্রেমওয়ার্কগুলি আজকাল আপনার জন্য এই জিনিসগুলি করবে।

অর্থাৎ, আপনি যে বিমূর্ততাটি নিয়ে সাধারণত কাজ করবেন তা হ'ল জিটিকে যেমন: "অনুচ্ছেদে প্রদর্শন অবজেক্ট", এর বেশি: http://library.gnome.org/devel/pango/stable/pango-Layout-Objects.html

গ্রাফিম স্ট্রিংয়ের পরিবর্তে, যেমন: http://library.gnome.org/devel/pango/stable/pango-Glyph-Storage.html

গ্লাইফগুলির একটি স্ট্রিংয়ে পৌঁছানোর জন্য আপনার এমন তথ্য প্রয়োজন যা কেবলমাত্র "ভিউ" স্তরে উপলব্ধ, তাই বেশিরভাগ স্ট্রিংয়ের ব্যবহারে এই তথ্য নাও থাকতে পারে। উদাহরণস্বরূপ, আপনাকে ফন্টটি জানতে হবে, কারণ ফন্টগুলির বিভিন্ন লিগাচার থাকতে পারে।

এই ধরণের ব্যবহারিক বিষয় বাদ দিয়ে গ্লিফগুলি সম্ভবত আপনি যা চান তা নয়।

অনেকগুলি প্রসঙ্গে আপনি এই ইউপিএলে প্রদর্শিত যথাযথ ইউনিকোড বৈশিষ্ট্যগুলি ব্যবহার করতে চান উদাহরণস্বরূপ: http://library.gnome.org/devel/pango/stable/pango- পাঠ্য-প্রসেসিং html#PangoLogAtr

আপনি যে কাঠামোটি থেকে দেখতে পাচ্ছেন (যেটি ইউনিকোড অ্যালগরিদমগুলি প্রতিফলিত করে) গ্লিফ সীমানায় বিভিন্ন জিনিস করা চরিত্রের সীমানায় তাদের করা ছাড়া আর সঠিক নয়।

এই দুটি চশমা বিভিন্ন ধরণের সীমানা খুঁজতে অ্যালগরিদমগুলি বর্ণনা করে:

পাঠ্য প্রক্রিয়াকরণ করাতে অ্যালগোরিদমের সাথে সেই সীমানাগুলি সন্ধান করা এবং তারপরে সীমানা দিয়ে কাজ করা জড়িত।

আপনি যদি সমস্ত ভাষা সঠিকভাবে পরিচালনা করতে কতটা কঠিন তা খনন করতে শুরু করেন, আপনি খুব তাড়াতাড়ি বুঝতে পারবেন আপনার একটি লাইব্রেরি দরকার যা পুরো অনুচ্ছেদে দেখে এবং সেগুলি সঠিকভাবে পরিচালনা করে। উইন্ডোজ, ম্যাক, লিনাক্স (কিউটি এবং জিটিকে), এবং জাভা সকলেই এর জন্য সুবিধাদি নিয়ে আসে, উদাহরণস্বরূপ http://site.icu-project.org/ রয়েছে ।

ওয়েব অ্যাপ্লিকেশন লেখার সময়, দুর্ভাগ্যক্রমে আপনি যতদূর জানি ব্রাউজারটিকে (সম্ভবত ওএস দ্বারা সহায়তা করা) এই জিনিসগুলি করতে দেওয়া উচিত। আপনি জাভাস্ক্রিপ্ট বা সার্ভারের পক্ষে যা করতে পারেন তা হ'ল এটি গোলযোগ।

সম্ভবত আমি উত্তরটি সংক্ষিপ্ত করে বলতে পারি: প্রাকৃতিক ভাষার পাঠ্যের সর্বাধিক স্ট্রিং ম্যানিপুলেশন নষ্ট হয়ে গেছে, সুতরাং স্ট্রিং ক্লাস সম্পর্কে খুব একটা উদ্বেগ নয়, সম্ভবত এটির কোনও পদ্ধতি না থাকলেও ;-)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.