Hallo,
ich habe folgendes problem mit dem u.a. Quellcode. Die Aufgabe ist es ein ein zufälliges Wort aus einer Datei einzulesen.
Habe schon alles mögliche versucht. Das einlesen klappt auch soweit. Leider lieste er immer nur das erste Wort der datei ein.Weiß nicht mehr weiter.
oder ist es gar der völlig falsche ansatz.
//die Methode ermittelt zufällig ein Wort
private void neuesWort() {
//Aufgabe2 das einlesen der Worte aus der datei woerter.dat
try (RandomAccessFile datei = new RandomAccessFile("woerter.dat","r")){
int zufall;
//String [] woerter = {"Test", "Automobil", "Versuch", "Hund", "Katze",
//"Ziege", "Maus", "Elefant", "Isopropylalkohol", "Schwimmbad"};
//woerter = datei.readUTF();
//ein zufälliges Wort ermitteln
zufall = (int)(datei.length()*Math.random());
// die schleife für die durchläufe
//while(datei.getFilePointer() < datei.length()) {
for(int i = 0; i< zufall; i++);
// und die Position für das Wort holen
long neuePosition= zufall;
//und das wort weitergeben
zufall = datei.readUnsignedShort();
//datei.seek(datei.getFilePointer() + neuePosition);
datei.skipBytes((int) (datei.getFilePointer() + zufall));
//String wort = datei.readUTF();
//das Suchwort und die Zeichen für die Anzeige setzen
suchwort = new String(datei.readUTF());
//suchwort = new String(datei.readUTF());
anzeige = new StringBuilder(suchwort);
//alle Zeichen in der Anzeige ersetzen durch *
for (int zeichen = 0; zeichen < suchwort.length(); zeichen++)
anzeige.setCharAt(zeichen, '*');
//die Sternchen anzeigen
ausgabeText.setText(anzeige.toString());
// }
}
catch(IOException e) {
Alert meinDialog = new Alert(AlertType.INFORMATION, "Beim Laden ist ein Problem aufgetreten");
meinDialog.setHeaderText("Bitte beachten");
meinDialog.showAndWait();
}
}
ich habe folgendes problem mit dem u.a. Quellcode. Die Aufgabe ist es ein ein zufälliges Wort aus einer Datei einzulesen.
Habe schon alles mögliche versucht. Das einlesen klappt auch soweit. Leider lieste er immer nur das erste Wort der datei ein.Weiß nicht mehr weiter.
oder ist es gar der völlig falsche ansatz.
//die Methode ermittelt zufällig ein Wort
private void neuesWort() {
//Aufgabe2 das einlesen der Worte aus der datei woerter.dat
try (RandomAccessFile datei = new RandomAccessFile("woerter.dat","r")){
int zufall;
//String [] woerter = {"Test", "Automobil", "Versuch", "Hund", "Katze",
//"Ziege", "Maus", "Elefant", "Isopropylalkohol", "Schwimmbad"};
//woerter = datei.readUTF();
//ein zufälliges Wort ermitteln
zufall = (int)(datei.length()*Math.random());
// die schleife für die durchläufe
//while(datei.getFilePointer() < datei.length()) {
for(int i = 0; i< zufall; i++);
// und die Position für das Wort holen
long neuePosition= zufall;
//und das wort weitergeben
zufall = datei.readUnsignedShort();
//datei.seek(datei.getFilePointer() + neuePosition);
datei.skipBytes((int) (datei.getFilePointer() + zufall));
//String wort = datei.readUTF();
//das Suchwort und die Zeichen für die Anzeige setzen
suchwort = new String(datei.readUTF());
//suchwort = new String(datei.readUTF());
anzeige = new StringBuilder(suchwort);
//alle Zeichen in der Anzeige ersetzen durch *
for (int zeichen = 0; zeichen < suchwort.length(); zeichen++)
anzeige.setCharAt(zeichen, '*');
//die Sternchen anzeigen
ausgabeText.setText(anzeige.toString());
// }
}
catch(IOException e) {
Alert meinDialog = new Alert(AlertType.INFORMATION, "Beim Laden ist ein Problem aufgetreten");
meinDialog.setHeaderText("Bitte beachten");
meinDialog.showAndWait();
}
}