PDA

View Full Version : "ی" مشکل ساز



ali ali10
شنبه 25 مهر 1394, 12:26 عصر
با سلام
نمی دانم تا کنون از دوستان کسی به این مشکل برخورد کرده یا نه اگر کسی راه حل این مشکل را می داند لطفا به من کمک کند
من با دستور fopen فایل های را باز می کنم و تقریبا با آن مشکل نداشتم تا آنکه متوجه شدم برای باز کردن برخی از فایل ها با نام فارسی پیام خطا صادر می شود با دردسر زیاد متوجه شدم فایل هایی که در آنها حرف "ی" و جود دارد در باز کردن آنها تابع fopen به اشاره گر فایل مقدار صفر را می دهد حالا برای رفع این مشکل چه باید کرد؟؟؟
من فکر می کنم مقدار کد اسکی اختصاص داده شده به حرف "ی" احتمالا جزو آن کدهای است که برای نام فایل ها نمی توان از آن استفاده کرد آیا درست است؟
لطفا اگر کسی راه حل مشکل را می داند مرا راهنمایی کند؟

hamedBB
شنبه 25 مهر 1394, 14:13 عصر
من تا به حال این رو تست نکردم ولی میتونم حدس بزنم مشکل کجاست. سیستم عامل مورد نظر از سیستم عامل های مایکروسافت هست درسته؟
کلا مایکروسافت در تعریف زبان فارسی و عربی کم مشکل ساز هست ، به طوری که "ی" تعریف شده برای کیبورد "ی" عربی هست (همون "ی" ای که پایینش دو تا نقطه میذارن عرب ها). زمان تایپ هم برای داشتن "ی" فارسی از shift+"ط" استفاده می شه اگر درست یادم باشه. حالا کاری که شما باید انجام بدی اینه که مقدار کلید (key value) کلید shift رو به همراه "ط" به عنوان اسم فایلت به fopen پاس بدی، که اگر اشتباه نکنم مقدار shift برابر 16 هست.

ali ali10
شنبه 25 مهر 1394, 15:51 عصر
از پاسخی که دادید ممنونم
اگر لطف کنید و مثالی بزنید ممنون می شم
علاوه بر حرف "ی" بعضی از برنامه ها فایلهایی با کاراکتر علامت سوال ویا... ایجاد می کنند که به طور معمول نمی توان این کاراکترها را در نام فایلها و یا پوشه ها استفاده کرد که fopen نیز در مواجه با این فایلها خطایی مانند خطای مربوط به فایلها با نامی شامل "ی" ایجاد می کند
به طور کلی برای حل این مشکل و رفع این محدودیت چه باید کرد؟؟؟

hamedBB
شنبه 25 مهر 1394, 16:58 عصر
ببین علی جان من الان دسترسی به یک محیط برنامه نویسی C ندارم که یه مثال تست شده برات بذارم. می ترسم یه مثال تو notepad++ بنویسم و اشتباه باشه ولی در کل خودت می تونی مشکل "ی" رو حل کنی چون کار با کد ها کلید ها مثل همون کار با کد های اسکی هست کار سختی نیست.
مسئله ی اون علمات سوال هایی که میگی خیلی کلی هست! اونا اصلا علامت سوال نیستن بلکه کارکتر ناشناخته هستن یعنی سیستم های عامل به جای کارکترهای ناشناس علامت سوال میذارن. حالا اینکه اون کارکتر چی هست (ممکنه حرکت روی حروف باشه یا هر چیز دیگری) باید اسم اصلی فایل رو بدونی و با کد اسکیش پیش بری راه دیگه ای نداره واقعا.
البته اینو بگم در حالت کلی فک میکنم تمام کارکتر ها برای نرم افزار های text editor شناخته شدست اما برای سیستم عامل اون هم در بخش نامگذاری تعریف نشدست. واسه همینه که نه میتونه از ساخت این فایل ها جلوگیری کنه نه میتونه درست نشونشون بده.