1 Востаннє редагувалося S8 (17.01.2017 22:31:29)

Тема: Що можна вживати замість StreamTokenizer для робити з файлом ppm

Даний файл Snow.ppm ,потрібно використовувати клас FileReader щоб завантажити дані,та вивести зображення на екран.УВАГА (не використовуючи  клас StreamTokenizer);як можна змінити код????

Post's attachments

Snow.ppm 1.64 mb, 453 downloads since 2017-01-17 

2 Востаннє редагувалося S8 (17.01.2017 22:34:12)

Re: Що можна вживати замість StreamTokenizer для робити з файлом ppm

Кодддддд який треба переписати

Post's attachments

Main.java 1.96 kb, 430 downloads since 2017-01-17 

3

Re: Що можна вживати замість StreamTokenizer для робити з файлом ppm

S8 написав:

Кодддддд який треба переписати

кому треба?

4

Re: Що можна вживати замість StreamTokenizer для робити з файлом ppm

Мені,тому думаю над цим завданням

5

Re: Що можна вживати замість StreamTokenizer для робити з файлом ppm

S8 написав:

Мені,тому думаю над цим завданням

ну і шо надумали вже?

6

Re: Що можна вживати замість StreamTokenizer для робити з файлом ppm

public class Main
extends Frame{
    Color[][] image;
    public static void main(String [] args){
        new Main();
    }
    
    public Main(){
        image = loadPPM();
        setSize( 640, 480);
        setVisible(true);
        
        addWindowListener(
            new WindowAdapter(){
                public void windowClosing(WindowEvent evt){
                    System.exit(0);
                }
            }
        );
    }
    public void paint(Graphics g){
    
        for(int i=0; i < image.length; i++){
            for( int j=0; j < image[i].length; j++){
                g.setColor(image[i][j]);
                g.drawLine(50 + j, 50 + i, 50 + j, 50 + i);
            }
        }
    
    }
        public static Color[][] loadPPM(){
            try {
                FileReader fr = new FileReader("C:\\Users\\DELL\\Downloads\\Snow.ppm");
                StreamTokenizer st = new StreamTokenizer(fr);
                
                st.nextToken();
                st.nextToken();
                st.nextToken();
                st.nextToken();
                st.nextToken();
                st.nextToken();
                int sze = (int)st.nval;
                st.nextToken();
                int wys = (int)st.nval;
                st.nextToken();
                
                Color data[][] = new Color[wys][sze];
                
                for(int i=0; i<data.length; i++){
                    for(int j=0; j<data[i].length; j++){
                        st.nextToken();
                        int r = (int)st.nval;
                        st.nextToken();
                        int g = (int)st.nval;
                        st.nextToken();
                        int b = (int)st.nval;
                        data[i][j] = new Color(r, g, b);
                    }
                }
                return data;
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException ex){
                ex.printStackTrace();
            }    
            return null;
        }
    }
Подякували: 0xDADA11C71

7

Re: Що можна вживати замість StreamTokenizer для робити з файлом ppm

ну шо, розібралися?

8

Re: Що можна вживати замість StreamTokenizer для робити з файлом ppm

Ще ні,хочете допомогти розібратись?

9

Re: Що можна вживати замість StreamTokenizer для робити з файлом ppm

S8 написав:

Ще ні,хочете допомогти розібратись?

звісно хочу

10

Re: Що можна вживати замість StreamTokenizer для робити з файлом ppm

буду дуже вдячна

11

Re: Що можна вживати замість StreamTokenizer для робити з файлом ppm

ну так от. Вам треба переробити код таким чином, аби він видавав той самий результат, і не використовував клас StreamTokenizer.
Моя перша допомога буде наступною:
загугліть інфу про клас StreamTokenizer і виясніть, що робить метод

nextToken()

та яке значення повертає поле з іменем

nval

12

Re: Що можна вживати замість StreamTokenizer для робити з файлом ppm

nextToken()

аналізує наступну лексему з вхідного потоку

nval

це поле містить значення числа

13

Re: Що можна вживати замість StreamTokenizer для робити з файлом ppm

S8 написав:
nextToken()

аналізує наступну лексему з вхідного потоку

nval

це поле містить значення числа

ну а ви самі розумієте, що це означає?

14

Re: Що можна вживати замість StreamTokenizer для робити з файлом ppm

окей напишу по-іншому

nextToken()

цей метод може повертати такі значення як: число,слово,кінець строки чи файлу

15

Re: Що можна вживати замість StreamTokenizer для робити з файлом ppm

S8 написав:

окей напишу по-іншому

nextToken()

цей метод може повертати такі значення як: число,слово,кінець строки чи файлу

а куди він їх повертає?
в тому коді я не бачу, аби щось кудись поверталося, цей метод просто викликається декілька разів підряд

16

Re: Що можна вживати замість StreamTokenizer для робити з файлом ppm

Так в цьому коді він нічого не повертає але я не можу зрозуміти як зробити по-іншому,поясніть будь ласка

17

Re: Що можна вживати замість StreamTokenizer для робити з файлом ppm

S8 написав:

Так в цьому коді він нічого не повертає але я не можу зрозуміти як зробити по-іншому,поясніть будь ласка

так я ж кажу, спершу потрібно зрозуміти, що саме воно робить. Якщо воно не повертає, тоді що воно робить? Навіщо викликати той метод декілька разів?
Погугліть краще, почитайте інфу про цей метод (бажано англійською), після чого буде зрозуміло, з чим ми маємо справу. А то - зробіть так, не знаю як, тільки по-іншому