Πώς εμφανίζω μια μόνο λέξη από ένα αρχείο στη java

Συζητήσεις για γλώσσες προγραμματισμού και θέματα σχετικά με προγραμματισμό.
Post Reply
User avatar
agkous
bit level
bit level
Posts: 19
Joined: Wed Feb 13, 2008 9:20 pm
Academic status: 4th year
Gender:

Πώς εμφανίζω μια μόνο λέξη από ένα αρχείο στη java

Post by agkous » Sun Feb 07, 2010 3:22 pm

Καλησπέρα!!! Έχω κολλήσει στη java στο εξής:
Θέλω να φτιάξω μια εφαρμογή client-server για αγγελίες σπιτιών.
O client καταχωρεί σε ένα αρχείο:
region num_of_properties (στο συγκεκριμένο region) ipaddress(για να επικοινωνούν οι peers μαζί του)
Στο Server (που λειτουργεί και σαν client) πληκτρολογεί ο χρήστης στο textfield το region που θέλει και ο server του εμφανίζει από το αρχείο την Ip του client που έχει αγγελίες στο συγκεκριμένο region.

Το πρόβλημά μου είναι πως θα κάνω σύγκριση του region με το αντίστοιχο region στο αρχείο και να εμφφανιστεί η αντίστοιχη ip address.
Έχω κάνει αυτά αλλά δεν έχω βρει άκρη.....

Code: Select all

tx.addActionListener(new ActionListener()
	  {
	  	public void actionPerformed(ActionEvent ae)
		{
			while(true)
 			{
 				try
                {
                	fireader = new FileReader("ads.txt"); //read the file "ads.txt"
                    bureader = new BufferedReader(fireader); //save its data to the buffered reader
                    words = new ArrayList<Word>();
                    
                     int lineNum = 1; // we read first line in start 
  
        			// delimeters of line only "space" 
        			char [] parse = {' '}; 
        			String delims = new String(parse); 
        			
        			 String line = bureader.readLine(); 
  
        			// read line while end of file 
        			while(line != null)
        			{
        				String [] lineWords = line.split(delims); 
        				displayArea.append("\nPeers with properties at region " + region + " are:" + "\n");
  
            			// split the words and create word object 
           			 	for (int i = 0; i < lineWords.length; i++)
           			 	{
           			 		// lineNum -> line number i+1--> words index in line 
           			 		Word w = new Word(lineNum,i+1,lineWords[i]);
                			words.add(w); // lineWords[i] is word
                			
                			//print at the text area the corresponding registration
                			Word ws = words.get(i);
                			
                			region = ae.getActionCommand(); //get the region that the user has typed
                			//ιf the typed region exists at the file
                    		[color=#FF0040]if (region.comparesTo(ws.name)) //name tou word me line=1,index=1[/color]                    		{
                    			//appends ip address from file that corresponds to the typed region
                    			[color=#FF0040]displayArea.append(... + " "); //to name tou word me line=1,index = 3[/color]            		 		}
            		 	/*	else
                        	{
                        		displayArea.append("There are no peers with properties at region " + region + ".");
                        	}//end if  */
            		 		lineNum++;    // pass the next line 
         	  		 		line = bureader.readLine();
         	  		 	} //end for
        			} //end while
        		} //catch io exception, if any
                  catch (IOException exc)	{ exc.printStackTrace(); } 
        	} //end while
          }
       	}); //end button Search action listener

 // class word for model of every word object 
    class Word
    { 
        private int lineNum; 
        private int index; 
        private String name; 
  
        public Word(int lineNum, int index, String name)
        { 
            this.lineNum = lineNum; 
            this.index = index; 
            this.name = name; 
        } 
  
        public int getLineNum()
        { 
            return lineNum; 
        } 
        public int getIndex()
        { 
            return index; 
        } 
        public String getName()
        { 
            return name; 
        }     
    }  //end class Word
Πώς θα τα συπληρώσω αυτά έχω κολλήσει τελείως.. Thanks in advance!!!!
Last edited by cypher on Sun Feb 07, 2010 3:35 pm, edited 1 time in total.
Reason: Code tags added.
Αν θες να πας μπροστά στη ζωή σου, πήγαινε πίσω .... και πάρε φόρα!!!!
User avatar
Luke
Gbyte level
Gbyte level
Posts: 1388
Joined: Wed Aug 09, 2006 11:19 am
Academic status: Alumnus/a
Gender:

Re: Πώς εμφανίζω μια μόνο λέξη από ένα αρχείο στη java

Post by Luke » Sun Feb 07, 2010 3:49 pm

Χωρίς να έχω μελετήσει πολύ προσεχτικά τον κώδικα ο καλύτερος τρόπος για κάτι τέτοιο νομίζω είναι με object serialization. Έτσι, απλά μοντελοποιώντας κάθε γραμμή (που ενδεχομένως να περιέχεται από αντικείμενα Word όπως ήδη έχεις), δε θα σε ενδιαφέρει πόσα κενά κλπ υπάρχουν. Το μόνο που θα κάνεις είναι serialization το object και γράψιμο στο αρχείο και αντίστροφα για να το φορτώσεις στην εφαρμογή σου. Η διαδικασία είναι σχεδόν ίδια με αυτή του γραψίματος/διαβάσματος σε/από αρχείο.

Βέβαια, αν θες να μπορείς να ανοίγεις το αρχείο εξωτερικά με κάποιον editor και να εμφανίζεται σε text μορφή το τι έχεις αποθηκεύσει δε γίνεται με αυτό τον τρόπο. Εξαρτάται τις απαιτήσεις σου...
Απλά νομίζω ότι ο παραπάνω τρόπος είναι ο πιο απλός και ο πιο "ασφαλής" όσον αφορά αποφυγή λαθών.
Είμαι ένας μοναχικός cowboy...
User avatar
agkous
bit level
bit level
Posts: 19
Joined: Wed Feb 13, 2008 9:20 pm
Academic status: 4th year
Gender:

Re: Πώς εμφανίζω μια μόνο λέξη από ένα αρχείο στη java

Post by agkous » Mon Feb 08, 2010 5:13 pm

Luke wrote:Χωρίς να έχω μελετήσει πολύ προσεχτικά τον κώδικα ο καλύτερος τρόπος για κάτι τέτοιο νομίζω είναι με object serialization. Έτσι, απλά μοντελοποιώντας κάθε γραμμή (που ενδεχομένως να περιέχεται από αντικείμενα Word όπως ήδη έχεις), δε θα σε ενδιαφέρει πόσα κενά κλπ υπάρχουν. Το μόνο που θα κάνεις είναι serialization το object και γράψιμο στο αρχείο και αντίστροφα για να το φορτώσεις στην εφαρμογή σου. Η διαδικασία είναι σχεδόν ίδια με αυτή του γραψίματος/διαβάσματος σε/από αρχείο.

Βέβαια, αν θες να μπορείς να ανοίγεις το αρχείο εξωτερικά με κάποιον editor και να εμφανίζεται σε text μορφή το τι έχεις αποθηκεύσει δε γίνεται με αυτό τον τρόπο. Εξαρτάται τις απαιτήσεις σου...
Απλά νομίζω ότι ο παραπάνω τρόπος είναι ο πιο απλός και ο πιο "ασφαλής" όσον αφορά αποφυγή λαθών.
ok thanks.
Έτσι κι αλλιώς πρέπει να γίνει ο έλεγχος για να φιλτράρει τα δεδομένα του αρχείου και να εμφανίσει μόνο αυτά που ταιριάζουν με τη λέξη της αναζήτησης. Οπότε θα κοιτάξω μήπως κάνω αυτό και μετά να ανοίγει το αρχείο εξωτερικά.
Προσπαθούσα να αποφύγω το serialization γιατί οι γνώσεις μου σε αυτό είναι λίγο -ως πολύ- περιορισμένες.......... Θα το κοιτάξω όμως!!!
:smt024
Αν θες να πας μπροστά στη ζωή σου, πήγαινε πίσω .... και πάρε φόρα!!!!
Post Reply

Return to “Προγραμματισμός”