שגיאה בקריאה מקובץ כאשר אני מריץ את הקובץ דוגמא

מנהל: TA_Isana

שלח תגובה
moshes
הודעות: 60
הצטרף: 00:15 24/10/2009

שגיאה בקריאה מקובץ כאשר אני מריץ את הקובץ דוגמא

שליחה על ידי moshes » 12:14 26/05/2010

אני מקבל את השגיאה

קוד: בחירת הכל

error "java.util.NoSuchElementException"
והוא מצביע לי על השורה

קוד: בחירת הכל

String value= st.nextToken().trim() ;
כאשר אני מנסה סתם להריץ את הקובץ לדוגמא שנתתם על סתם קובץ טקסט.
השאלה איך מתקנים את הבעיותיות ואולי זה רק אצלי ככה.

talshum
הודעות: 25
הצטרף: 20:54 28/10/2009

Re: שגיאה בקריאה מקובץ כאשר אני מריץ את הקובץ דוגמא

שליחה על ידי talshum » 16:14 26/05/2010

גם אצלי זה תקול

moshes
הודעות: 60
הצטרף: 00:15 24/10/2009

Re: שגיאה בקריאה מקובץ כאשר אני מריץ את הקובץ דוגמא

שליחה על ידי moshes » 18:33 26/05/2010

למתרגלים ,אחרי חפירה ממושכת אני חושב שגיליתי וסידרתי את הבעיה. הבעיה היא לפי מה שהבנתי , זה שהוא מנסה לגשת לעוד אלמנט במחרוזת אבל בגלל שהוא הגיע לסופה בעצם אין עוד אלמנטים ולכן זורק אקספשיין.
יש במחלקה של stringTokenizer פונקציה שנקראת hasMoreElements() שאני חושב שמסדרת את הבעיה .השאלה אם מותר להשתמש ואם באמת יש בעיה כלשהי בקריאה של הקבצים

danny.oren
הודעות: 14
הצטרף: 13:37 24/10/2009

Re: שגיאה בקריאה מקובץ כאשר אני מריץ את הקובץ דוגמא

שליחה על ידי danny.oren » 09:48 27/05/2010

גם לנו יש את הבעיה הזו.

TA_Ariel
הודעות: 261
הצטרף: 00:53 23/04/2009

Re: שגיאה בקריאה מקובץ כאשר אני מריץ את הקובץ דוגמא

שליחה על ידי TA_Ariel » 11:43 27/05/2010

בהחלט מותר ואף כדאי להשתמש בה.

shaysw
הודעות: 78
הצטרף: 16:23 08/11/2008

Re: שגיאה בקריאה מקובץ כאשר אני מריץ את הקובץ דוגמא

שליחה על ידי shaysw » 16:32 29/05/2010

אם אפשר לפרט בדיוק איך הפונקציה הזו עוזרת, עבור אנשים שלא מכירים פונקציות וטכניקות ב- java שלא נלמדו בכיתה.
כרגע הקובץ בדיקה הזה לא עוזר לנו בשום צורה, להיפך...

moshes
הודעות: 60
הצטרף: 00:15 24/10/2009

Re: שגיאה בקריאה מקובץ כאשר אני מריץ את הקובץ דוגמא

שליחה על ידי moshes » 16:42 29/05/2010

בעיקרון אתה צריך לשנות טיפה את הקובץ שהם נתנו . כי איך שהקובץ כרגע הוא לא עוזר
תסתכל על הקוד הבא: שהוא קריאה מקובץ. בעיקרון מה שרשום כאן . זה שתקרא שורה שורה, זה כמו שלמדנו בסמסטר שעבר
ה StringTokenizer תפקידו לקרוא מילה מילה מתוך כל השורה שקלטת.
attr= st.nextToken().trim() כאשר ATTR זה סטרניג. הפקדוה הזו אומרת לו תקלוט מילה הבאה
את שאר הקוד אתה בעיקרון לא צריך (צריך רק את הסגירה של הקובץ- התכוונתי שמה שחשוב זה רק הקוד שכתוב כאן למטה הוא בעצם החשוב ביותר)
כרגע מה שצריך להוסיף לקוד זה הפונציה של HASMOREELEMNTS() לפני כל קריאה לst.nexttoken() בעצם לבדוק שאכן קיימת מילה הבאה
הפונציה hasmoreelemnts מחזירה ערך בוליאני. אם אין לו עוד אלמנטים כלומר מילה נוספת לקרוא תגיד לו שיקרא שורה הבאה
מקווה שעזרתי טיפה בכל הבלאגן.

קוד: בחירת הכל

public static void read_From_File_Example(String inputFilename){
       	System.out.println("Reading from file " + inputFilename);
        int n = 0;
		int m = 0;
		String[] id = null;
        try {
            File inFile = new File(inputFilename);
            FileReader ifr = new FileReader(inFile);
            BufferedReader ibr= new BufferedReader(ifr) ;

            String line = "" ;
            while (line != null )
            {
                line = ibr.readLine() ;
                if (line != null)
                {
                    StringTokenizer st = new StringTokenizer(line,"=") ;
                    String attr= st.nextToken().trim() ;

shaysw
הודעות: 78
הצטרף: 16:23 08/11/2008

Re: שגיאה בקריאה מקובץ כאשר אני מריץ את הקובץ דוגמא

שליחה על ידי shaysw » 17:27 29/05/2010

הבנתי, תודה.
שאלה שקשורה- איך אני יוצר טוקנייזר שמזהה לי לא רק רווחים בין מילים אלא גם טאבים?

shaysw
הודעות: 78
הצטרף: 16:23 08/11/2008

Re: שגיאה בקריאה מקובץ כאשר אני מריץ את הקובץ דוגמא

שליחה על ידי shaysw » 18:01 29/05/2010

באותו הקשר- אני עכשיו מנסה לשפר את הקידוד, אך כשאני נתקל במילה שעברה TAB, לדוגמא "public" אז הטוקנייזר מעביר לי מחרוזת באורך 7 (בדיבאגר ראיתי שמופיע "public" ללא רווח)
וכשאני מחלץ את התו במקום ה-0 charAt(0) הוא לא נותן לי 'p' אלא מעין... כלום (בטבלת משתנים לא מופיע שום תו).


TA_Ariel
הודעות: 261
הצטרף: 00:53 23/04/2009

Re: שגיאה בקריאה מקובץ כאשר אני מריץ את הקובץ דוגמא

שליחה על ידי TA_Ariel » 18:16 29/05/2010

אם תגדיר stringtokenizer בלי delimiter כלומר רק עם המחרוזת, תקבל את זה בחינם.

שלח תגובה

חזור אל “- מבני נתונים 2010”