rasol_afkham
شنبه 16 فروردین 1393, 17:59 عصر
:متفکر:
چطور می توان اندازه کاراکترهای یک رشته را تعیین نمود. برای مثال من می خواهم متغیری از نوع رشته داشته باشم که تنها بتوان تا 30 کاراکتر را در آن ذخیره نمود و سپس آن را بر روی فایل ذخیره کرد. حال اگر در این متغیر رشته "رسول" قرار گیرد. این رشته 4 کاراکتر دارد، پس برنامه به جای 26 کاراکتر مابقی، 24 فاصله خالی را در فایل ذخیره کند. در ضمن رشته از نوع Unicode و یا UTF باشد. مثل کاری که بانکهای اطلاعاتی انجام می دهند. چون برنامه C# وقتی که رشته ای را در فایل ذخیره می کند، اگر کاراکترهای آن از نوع Unicode باشند برای هر کاراکتر 2 بایت در نظر می گیرد و اگر کد اسکی باشند 1 بایت. و اگر رشته مورد نظر ترکیبی از کاراکترهای اسکی و یونیکد باشد، برای کاراکترهای اسکی 1 بایت و کاراکترهای یونیکد 2 بایت را در نظر می گیرد.
برای مثال اگر رشته "رسول افخم" را بخواهیم در فایل ذخیره نماییم. این رشته 9 کاراکتر دارد.به اضافه کاراکتر تعیین کنند آخر رشته. یعنی جمعا 10 کاراکتر دارد. پس باید 20 بایت جا اشغال کند. ولی برنامه کاراکتر تعیین کننده آخر رشته را اسکی و همچنین فاصله خالی بین نام و نام خانوادگی را هم کاراکتر اسکی در نظر می گیرد و بقیه کاراکترها را یونیکد و جمعا برای این رشته 18 بایت فضا در فایل اشغال می شود.
(امیدوارم که سوال را صحیح گفته باشم). حالا چطور می توان تعیین نمود که همه کاراکترهای رشته را از نوع یونیکد و یا UTF در نظر گرفته و برای هر کاراکتر 2 بایت را در نظر بگیرد و یا برای هر کاراکتر 1 بایت را در نظر بگیرد؟
چطور می توان اندازه کاراکترهای یک رشته را تعیین نمود. برای مثال من می خواهم متغیری از نوع رشته داشته باشم که تنها بتوان تا 30 کاراکتر را در آن ذخیره نمود و سپس آن را بر روی فایل ذخیره کرد. حال اگر در این متغیر رشته "رسول" قرار گیرد. این رشته 4 کاراکتر دارد، پس برنامه به جای 26 کاراکتر مابقی، 24 فاصله خالی را در فایل ذخیره کند. در ضمن رشته از نوع Unicode و یا UTF باشد. مثل کاری که بانکهای اطلاعاتی انجام می دهند. چون برنامه C# وقتی که رشته ای را در فایل ذخیره می کند، اگر کاراکترهای آن از نوع Unicode باشند برای هر کاراکتر 2 بایت در نظر می گیرد و اگر کد اسکی باشند 1 بایت. و اگر رشته مورد نظر ترکیبی از کاراکترهای اسکی و یونیکد باشد، برای کاراکترهای اسکی 1 بایت و کاراکترهای یونیکد 2 بایت را در نظر می گیرد.
برای مثال اگر رشته "رسول افخم" را بخواهیم در فایل ذخیره نماییم. این رشته 9 کاراکتر دارد.به اضافه کاراکتر تعیین کنند آخر رشته. یعنی جمعا 10 کاراکتر دارد. پس باید 20 بایت جا اشغال کند. ولی برنامه کاراکتر تعیین کننده آخر رشته را اسکی و همچنین فاصله خالی بین نام و نام خانوادگی را هم کاراکتر اسکی در نظر می گیرد و بقیه کاراکترها را یونیکد و جمعا برای این رشته 18 بایت فضا در فایل اشغال می شود.
(امیدوارم که سوال را صحیح گفته باشم). حالا چطور می توان تعیین نمود که همه کاراکترهای رشته را از نوع یونیکد و یا UTF در نظر گرفته و برای هر کاراکتر 2 بایت را در نظر بگیرد و یا برای هر کاراکتر 1 بایت را در نظر بگیرد؟