هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.


 
الرئيسيةجستجوأحدث الصورثبت نامورود

 

 درخواست کمک

اذهب الى الأسفل 
2 مشترك
نويسندهپيام
Nipoto




تعداد پستها : 1
Registration date : 2008-11-05

درخواست کمک Empty
پستعنوان: درخواست کمک   درخواست کمک Icon_minitimeالأربعاء نوفمبر 05, 2008 5:27 am

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

چکار باید بکنم ؟
چطور دیتا رو ایندکس کنم ؟
بعد چطور جستجوش کنم ؟

خلاصه راهنمایی می خوام اساسی lol!
فایل ریسورس رو هم تو Jar قرار می دم و نیازی ندارم از recordStore استفاده کنم .


تشکر شدید پیشاپیش I love you
بازگشت به بالاي صفحه اذهب الى الأسفل
haamoon




تعداد پستها : 308
Registration date : 2008-02-07

درخواست کمک Empty
پستعنوان: رد: درخواست کمک   درخواست کمک Icon_minitimeالأربعاء نوفمبر 05, 2008 1:12 pm

سلام، به فرم ما خوش آمدید.

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

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

InputStream is = this.getClass().getResourceAsStream("\fileName");

حالا InputStream مربوط به اون فایل رو داری که به شما امکان خوندن از فایل رو می ده و حالا بهتره ازش DataInputStream بگیری تا بتونی انواع داده رو راحت تر بخونی به این ترتیب:

DataInputStream dis = new DataInputStream(is);

و حالا dis به شما امکان خوندن انواع داده رو می ده که شما اینجا از readChar استفاده کنید بهتر هست.

char a;
DataInputStream dis = null;
StringBuffer buffer = new StringBuffer();
while((a = dis.readChar()) != '=')
{
buffer.append(a);
}

String readKey = buffer.toString();
buffer.setLength(0);
if(readKey.equals("hasan"))
{

//khob key ro peyda kardim hala bayad bad az key ro bekhunim
while((a = dis.readChar()) != '\n' && a >= 0)
{
buffer.append(a);
}
return readKey;
}
//do this part again.

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

اگر این سورس رو متوجه می شید با کمی تغییر و کامل کردن می تونید درستش کنید والبته باید به این نکات هم توجه کنید که در مثال واقعی:
1-قسمت بندی سوالات بر اساس حرف اول انجام نمی شه چون ممکن یک فایل خیلی بزرگ بشه و یکی خیلی کوچیک.
2-خواندن فایل هایی که کلمات فارسی دارن با readUTF انجام بشه بهتره.
3-یک شرط هم باید چک کنه که کی به اخر فایل می رسید.

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

و اگر این سورس رو متوجه نمی شید باید کمی به عقب برگردید و برنامه نویسی جاوا دستورات و پکیج ها رو کمی مطالعه کنید در این زمینه رجوع کنید به کتاب های فارسی جعفر نژاد قمی یا J2SE Complete Reference که می تونه کمکتون کنه.
بازگشت به بالاي صفحه اذهب الى الأسفل
 
درخواست کمک
بازگشت به بالاي صفحه 
صفحه 1 از 1
 مواضيع مماثلة
-

صلاحيات هذا المنتدى:شما نمي توانيد در اين بخش به موضوعها پاسخ دهيد
 :: سوال و جواب-
پرش به: