dominant Δημοσ. 30 Μαΐου 2003 Δημοσ. 30 Μαΐου 2003 Opoios gnorizei 8a i8ela na mou pei pos apokodikopoiume to content enos txt arxeiou sto console window Thanks in advance!
javanidhs Δημοσ. 30 Μαΐου 2003 Δημοσ. 30 Μαΐου 2003 ναι το αποκωδικοποιουμε εινια λιγο παραξενο..γινε πιο σαφης! Ολα αρχιζουν και τελειωνουν στην παρακατω σελιδα! http://java.sun.com/docs/books/tutorial/essential/io/filestreams.html Χρησιμοποιεις τα stream αρχειων και διαβαζεις το κειμενο! Εχω μια μικρη υποψια..οτι μπορει να αναφερεσαι σε encoding?Κατα το διαβασμα?
dominant Δημοσ. 30 Μαΐου 2003 Μέλος Δημοσ. 30 Μαΐου 2003 Eno apla na exo ena px (text.txt) arxeio to opoeio periexei keimeno kai na apofasizei to prog an auto pou diavazei ka8e fora einai integer h oxi. Kai ton integer na ton apo8ukeuo se pinaka
Γηρυόνης Δημοσ. 30 Μαΐου 2003 Δημοσ. 30 Μαΐου 2003 > boolean numberIsInteger = true; int array [] = new int[1]; try { int[0] = Integer.parseInt(<text read from file>); } catch (NumberFormatException nfe) { numberIsInteger = false; } if (numberIsInteger) { System.out.println("number is: " + array[0]); }
dominant Δημοσ. 30 Μαΐου 2003 Μέλος Δημοσ. 30 Μαΐου 2003 O kodikas paei kapos etsi > import java.io.*; public class FileReader { public static void main(String[] args) throws IOException { FileInputStream theFile= new FileInputStream("solid1.txt"); BufferedInputStream myfile= new BufferedInputStream(theFile); int c; while ((c = myfile.readLine()) != -1) {boolean numberIsInteger = true; int array [] = new int[1]; try { int[0] = Integer.parseInt(myfile); } catch (NumberFormatException nfe) { numberIsInteger = false; } if (numberIsInteger) { System.out.println("number is: " + array[0]); } } theFile.close(); } } Alla kati paei strava profanos
javanidhs Δημοσ. 30 Μαΐου 2003 Δημοσ. 30 Μαΐου 2003 ο παραπανω κωδικας ειναι λαθος! To BufferedInputStream δεν εχεις readline θελεις την BufferedReader! επισης η readline επιστρεφει String και οχι int! Δες λιγο το API Εισαι κοντα παντως <img src="http://www.insomnia.gr/ubbthreads/images/graemlins/smile.gif" alt="" />
dominant Δημοσ. 30 Μαΐου 2003 Μέλος Δημοσ. 30 Μαΐου 2003 O kodikas paei kapos etsi > import java.io.*; public class Test { public static void main(String[] args) throws IOException { FileInputStream theFile= new FileInputStream("text.txt"); BufferedReader br = new BufferedReader(new InputStreamReader(theFile)); String c=null; while((c=br.readLine())!=null) System.out.println(c); theFile.close(); } } Blepei os String ta periexomena tou arxeiou. Mporo na koitakso an einai ka8e 8esh (plhn kenou) integer. Endexomenos me casting?
javanidhs Δημοσ. 30 Μαΐου 2003 Δημοσ. 30 Μαΐου 2003 θα χρησιμοποιησεις οπως εγραψαν παραπανω την Ιnteger.parseInt και παντα θα προσεχεις για το exception το οποιο θα το πιανεις καιδεν θα το πετας! Δεν ξερω η γραμμη υποτιθεται εχει μονο τον αριθμο η μπορει να εχει μια προταση που μεσα της καπου θα αναφερετε και καποιος αριθμος?
dominant Δημοσ. 30 Μαΐου 2003 Μέλος Δημοσ. 30 Μαΐου 2003 px mia protash se mia tyxaia gramh ΠΑΡΑΛΑΒΗ 26.5 ΤΟΝΩΝ ego 8elo diavazontas to arxeio na anagnorisei oti to 26.5 einai double.
dominant Δημοσ. 30 Μαΐου 2003 Μέλος Δημοσ. 30 Μαΐου 2003 Ekana to parakato > mport java.io.*; public class Test { public static void main(String[] args) throws IOException { FileInputStream theFile= new FileInputStream("text.txt"); BufferedReader br = new BufferedReader(new InputStreamReader(theFile)); String c=null; while((c=br.readLine())!=null) { for(int q=0;q<c.length();q++) { System.out.print(isDigit(c.charAt(q))); } } theFile.close(); } } To provlima einai oti de fenete na douleuei kala to isDigit() Kamia allh idea?
javanidhs Δημοσ. 31 Μαΐου 2003 Δημοσ. 31 Μαΐου 2003 Βασικα εχω κατι να σου προτεινω...λιγο πιο καθαρο! Αν και ισως η παραπανω λυση να παιζει σχετικα ανεκτα! Βασικα το θεμα ειναι να ξερεις το format που ειναι γραμμενο αυτο το αρχειο.Πχ αν καθε γραμμη ειχε καποιο standard τροπο γραφης τοτε δεν θα χρειαζοταν να κανεις ολα τα παραπανω! px Παραλαβη;26 οπου ξερεις οτι το πρωτο κομματι ειναι παντα το action και το δευτερο ειναι η ποσοτητα. Παρολα αυτα ..εσυ εχεις ελεγχο του πως γραφεται το αρχειο η προερχεται απο αλλη εφαρμογη? Αν εχεις θα στο προτεινα ανεπιφυλακτα να οργανωσεις λιγο το αρχειο. Ακομα πιο καθαρο θα ηταν να γραφεται σε XML ! Η λυση που ομολογω οτι δεν εχω καταφερει να την χρησιμοποιησω και εγω πολυ σωστα...γιατι δεν εχω κατσε να την διαβασω ...ειναι τα λεγομενα regular expression. java.util.regex οπου ο μηχανισμος ειναι εξωτερικα απλος. Δινεις ενα string βαση καποιου Pattern που εχεις δηλωσει...προσπαθει η μεθοδος να βρει ποια σημεια αντιστοιχουν στο Pattern Px θα μπορουσες να του πεις ψαξε ολο το string για αριθμους! η κατι τετοιο! Αν γινεις πιο συγκεκριμενος για το πως εμφανιζοντε διαφορα πραγματα στο αρχειο ισως μπορεσουμε να σε βοηθησουμε.
dominant Δημοσ. 31 Μαΐου 2003 Μέλος Δημοσ. 31 Μαΐου 2003 Koitakse, to arxeio alla kai ka8e tetoio arxeio exei sugkekrimenei domh px. ΟΝΟΜΑ : ΜΠΛΑ ΜΠΛΑ ΕΠΙΘΕΤΟ : ΜΠΛΑ ΜΠΛΑ ΠΟΣΟΤΗΤΑ : double Ego 8elo na saroso opos kano kai poio pano kai vash kapoiu pattern opos eipes na anikneuso to double alla kai opoiadipote ari8mo(1,2,3,..) h markarismena shmadia px (Α,Β,Γ,..) vriskontai sthn arxh ka8e grammhs.
javanidhs Δημοσ. 31 Μαΐου 2003 Δημοσ. 31 Μαΐου 2003 Αν υπαρχει συγκεκριμενη δομη τοτε ακολουθα την! Αν λοιπον υποθεσουμε οτι υπαρχει η παρακατων δομη! ΟΝΟΜΑ : ΜΠΛΑ ΜΠΛΑ ΕΠΙΘΕΤΟ : ΜΠΛΑ ΜΠΛΑ ΠΟΣΟΤΗΤΑ : double σε ξεχωριστες γραμμες! τοτε διαβαζεις καθε γραμμη! Στην συνεχεια χρησιμοποιεις ενα StringTokenizer με tokenizer χαρακτηρα τοn ':' και σου δινει τα διαφορα κομματια! Αν το πρωτο τοκεν ειναι η λεξη ΠΟΣΟΤΗΤΑ τοτε διαβαζεις το δευτερο και με ενα Double.parseDouble παιρνεις την τιμη! και συνεχιζεις να διαβαζεις αναλογα! <img src="http://www.insomnia.gr/ubbthreads/images/graemlins/smile.gif" alt="" />
dominant Δημοσ. 31 Μαΐου 2003 Μέλος Δημοσ. 31 Μαΐου 2003 Xreiazomai kanena paketo? px java.util? to Double.parseDouble() pou anikei?
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.