انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل با برخی متنهای تکست (Text) (در اندروید)

مشکل با برخی متنهای تکست (Text) (در اندروید)

#1
اساتید سلام ،من همیشه از نظرات و کمکهای شما استفاده کردم و همینجا جا داره از‌ آدمین  وچندتا از کاربرا تشکر کنم که به سوالات بچه ها جواب میده.
من مشکلی که واسم پیش اومده و دقیقا 7 ساعت باهاش دارم کلنجار میرم و دیگه واقعا نمیدونم مشکل چیه.
من نرم افزارم ساختم .یعنی مشکلی با دیتابیس ندارم مشکلی با سرور ندارم مشکلی با قابلیت کپی و بلوتوث و ارسال و علاقه مندی و .......ندارم.همه ی این موارد به درستی نوشته شده  و مشکلی نیست.
مشکل بنده با قسمت جستجوی یک کلمه در متن هست.که الگو و دستور سرچ کردن هم بنده میدانم. مثلا از دستور لایک در کوئری یا از دستورات زیر

کد پی‌اچ‌پی:
edit_search=(EditText)findViewById(R.id.edit_search);
        
search.setOnClickListener(new OnClickListener() {
            
            @
Override
            
public void onClick(View v) {
                
// TODO Auto-generated method stub
                
String tmp=edit_search.getText().toString();
                 if(
array_list.contains(tmp))
                 
Toast.makeText(getApplicationContext(), "ok"Toast.LENGTH_LONG).show();
            
//بقیه دستورات که باید انجام شود........



            
}
        }); 

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

تا اینکه وقتی شروع کردم به جستجوی کلمه دیدم که برخی کلمات در جستجو پیدا نمیشه درحالی که اون کلمه در داخل متن وجود داشت. اول فکر کردم مشکل  از دیتابیس هست و با زبان فارسی مشکل داره اما اینطور نبود.
برای پیدا کردن مشکل  رفتم سایتهایی که مطالب رو ازش جمع آوری کردم رو باز کردم .و برای امتحان خط اول متنی که از آنجا برداشتم،و کپی کردم دریک رشته تا چک کنم عمل جستجو انجام میشه یا نه.  عبارتی که کپی کردم این عبارت بود"پیامبر اکرم (ص)  به آسمان نگاه کرد"  و کلمه پیامبر رو جستجو کردم ولی هیچ چیزی نمایش نداد..

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

کسی از اساتید میتونه به من کمک کنه؟..چون واقعا همین متنها به درستی کپی و ارسال و بلوتوث و ...میشه ولی فقط در جستجو به مشکل میخوره!

خواهشا کسی میتونه کمک کنه
پاسخ

مشکل با برخی متنهای تکست (Text) (در اندروید)

#2
 با سلام

شما متن هایی رو که از اینترنت کپی کردی رو اول تو یک فایل word ذخیره کن بعد فونت متن ها رو تغییر بده بعد متن رو کپی کن و داخل برنامه ات پیست کن.
پاسخ
 سپاس شده توسط mohseen

مشکل با برخی متنهای تکست (Text) (در اندروید)

#3
با تشکر از جواب شما.ولی نمیدونم چرا باز جواب نمیده..الان که دقت کردم،روی برخی حروف به مشکل خورده.مثلا برخی کلمات به درستی جستجو میشه ولی برخی نه.
مثلا کلماتی که حروف (ِی)‌دارند جستجو نمیشه.
دوستان کسی لطف میکنه  برای نمونه خط اول  از سایت زیر رو کپی کنه و امتحان کنه ببین مشکل از گوشی من هست یا چیز دیگه ای هست.
http://ketaab.iec-md.org/DAASTAAN/daasta...ri_01.html
از این آدرس خط اول مقدمه "[font][font]در مدتى كه مشغول جمع آورى و تنظيم و نگارش يا چاپ اين داستانها بودم"[/font][/font] رو کپی کنه و عبارت "مدتی" رو داخلش جستجو کنه.
ممنون میشم چون واسه من این کلمه رو درعبارت بالا جستجو نمیکنه.
لطف میکنید.آدمین جان اگه شما هم راه حلی دارید خیلی خوشحال میشم کمکم کنید.
پاسخ

مشکل با برخی متنهای تکست (Text) (در اندروید)

#4
سلام.
به لینک زیر بروید :

http://slayeroffice.com/tools/ascii/

در آن لینک، کادری وجود دارد که شما حرف مورد نظرتان را وارد می کنید و کد معادل آن نمایش داده می شود (البته برای ASCII). حالا یک بار حرف ((ی)) را از کیبورد زده و معادل آن را یادداشت کنید. سپس حرف ((ی)) که گفتید در متن بوده و تفاوت داشته را در کادر کپی کرده و تست کنید و ببینید کد معادلش چیست. اگر این دو متفاوت باشند، پس با دو کاراکتر متفاوت روبرو هستیم (اگرچه ظاهرشان یکسان به نظر می آید).
راه حلی که به نظر بنده می رسد این است که تمامی کاراکترهای مشکل دار را شناسایی کرده و سپس در کد java ، قبل از استفاده از روش contains (برای چک کردن اینکه کلمه جستجو در رشته (String) وجود دارد یا خیر)، حروف مشکل دار را دو به دو جایگزین کنید (جایگزین با حرف صحیح که توسط کیبورد تایپ می شود).
البته در زمان ذخیره متن ها نیز می توان این کار را انجام داد (مثلا با یک form که توسط زبان PHP پردازش می شود)، اما روش قبلی ساده تر و کم دردسر می باشد.

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط mohseen ، داش بهروز

مشکل با برخی متنهای تکست (Text) (در اندروید)

#5
علاوه بر روش آدمین شما همچنین میتونید از روش زیر استفاده کنید.
من به لینکی که قرار دادید مراجعه کردم،چیزی که متوجه شدم حروف "ی" و "ک"  مشکل دار هست و همون طور که آدمین گفت این حروف با اینکه یک ظاهر دارند ولی متفاوت هستند .چون همون طور که گفتید یک دیتابیس بزرگی دارید پس کافیه به روش زیر عمل کنید.
از همون یک خطی که برای نمونه قرار دادید حرف "ک "‌و حرف "ی"‌رو بردارید و با حروف تایپ شده همین حروف جابجا کنید.

کد پی‌اچ‌پی:
String tmp1="در مدتی که مشغول...";
String tmp2=tmp1.Replace(tmp1.charAt(6),'ی');
String tmp3=tmp2.Replace(tmp1.charAt(8),'ک'); 

حالا کافیه یه حلقه برای دیتابیس بزنید و همه ی سطر ها رو در داخل یک ArrayList بریزید و دستورات بالا رو برای هر ایندکس ArrayList انجام بدید.

و سپس در یک آرایه لیست دیگه ذخیره کنید..بعد از این کار مقادیر  ArrayList جدید  با عمل Update در دیتابیس ذخیره کنید..یعنی در مدت حدود 10 ثانیه تمامی سطرها کارکترهایش جابجا میشود..
پاسخ
 سپاس شده توسط admin ، mohseen

مشکل با برخی متنهای تکست (Text) (در اندروید)

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


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان