tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
11
ZUGRIFFE
746
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    basuhexe basuhexe ist offline Rookie
    Registriert seit
    Apr 2004
    Beiträge
    7
    Ich hab ´n Programm geschrieben, welches mir Zufallszahlen in Spalten und Zeilen in eine Datei schreibt. Die Zeilen-Anzahl wird über args gesteuert und die Spalten sind im Moment noch "fest" (5Spalten). Ich möchte das ganze aber dynamisch realisieren, das der Anwender x Zeilen und y Spalten eingibt.
    Wie kann ich das über eine Properties-Datei steuern
    Geändert von basuhexe (27.05.04 um 16:00 Uhr)
     

  2. #2
    Registriert seit
    Apr 2004
    Ort
    Ruhrgebiet
    Beiträge
    1.582
    Original geschrieben von basuhexe
    Ich hab ´n Programm geschrieben, welches mir Zufallszahlen in Spalten und Zeilen in eine Datei schreibt. Die Zeilen-Anzahl wird über args gesteuert und die Spalten sind im Moment noch "fest" (5Spalten). Ich möchte das ganze aber dynamisch realisieren, das der Anwender x Zeilen und y Spalten eingibt.
    Wie kann ich das über eine Properties-Datei steuern
    Nur um sicher zu gehen:
    Du möchtest aus einer properties-Datei auslesen, wie viele Zeilen und Spalten zu generieren sind anstelle einer Übergabe zweier fester Zahlen beim Programmstart?

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
        public [B]SchreibeDatei2[/B](int row, int column) {
            NumberGenerator ng = new NumberGenerator(row, column);
            array = ng.getResult();
        } //-- End constructor()
        
        public static void main(String args[]) {
            [B]SchreibeDatei sd = new SchreibeDatei (Integer.parseInt(args[0]));[/B]
            sd.saveToFile();
            System.out.println(args[0]);
            //System.out.println(args[1]);
        } //-- End method main
    Das funktioniert so natürlich nicht, weil a) falscher Konstruktorname und b) falsche Anzahl Parameter (Übergabe: 1, Erwartung: 2) (siehe fett markierte Stellen)
     

  3. #3
    basuhexe basuhexe ist offline Rookie
    Registriert seit
    Apr 2004
    Beiträge
    7
    Bin zwar Anfänger aber funktionieren tut es aber ........
    aber wie kann ich die Eingabe, steuern
    Der Benutzer soll selber festlegen, wieviele Spalten und Zeilen er haben will
     

  4. #4
    Registriert seit
    Apr 2004
    Ort
    Ruhrgebiet
    Beiträge
    1.582
    >Bin zwar Anfänger aber funktionieren tut es aber ........

    Aber nicht mit dem von Dir geposteten Code.

    >aber wie kann ich die Eingabe, steuern
    >Der Benutzer soll selber festlegen, wieviele Spalten und Zeilen er haben will

    Wie und wo soll er das denn tun? Konsoleneingabe? Kleiner Dialog/Eingabemaske?
     

  5. #5
    basuhexe basuhexe ist offline Rookie
    Registriert seit
    Apr 2004
    Beiträge
    7
    Ein bißchen Hilfe hat ich schon!

    über Dialog/Eingabemaske, mein Problem ist:
    die Eingabe des Benutzers-Übergabe ans Programm, da es ja dynam./flexibel bleiben soll
     

  6. #6
    Registriert seit
    Apr 2004
    Ort
    Ruhrgebiet
    Beiträge
    1.582
    Original geschrieben von basuhexe
    über Dialog/Eingabemaske, mein Problem ist:
    die Eingabe des Benutzers-Übergabe ans Programm, da es ja dynam./flexibel bleiben soll
    Dann musst Du doch lediglich einen JDialog vorneweg öffnen.

    Benutze nicht
    Code :
    1
    2
    3
    4
    5
    6
    
    public static void main(String args[]) {
    SchreibeDatei sd = new SchreibeDatei (Integer.parseInt(args[0]));
    sd.saveToFile();
    System.out.println(args[0]);
    //System.out.println(args[1]);
    } //-- End method main

    sondern

    Code :
    1
    2
    3
    
    public static void main(String args[]) {
    MyDialog myDialog = new MyDialog();
    myDialog.show();

    mit
    Code :
    1
    
    class MyDialog extends JDialog

    usw.
    In dem Dialog legst Du zwei JLabel und zwei JTextField an. Dazu einen JButton, auf dessen Betätigung Du mit der Erzeugung der Datei reagierst.
    Dabei liest Du die beiden JTextFields aus (Anz Spalten+Zeilen) und übergibst die Werte an Deine auswertende Methode.
     

  7. #7
    basuhexe basuhexe ist offline Rookie
    Registriert seit
    Apr 2004
    Beiträge
    7
    SORRY-KANN DIR NICHT GANZ FOLGEN
    (Zumindest mit der Übergabe)
    Geändert von basuhexe (27.05.04 um 11:22 Uhr)
     

  8. #8
    Registriert seit
    Apr 2004
    Ort
    Ruhrgebiet
    Beiträge
    1.582
    Original geschrieben von basuhexe
    SORRY-KANN DIR NICHT GANZ FOLGEN
    (Zumindest mit der Übergabe)
    Bilder sagen mehr als tausen Worte...
    Ich habs mal eben reingehackt. Ist noch lange nicht perfekt (Buchstaben als Eingabe müssen noch abgefangen werden, Layout kann besser sein,...), aber es funktioniert. Wegen der Übergabe: Achte auf den fett markierten Codeschnipsel. Deine innere Klasse habe ich nicht geändert, nur die main-Methode.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    
    public class MyDialog extends JDialog
    {
        private int[][] array;
        
        GridLayout gridLayout = new GridLayout(2, 1);
        JPanel panel = new JPanel();
        JButton jbCreate = new JButton("Datei erzeugen");
        
        JLabel jlZeilen = new JLabel("Zeilenanzahl:");
        JLabel jlSpalten = new JLabel("Spaltenanzahl:");
        JTextField jtfZeilen = new JTextField();
        JTextField jtfSpalten = new JTextField();
         
        MyDialog()
        {
            this.setSize(300, 300);
            panel.setLayout(new GridLayout(2,2));
            panel.add(jlZeilen);
            panel.add(jtfZeilen);
            panel.add(jlSpalten);
            panel.add(jtfSpalten);
            
            this.getContentPane().setLayout(gridLayout);
            this.getContentPane().add(panel);
            this.getContentPane().add(jbCreate);
            
            jbCreate.addActionListener(new ActionListener()
                            {
                                public void actionPerformed(ActionEvent e)
                                {
                                    createFile();
                                }
                            });
        }
        
        private void createFile()
        {
            [B]int iZeilen = Integer.parseInt(jtfZeilen.getText());
            int iSpalten = Integer.parseInt(jtfSpalten.getText());
            NumberGenerator ng = new NumberGenerator(iZeilen, iSpalten);[/B]
            array = ng.getResult();
            saveToFile();
            System.exit(0);     
        }
     
        public void saveToFile()
        {
            try
            {
                FileOutputStream fos =
                    new FileOutputStream("c:\\Dokumente und Einstellungen\\zufallstest.txt");
                PrintStream output = new PrintStream(fos);
                for (int i = 0; i < array.length; i++)
                {
                    for (int j = 0; j < array[i].length; j++)
                    {
                        output.print(array[i][j] + "\t");
                    }
                    output.println();
                }
                output.close();
                System.out.println("Datei zufallstest.txt wurde erstellt");
            }
            catch (FileNotFoundException e)
            {
                System.out.println("Schreiben fehlgeschlagen");
            }
        } //-- End method saveToFile()
        
        private class NumberGenerator
        {
            private int[][] array;
     
            public NumberGenerator(int row, int column)
            {
                create(row, column);
            }
     
            public int[][] getResult()
            {
                return array;
            }
     
            public void create(int row, int column)
            {
                array = new int[row][column];
                for (int i = 0; i < row; i++)
                {
                    for (int j = 0; j < column; j++)
                    {
                        System.out.print((int) (Math.random() * 10000) + " ");
                        array[i][j] = (int) (Math.random() * 10000);
                    }
                    System.out.println();
                }
            }
     
            public void generate(int rows, int column)
            {
                BitSet b = new BitSet();
                Random r = new Random();
     
                int cnt = 0;
                while (cnt < rows)
                {
                    //int num = 1 + Math.abs(r.nextInt()) % 49000;
                    int num = 1 + Math.abs(r.nextInt()) % 49000;
                    if (!b.get(num))
                    {
                        b.set(num);
                        ++cnt;
                    }
                }
                for (int i = 5; i <= 49000; ++i)
                {
                    if (b.get(i))
                    {
                        System.out.println(i + " ");
                    }
                }
                System.out.println("");
            }
        } //-- End class NumberGenerator
        
        public static void main(String args[])
        {
            MyDialog myDialog = new MyDialog();
            myDialog.show();
        } //-- End method main  
    }
     

  9. #9
    basuhexe basuhexe ist offline Rookie
    Registriert seit
    Apr 2004
    Beiträge
    7
    THANKS

    Werd es mir mal zu Gemüte führen, falls ich noch Fragen habe......
     

  10. #10
    basuhexe basuhexe ist offline Rookie
    Registriert seit
    Apr 2004
    Beiträge
    7
    Ich werd bekloppt.....es funktioniert (alles tadellos)
    Ich dank Dir wie verückt!
     

  11. #11
    Registriert seit
    Apr 2004
    Ort
    Ruhrgebiet
    Beiträge
    1.582
    Original geschrieben von basuhexe
    THANKS

    Werd es mir mal zu Gemüte führen, falls ich noch Fragen habe......
    Wenn's nicht in wenigen Minuten erledigt gewesen wäre, hätte ich es auch nicht getan.

    Wenn Du Fragen hast, nur keine Hemmungen.

    Und schliesslich:
    Mit Properties hat das alles absolut nichts zu tun.
    Das ist simple Dateneingabe und weiterverarbeiten...
     

  12. #12
    Registriert seit
    Apr 2004
    Ort
    Ruhrgebiet
    Beiträge
    1.582
    Original geschrieben von basuhexe
    Ich werd bekloppt.....es funktioniert (alles tadellos)
    Ich dank Dir wie verückt!
    Öi, hast Du etwas anderes erwartet? *fuchtel-droh*
    Das sind übrigens wirklich einfachste Anfängerübungen, nix dolles.
     

Ähnliche Themen

  1. Properties
    Von besy im Forum .NET Café
    Antworten: 3
    Letzter Beitrag: 10.08.10, 13:35
  2. Properties lesen via XML
    Von takidoso im Forum Java
    Antworten: 2
    Letzter Beitrag: 14.11.09, 22:44
  3. testvar has no properties..
    Von Geflügel im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 24.08.07, 03:19
  4. Java Properties
    Von Nick0110 im Forum Java
    Antworten: 1
    Letzter Beitrag: 11.08.07, 17:41
  5. Stack voll! "Properties properties = new Properties ();"
    Von stephan r. im Forum .NET Archiv
    Antworten: 0
    Letzter Beitrag: 13.10.04, 10:36