PDA

View Full Version : سوال: از بین رفتن یونی کد به هنگام کپی شدن متن در textbox



rayka95
چهارشنبه 15 تیر 1390, 14:35 عصر
با سلام
بنده وقتی یک متن را که کلمات فارسی دارد از یک فایل txt یا متنی دورن تکست باکس در نرم افزار نوشته شده با ویژوال بیسیک 6 کپی میکنم . کلمات فارسی به ؟؟؟؟؟ تبدیل می شوند
ایا کنترل تکست باکس یونی کد یا utf8 وجود دارد ؟
لطفا راهنمایی کنید:خجالت::قلب:

محسن واژدی
چهارشنبه 15 تیر 1390, 15:29 عصر
سلام علیکم
برای کپی کردن یک متن فارسی از خارج به داخل یا از داخل به خارج از VB ابتدا زبان صفحه کلید را فارسی کنید سپس متن مورد نظر را کپی کنید، در این صورت مشکلی بوجود نمی آید

موفق باشید

rayka95
چهارشنبه 15 تیر 1390, 15:51 عصر
دوست عزیز . اپلیکشن رو که پابلیش کنم ، کاربر شاید ندونه که باید این کارو بکنه

rayka95
چهارشنبه 15 تیر 1390, 15:53 عصر
دوست عزیز . اپلیکشن رو که پابلیش کنم ، کاربر شاید ندونه که باید این کارو بکنه

متاسفانه کار هم که گفتید کلا جواب نمیده

محسن واژدی
چهارشنبه 15 تیر 1390, 16:31 عصر
چرا، وقتی که زبان صفحه کلید را فارسی کنید متون فارسی بصورت صحیح کپی میشوند، بنده بارها از این روش استفاده کرده ام و ظاهرا" تنها روش برطرف کردن این مشکل نیز همین است

موفق باشید

zahedi121
چهارشنبه 15 تیر 1390, 17:59 عصر
سلام
برای تغییر زبان هم از کدهای برنامه زیر می توانید استفاده کنید که کاربر نخواد خودش زبان را تغییر دهد:

71998

محسن واژدی
چهارشنبه 15 تیر 1390, 18:16 عصر
البته توسط دستورSendKeys هم میتوانید زبان صفحه کلید را تغییر دهید فقط تنها مشکلی که ممکن است رخ دهد (البته نمیشه گفت مشکل) این باشد که چون این دستور فشار دادن کلید های Shift+LeftAlt را اجرا میکند، اگر قبلا" کاربر زبان فارسی را انتخاب کرده باشد با اجرای این دستور دوباره زبان صفحه کلید انگلیسی میشود ، که در اینصورت مجددا" متن فارسی کپی شده ناخوانا خواهد بود:
SendKeys "+%", True 'Shift+LeftAlt

به هرحال دستور جناب zahedi121 (http://barnamenevis.org/member.php?186193-zahedi121) موجود در پست 6 را بیشتر پیشنهاد میکنم

موفق باشید

rayka95
چهارشنبه 15 تیر 1390, 19:11 عصر
متاسفانه اصلا زبان فارسی یا انگلیسی بودن کیبورد هیچ ربطی به تکست باکس نداره
بنده 2 فایل ضمیمه کردم
لطف کنید
فایل متنی که هست رو باز کنید ، بعد تمام محتویات رو کپی کنید و درون تکست باکس نرم افزار قرار دهید . حال میبینید که چه زبان فارسی باشد
چه انگلیسی هیچ ربطی نداره و تماما ؟؟؟؟ نشان داده می شود .
با تشکر

M.T.P
چهارشنبه 15 تیر 1390, 19:24 عصر
شما از مبدا تو فایل تکست باید کیبورد فارسی باشه که کپی رو بزنید.

rayka95
چهارشنبه 15 تیر 1390, 19:39 عصر
بله . فرمایش
M.T.P (http://barnamenevis.org/member.php?132020-M.T.P)
صحیحه . در مبدا و مقصد اگر زبان فارسی باشه مشکلی پیش نمیاد .
ولی خب .
میدونید ! نمیتونیم به کاربر بگیم که فایل رو در مبدا الزاما با زبان فارسی سلکت کنه .
راهی بجز اوپن کردن فایل سراغ دارن عزیزان ؟

M.T.P
چهارشنبه 15 تیر 1390, 19:49 عصر
بله . فرمایش
M.T.P (http://barnamenevis.org/member.php?132020-M.T.P)
صحیحه . در مبدا و مقصد اگر زبان فارسی باشه مشکلی پیش نمیاد .
ولی خب .
میدونید ! نمیتونیم به کاربر بگیم که فایل رو در مبدا الزاما با زبان فارسی سلکت کنه .
راهی بجز اوپن کردن فایل سراغ دارن عزیزان ؟

برنامه تون قراره چه کاری انجام بده؟ شاید بشه راهکار بهتری ارائه داد.

rayka95
چهارشنبه 15 تیر 1390, 21:17 عصر
اقا کار برنامه زیاد مهم نیست .
بنده میخوام یک متن که ممکنه هم فارسی داشته باشه هم انگلیسی رو از یه جا ، حالا هر جایی کپی کنم بعد توی یک تکست باکس توی نرم افزار بریزم.
حالا اگر 2 طرف فارسی باشه زبان مشکلی نداریم . ولی من دنبال تکست باکسی چیزی هستم که یونی کد باشه کلا
بعد یه سوالی !
چطور میشه تکست باکس رو با utf8 ذخیره کرد ؟
توی دستور open چیزی نداریم که بخواد utf8 رو مشخص کنه

zahedi121
پنج شنبه 16 تیر 1390, 08:44 صبح
متاسفانه اصلا زبان فارسی یا انگلیسی بودن کیبورد هیچ ربطی به تکست باکس نداره
بنده 2 فایل ضمیمه کردم
لطف کنید
فایل متنی که هست رو باز کنید ، بعد تمام محتویات رو کپی کنید و درون تکست باکس نرم افزار قرار دهید . حال میبینید که چه زبان فارسی باشد
چه انگلیسی هیچ ربطی نداره و تماما ؟؟؟؟ نشان داده می شود .
با تشکر
====
سلام
عزیز اگر هم هنگام کپی و هم هنگام پیست ( هم خواندن و هم نوشتن ) کیبورد فارسی باشه مشکلی ندارید
تصویر را ببینید :
72032

کافیه از همون کدهایی که گفتم استفاده کنید و در هنگام دریافت و ثبت اطلاعات کیبورد را فارسی کنید.
احتمالا شما هنگام خواندن کیبورد را فارسی کردید ولی هنگام نوشتن انگلیسی بوده است.
موفق باشید.

vbhamed
پنج شنبه 16 تیر 1390, 09:58 صبح
سلام

از تكست باكس كامپوننت CodeJock استفاده كنيد همچين مشكلي نداره امكاناتش هم خيلي بيشتره
البته نسخه Unicode كامپوننت

محسن واژدی
پنج شنبه 16 تیر 1390, 10:25 صبح
سلام علیکم
سورس کامپوننت زیر شامل تعدادی از ابزارهای متداول: TextBox, ListBox,Label,... است که کاملا" از unicode پشتیبانی میکند

البته همانگونه که جناب vbhamed نیز گفتند کامپوننت های codejock میتوانند مفید تر باشند

موفق باشید

zahedi121
جمعه 17 تیر 1390, 04:25 صبح
سلام

از تكست باكس كامپوننت CodeJock استفاده كنيد همچين مشكلي نداره امكاناتش هم خيلي بيشتره
البته نسخه Unicode كامپوننت

سلام
من نسخه Codejock.Xtreme.Suite.Pro.ActiveX.v15.0.1.Retail را دارم در توضیحات سایت هم نوشته از یونیکد
ساپرت می کنه ولی در خاصیتهای کنترل flatedit از کامپوننت Xtreme Suite contorol activex contorol 15.0.1 چنین آیتمی وجود نداره و در خواندن فایلها با دستور open همین مشکلی که دوستمون میگن را داره ، از کامپوننت دیگری از این مجموعه باید استفاده کرد یا دستور خاصی یا ...؟

ضمنا من درست متوجه نشدم ، عزیزی که تاپیک را ایجاد کردند ، میخوان کاربر متن را خودش کپی و پیست کنه یا برنامه ؟ اگر کاربر قرار اینکار را انجام بدهد ( من این برداشتم بود )فقط کافی موقع کپی و پیست زبان فارسی باشه که عکسش را هم گذاشتم ولی اگر قراره برنامه خودش فایل را بخونه همانطور که دوستان گفتند تکست باکس خود vb با یونیکد مشکل دارد ، به هر حال اگر درست متوجه منظورتون نشدم شرمنده.

vahid_visualbasic
جمعه 17 تیر 1390, 17:08 عصر
از طریق مایکروسافت اکتیوکس کنترل پد ، کنترل مورده نظرتون رو ویرایش کنید

zahedi121
شنبه 18 تیر 1390, 13:57 عصر
از طریق مایکروسافت اکتیوکس کنترل پد ، کنترل مورده نظرتون رو ویرایش کنید

سلام
میشه بیشتر راهنمایی کنید.
ولی خود codejock نوشته بود در این نسخه یونیکد را ساپرت می کنه.
متشکرم