الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

برنامج لعمل مفكرة

مغلق
بدأه مجدي محمود في 10 فبراير 2005 · 10 رد · 2,697 مشاهدة · في JavaME
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هذا برنامج قمت بعمله للتدرب على ال RecordStore وهو عبارة عن مفكرة ويمكن تطويره احببت ان اريكم الكود للتدرب على الحفظ والحذف

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;

public class NoteBookMIDlet extends MIDlet implements CommandListener
{
Display display;
TextBox tb;
List   l;
String rsname ="Database";
RecordStore rs;
Command e = new Command("Exit", Command.EXIT,0);
Command a = new Command("New",Command.ITEM,1);
Command s = new Command("Save",Command.ITEM,2);
Command b = new Command("Back",Command.BACK,0);
Command d = new Command("Delete",Command.ITEM,1);

public NoteBookMIDlet()
{
display = Display.getDisplay(this);
      l = new List("Notes",Choice.IMPLICIT);
    

try	{
     rs =RecordStore.openRecordStore(rsname,true);
	if(rs.getNumRecords() == 0){System.out.println("RS ist empty");}
	else
  {
    loadfromRecordStore();
    
  }
	}
catch (RecordStoreException e) 
 {
	System.out.println("Cannot Open RecordStore");
  }
try{
   rs.closeRecordStore();
  }catch(RecordStoreException e){
    e.printStackTrace();
  }
}
public void AddTextBox()
	{
  tb = new TextBox("Add Note","", 150, TextField.ANY);
  tb.addCommand(b);
  tb.addCommand(e);
  tb.addCommand(s);
  tb.setCommandListener(this);
  display.setCurrent(tb);
	}

public void GoToSaveList ()
{

 saveEntry(tb.getString());
 l.append(tb.getString(),null);
 display.setCurrent(l);



 }
public void saveEntry(String re)
{

   try
	{ 
      RecordStore.deleteRecordStore(rsname);
      rs = RecordStore.openRecordStore(rsname,true);
   byte [] data = re.getBytes();
   int len =data.length;
   rs.addRecord(data,0,len);
  
      	}
catch (RecordStoreException e) {
            System.err.println(e.toString());
        }

try{
   rs.closeRecordStore();
  }catch(RecordStoreException e){
    e.printStackTrace();
  }

}

public void loadfromRecordStore()
{
  

try
	{
	rs = RecordStore.openRecordStore(rsname,true);
    int num = rs.getNumRecords();
	RecordEnumeration enu = rs.enumerateRecords(null,null,true);
    byte [] data = null;
	while(enu.hasNextElement())
  {
   data = enu.nextRecord();
   String m = new String(data);
   l.append(m,null);
   
    	}

  }
	catch (RecordStoreException e) {
            e.printStackTrace();
        }
try{
   rs.closeRecordStore();
  }catch(RecordStoreException e){
    e.printStackTrace();
  }
     
}
public void deletefromRecordStore( int id)
{
  
   try {    rs = RecordStore.openRecordStore(rsname,true);
         rs.deleteRecord(id);
  	rs.closeRecordStore();
  	
        }
            catch (RecordStoreException e) {
            e.printStackTrace();
        }

}
public void startApp()
   {
     l.addCommand(a);
  l.addCommand(e);
  l.addCommand(d);
  l.setCommandListener(this);
  display.setCurrent(l);
   }
public void pauseApp(){}
public void destroyApp(boolean unconditional){}
public void commandAction(Command c,Displayable m)
	{
  if(c == e)
        {
            destroyApp(false);
                  notifyDestroyed();
        }
     else if(c == b)
       {
         display.setCurrent(l);
       }
  else if(c==s)
       {
         GoToSaveList();
       }
  else if(c==a)
       {
        AddTextBox();
       }
  else if(c==d)
      {
      
       int h = l.getSelectedIndex();
    deletefromRecordStore(h+1);
    l.delete(h);
          	
     }
	} 
}

تم تعديل هذه المشاركة بواسطة مجدي محمود في 25 فبراير 2005 في 13:36

لست متواجد بشكل يومي

#2

مجدي لماذا تقوم لكل مرة تدخل فيها Note جديدة تحذف الRecordStore القديمة00

يعني عندما نضغط على زر new يقوم بفتح TextBox ومن ثم عندما نضغط على زر saveيقوم بحذف الRecordStore القديمة ويقوم بإنشاء واحدة جديدة00

لذلك عندما نشغل البرنامج يظهر لنا أخر Note أضفناها00

حاولت أعدل بالبرنامج :blink: لكي يظهر جميع الملاحظات عند تشغيل البرنامج لكن أصبح عندما اريد حذف شىء معين يحذفه بشكل مؤقت يعني عند تشغيل البرنامج تعود الملاحظة التي حذفتها00

فكيف أستطيع حفظ جميع الملاحظات مع امكانية حذف شىء معين00

وهل يوجد وسيلة تخزين للموبايل غير Record Store

لا إله إلا الله العظيم الحليم,لا إله إلا الله رب العرش العظيم,لا إله إلا الله رب السموات ورب الأرض ورب العرش الكريم.

#3
اقتباس
لماذا تقوم لكل مرة تدخل فيها Note جديدة تحذف الRecordStore القديمة00

يعني عندما نضغط على زر new يقوم بفتح TextBox ومن ثم عندما نضغط على زر saveيقوم بحذف الRecordStore القديمة ويقوم بإنشاء واحدة جديدة00

لذلك عندما نشغل البرنامج يظهر لنا أخر Note أضفناها00

صحيح وان شاء الله بكون اشوفه بعدين بسبب التوقيع :wacko:

اقتباس
حاولت أعدل بالبرنامج  لكي يظهر جميع الملاحظات عند تشغيل البرنامج لكن أصبح عندما اريد حذف شىء معين يحذفه بشكل مؤقت يعني عند تشغيل البرنامج تعود الملاحظة التي حذفتها00

نعم في خطا في ال ID تاعت ال Record لم انتبه له عند التخزين

اقتباس
وهل يوجد وسيلة تخزين للموبايل غير Record Store

في J2ME لا فقط rms

لست متواجد بشكل يومي

#4

ماشي أخي مجدي وموفق بامتحاناتك000

لا إله إلا الله العظيم الحليم,لا إله إلا الله رب العرش العظيم,لا إله إلا الله رب السموات ورب الأرض ورب العرش الكريم.

#5

سامحنا يا طارق ولكن قمت بعمله بطريقة تساعد على حل المشروع الاول وبكل بساطة ساضعه بعد انتهاء المدة

/index.php?showtopic=57265

لست متواجد بشكل يومي

#6

هذه فقط الجار والجاد وبعد انتهاء الدورة اضع الكود

للاجهزة التي لا تدعم العربية (بالانجليزي)

NoteBook.zip

تم تعديل هذه المشاركة بواسطة مجدي محمود في 22 فبراير 2005 في 04:37

لست متواجد بشكل يومي

#7

عند حفظ الملاحظات، تظهر علامات استفهام.... ؟؟؟؟؟

أعتقد أنك تستطيع حل هذه المشكلة باستخدام الأمر التالي

	static final String CODE="UTF-16";

  byte[]b=null;
  String dat="Something";
  b=dat.getBytes(CODE);

b=enm.nextRecord();
    String dat=new String(b,CODE);

الخلاصة هو أن تستخدم تشفير الكلمات عند حفظ البيانات وقراءتها.

تم تعديل هذه المشاركة بواسطة أبومازن في 21 فبراير 2005 في 18:48

#8
اقتباس
عند حفظ الملاحظات، تظهر علامات استفهام.... ؟؟؟؟؟

لا اعرف ولكن لا تظهر عندي ولم تظهر ام تقصد عند التخزين بالعربي

لست متواجد بشكل يومي

#9

نعم أقصد ذلك...

أما إذا كتبت بالأجنبية كان تخزين البيانات وقراءتها سليما..

جرب هذا في شفرتك..

static final String CODE="UTF-16";

public void saveEntry(String re){

	////codes
	byte []date=re.getBytes(CODE);
	///codes
}
public void loadFromRecordStore(){
	//codes
	data = enu.nextRecord();
  String m = new String(data, CODE);
  
  //codes

}
#10

شكرا يا ابو مازن عذرا الجهاز الي عندي بدعم اكثر من لغة الا العربية :s

للاجهزة التي تدعم العربية

Bin.zip

تم تعديل هذه المشاركة بواسطة مجدي محمود في 22 فبراير 2005 في 04:38

لست متواجد بشكل يومي

#11

هذا هو البرنامج كامل

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;
import java.io.*;
public class NoteBookMIDlet extends MIDlet implements CommandListener
{
Display display;
TextBox tb;
Form note;
List   l;
/*
Author : Majdi Ibrahim --->> www.arabteam2000-forum.com
*/
String rsname ="DataBase";
RecordStore rs;
String [] field; 
Command e = new Command("Exit", Command.EXIT,0);
Command a = new Command("New",Command.ITEM,1);
Command s = new Command("Save",Command.ITEM,2);
Command b = new Command("Back",Command.BACK,0);
Command d = new Command("Delete",Command.ITEM,1);
Command sa = new Command("Show",Command.ITEM,1);
int currentID;
int lastID;
int ID=1;
public NoteBookMIDlet()
{
display = Display.getDisplay(this);
     l = new List("Notes",Choice.IMPLICIT);
   

try {
    rs =RecordStore.openRecordStore(rsname,true);
if(rs.getNumRecords() == 0){System.out.println("RS is empty");}
else
 {
   loadfromRecordStore();
   showNotes();
 }
}
catch (RecordStoreException e) 
{
System.out.println("Cannot Open RecordStore");
 }
try
	{
  rs.closeRecordStore();
	}
catch (RecordStoreException e) 
{
System.out.println("Cannot close RecordStore");
 }
}
public void AddTextBox()
{
 tb = new TextBox("Add Note ","", 150, TextField.ANY);
 tb.addCommand(b);
 tb.addCommand(e);
 tb.addCommand(s);
 tb.setCommandListener(this);
 display.setCurrent(tb);
}

public void GoToSaveList ()
{


saveEntry(tb.getString());
l.addCommand(sa);
l.addCommand(d);
l.setCommandListener(this);
display.setCurrent(l);


	}
public void saveEntry(String re)
{


  try
{ 

 rs = RecordStore.openRecordStore(rsname,true);
 byte [] data = re.getBytes();
 int len =data.length;
currentID = rs.addRecord(data,0,len);


 }
catch (RecordStoreException e) {
           System.err.println(e.toString());
       }
try
	{
        rs.closeRecordStore();
	}
catch (RecordStoreException e) {
           System.err.println(e.toString());
       }

}

public void loadfromRecordStore()
{


try
{

rs = RecordStore.openRecordStore(rsname,true);
int num = rs.getNumRecords();
int lastID=rs.getNextRecordID();
field= new String[lastID];
int leng = field.length-1;
RecordEnumeration enu = rs.enumerateRecords(null,null,true); 
byte [] data = null; 
while(enu.hasNextElement()) 
 { 
  data = enu.nextRecord(); 
  String m = new String(data); 
  field[leng] =m; 
  leng--;
 } 


 }
catch (RecordStoreException e) {
           e.printStackTrace();
       }

 try
	{
  rs.closeRecordStore();
	}
catch (RecordStoreException e) 
{
System.out.println("Cannot close RecordStore");
 }

}

public void deletefromRecordStore(String h)
{


try   {
     rs = RecordStore.openRecordStore(rsname,true);
    for(int i=0;i<field.length;i++)
	{
     if(field==h){
                  rs.deleteRecord(i);
                     rs.closeRecordStore();
         }
	}
  
  
  
	}
    
   
  

catch (RecordStoreException e) {
           e.printStackTrace();
       }
   
}
public void startApp()
  {

 if(l.size()==0)
  {  l.removeCommand(sa);
  l.removeCommand(d);
   }
 else{ l.addCommand(d);
       l.addCommand(sa);
   }
 l.setTicker(new Ticker("This MIDlet programmed By Majdi Ibrahim"));
 l.addCommand(a);
 l.addCommand(e);
 l.setCommandListener(this);
 display.setCurrent(l);
  }
public void pauseApp(){}
public void destroyApp(boolean unconditional){}
public void commandAction(Command c,Displayable m)
{
 if(c == e)
       {
           destroyApp(false);
           notifyDestroyed();
       }
    else if(c == b)
      {
        display.setCurrent(l);
      }
 else if(c==s)
      {
        GoToSaveList();
  deleteList();
  showNotes();
      }
 else if(c==a)
      {
       AddTextBox();
      }
 else if(c==d)
     {
      
   int r = l.getSelectedIndex();
      deletefromRecordStore(l.getString(r));
   l.delete(r);
    }
else if(c==sa || c==List.SELECT_COMMAND)
	{
   String na =l.getString(l.getSelectedIndex());
   showNote(na);
  }
}

public void showNotes()
{
loadfromRecordStore();
for(int i=1;i<field.length;i++)
	{
  if(field==null || field ==field[i-1]){//don't make Anything
                    }
  else
  l.append(field,null);
	}
}
public void showNote(String m)
{
note = new Form("Your Note");
note.append(m);
note.addCommand(b);
note.setCommandListener(this);
display.setCurrent(note);
}
public void deleteList()
{
//l.deleteAll();

while (l.size()>0) 
	{
    l.delete(0);
	}
}
}

لست متواجد بشكل يومي

هذا الموضوع مغلق.

مواضيع مشابهة