Quantcast
Channel: Programming Forums
Viewing all articles
Browse latest Browse all 51036

J2ME Textfile Database Problem

$
0
0
Hello Everyone,

I am developing a mobile application using J2ME, my problem is my codes doesn't read a word in the text file which has a space. In my database which I used a text file the words looks like this: hw r u?|how are you?|.I used this symbol "|" as a delimiter. But my code will read if it is only a single word without any space. Please anyone help me...Thank you in advance..

My code is this:
import java.io.InputStream;
import javax.microedition.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;
import javax.wireless.messaging.*;
import net.mypapit.java.StringTokenizer;
public class CELTACS extends MIDlet implements CommandListener {
      Display display;
        private String enterword,transword,dbword;
        private String data,text,temp,finalmessage,finalmess,messages,mess;
        private String newtxt = "";
        private TextBox message,toWhom;
        private Alert alert;
        private Command send,exit,celtacs,translate,ok,back;
      MessageConnection clientConn;
       public Ticker ticker = new Ticker(
        "Cebuano/English Language Translator and Corrector for SMS");
      public CELTACS() {

            display=Display.getDisplay(this);
            toWhom=new TextBox("Enter Phone Number","",50,TextField.PHONENUMBER);
            message=new TextBox("Message","",600,TextField.ANY);
            celtacs=new Command ("Correct TextSpeak",Command.ITEM,0);
             translate=new Command ("Translate",Command.ITEM,0);
             back=new Command ("Back",Command.BACK,2);
             ok=new Command("Ok",Command.ITEM,0);
            send=new Command("Send",Command.BACK,0);
            exit=new Command("Exit",Command.SCREEN,5);
            message.setTicker(ticker);
            message.addCommand(send);
            message.addCommand(celtacs);
            message.addCommand(exit);
            toWhom.addCommand(ok);
            message.setCommandListener(this);
      }
      public void startApp() {
            display.setCurrent(message);
      }
      public void pauseApp() {
      }
      public void destroyApp(boolean unconditional) {
            notifyDestroyed();
      }
        public static String capitalize(String str)
       {
           char[]arr=str.toCharArray();
           boolean cap=true;
           boolean spacefound=true;
           for (int i=0;i<arr.length;i++)
           {
               if(cap)
               {
                   if(arr[i]== ' ')
                   {
                       spacefound=true;

                   }
                   else
                   {
                       if(spacefound && !Character.isUpperCase(arr[i]))
                       {
                           arr[i]=Character.toUpperCase(arr[i]);

                       }
                       cap=false;
                       spacefound=false;
                   }
               }
               else
               {
                   if(arr[i] =='.' ||arr[i] =='?' ||arr[i] =='!')
                   {
                       cap=true;
                       spacefound=true;
                   }
               }
           }
           return new String(arr);
       }
       public static String addSpaces(String str)
       {
           char[]arr = str.toCharArray();
           StringBuffer result = new StringBuffer();
           boolean markSpecialChar = false;
           for(int i=0; i<arr.length;i++)
           {
               if(markSpecialChar)
               {
                   if(arr[i] !=' ')
                   {
                       result.append(' ');
                   }
                   markSpecialChar=false;
               }
               result.append(arr[i]);
               if(arr[i] == '.' || arr[i] == '?'  || arr[i] == '!')
               {
                   markSpecialChar = true;
               }

           }
           return result.toString();

       }    
      public void commandAction(Command cmd,Displayable disp) {
            if(cmd==exit) {
                  destroyApp(false);
            }
            if(cmd==send){
                 display=Display.getDisplay(this);
                  display.setCurrent(toWhom);
                  toWhom.setTicker(ticker);
                  toWhom.setCommandListener(this);
            }
if(cmd==ok)
{

                  String mno=toWhom.getString();
                  String msg=message.getString();
                  if(mno.equals("")) {
                        alert = new Alert("");
                        alert.setString("Enter Mobile Number!!!");
                        alert.setTimeout(2000);
                        display.setCurrent(alert);
                  }
                  else {
                        try {
                              clientConn=(MessageConnection)Connector.open("sms://"+mno);
                        }
                        catch(Exception e) {
                              alert = new Alert("Attention!!");
                              alert.setString("You are unable to send your message because of network problem.");
                              alert.setTimeout(2000);
                              display.setCurrent(alert);
                        }
                        try {
                              TextMessage textmessage = (TextMessage) clientConn.newMessage(MessageConnection.TEXT_MESSAGE);
                              textmessage.setAddress("sms://"+mno);
                              textmessage.setPayloadText(msg);
                              clientConn.send(textmessage);
                        }
                        catch(Exception e)
                        {
                              Alert alert=new Alert("Alert","",null,AlertType.INFO);
                              alert.setTimeout(Alert.FOREVER);
                              alert.setString("Unable to send");
                              display.setCurrent(alert);
                        }
                  }
}


               if(cmd == celtacs)

      {
          String msg = message.getString();
          if(msg.equals(""))
          {
              alert = new Alert("Please");
              alert.setString("Enter Your Message!!!");
              alert.setTimeout(2000);
              display.setCurrent(alert,message);
          }
          else


 if(cmd == translate)
          data = file();
          text = message.getString();
          finalmessage=addSpaces(text);
          StringTokenizer stText = new StringTokenizer(finalmessage," ");

          while(stText.hasMoreTokens())
          {
              int found = 0;
              dbword = stText.nextToken();
              String str = dbword;
              StringTokenizer st = new StringTokenizer(data,"|");
              while ((st.hasMoreTokens()) && (found==0))
              {
                  enterword = st.nextToken();
                  transword = st.nextToken();
                  if(enterword.equalsIgnoreCase(dbword))
                  {
                      found = 1;
                  }
              }

              if(found==1)
              {
                  newtxt = newtxt + "" + transword + " ";
              }
              else
              {

                  newtxt = newtxt + " " + dbword + " ";
                  alert = new Alert("Please");
                  alert.setString("Please check the spelling or");
                  alert.setString("the word was not found in the database");
                  alert.setTimeout(5000);
                  display.setCurrent(alert);

              }
          }
          if(text.equals(""))
          {
              newtxt = "";
          }
          temp = newtxt;
          newtxt = "";
          finalmess=capitalize(temp);
          message = new TextBox ("Corrected Message", finalmess, 2000, TextField.ANY);
          message.addCommand(translate);
          message.addCommand(back);
          message.addCommand(send);
          message.addCommand(exit);
          message.setCommandListener(this);
          display.setCurrent(message);

      }
      {
          data = file2();
          text = message.getString();
          messages=addSpaces(text);
          StringTokenizer stText = new StringTokenizer(messages," ");

          while(stText.hasMoreTokens())
          {
              int found = 0;
              dbword = stText.nextToken();
              StringTokenizer st = new StringTokenizer(data,"\\|");
              while ((st.hasMoreTokens()) && (found==0))
              {
                  enterword = st.nextToken();
                  transword = st.nextToken();
                  if(enterword.equalsIgnoreCase(dbword))
                  {
                      found = 1;
                  }
              }

              if(found==1)
              {
                  newtxt = newtxt + "" + transword + " ";
              }
              else
              {

                  newtxt = newtxt + "" + dbword + " ";
                  alert = new Alert("Please");
                  alert.setString("Please check the spelling or");
                  alert.setString("the word was not found in the database");
                  alert.setTimeout(5000);
                  display.setCurrent(alert);
              }
          }
          if(text.equals(""))
          {
              newtxt = "";
          }
            temp = newtxt;
          newtxt = "";
          mess=capitalize(temp);
          message = new TextBox ("Translated Message", mess, 2000, TextField.ANY);
          message.addCommand(send);
          message.setCommandListener(this);
          display.setCurrent(message);
      if(cmd == exit)
      {
          display.setCurrent(message);
      }

 }

      }


             private String file()
  {
    InputStream is = getClass().getResourceAsStream("textspeak.txt");
    StringBuffer sb = new StringBuffer();
    try{
      int chars;
      while ((chars = is.read()) != -1)
      {
          sb.append((char) chars);
      }
      return sb.toString();
    }catch (Exception e){}
    return null;
  }

  private String file1()
  {
    InputStream is = getClass().getResourceAsStream("English.txt");
    StringBuffer sb = new StringBuffer();
    try{
      int chars;
      while ((chars = is.read()) != -1)
      {
          sb.append((char) chars);
      }
      return sb.toString();
    }catch (Exception e){}
    return null;
  }
  private String file2()
  {
    InputStream is = getClass().getResourceAsStream("translate.txt");
    StringBuffer sb = new StringBuffer();
    try{
      int chars;
      while ((chars = is.read()) != -1)
      {
          sb.append((char) chars);
      }
      return sb.toString();
    }catch (Exception e){}
    return null;
  }




}


Viewing all articles
Browse latest Browse all 51036

Trending Articles