Verständnisfragen Vol. II

marek
Mausschubser
Mausschubser
Beiträge: 85
Registriert: 18. Okt 2007 15:24
Wohnort: DA

Verständnisfragen Vol. II

Beitrag von marek » 2. Jan 2008 18:47

Hallo,

Bei der 8. HA ist mir vieles immer noch nicht klar geworden (die Aufgabenstellungen beinhalten meiner Meinung nach sehr viel Prosa im Vergleich zu den Informationen, die sie liefern :wink: ):

Was bedeutet eigentlich genau "eine Datei einlesen"?
Heißt das, wir bekommen einen Array und Java macht ein Feld daraus?
Was machen eigentlich die drei aus Java.io importierten Klassen??

Danke und frohes neues Jahr!
Marek

Benutzeravatar
Krümelmonster
Geek
Geek
Beiträge: 767
Registriert: 17. Okt 2007 13:58
Wohnort: Jossgrund

Beitrag von Krümelmonster » 2. Jan 2008 19:48

Also bei mir wird nur eine Klasse aus java.io importiert (FileReader).

Wie der Name schon sagt, wird dabei die Datei, deren
Dateiname an den Konstruktor übergeben wird, Zeichen
für Zeichen gelesen.

Wie das genau funktioniert kann dir eigentlich egal sein,
BlackBox sei Dank, du musst nur wissen, dass du mit der
getNextNumber() Methode immer die nächste Zahl in der
Datei bekommst.

Es ist nun deine Aufgabe diese sinnvoll in ein Array zu speichern.

Es kann glaube ich angenommen werden, dass die Datei
richtig formatiert ist.
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!

Benutzeravatar
taufrisch
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 107
Registriert: 30. Sep 2007 02:42
Wohnort: 127.0.0.1

Re: Verständnisfragen Vol. II

Beitrag von taufrisch » 2. Jan 2008 23:21

marek hat geschrieben:Was bedeutet eigentlich genau "eine Datei einlesen"?
In SimpleFileParser.java findest du ein Gerüst um aus SimpleFileParser sowas wie PublicTest zu machen, nur das die Werte nicht im Javacode festgelegt sind, sondern aus test.txt eingelesen werden.

Kleiner Tip: Bring AntyTheHarvesterApplication.java zum kompilieren, dann wird es schon etwas klarer.
marek hat geschrieben:Was machen eigentlich die drei aus Java.io importierten Klassen??
import java.io.FileReader wird gebraucht für "new FileReader".
import java.io.IOException wird gebraucht für "catch (IOException e)".
import java.io.Reader wird gebraucht für "Reader reader" und den Zugriff darauf.
Premature optimization is the root of all evil.

Don't anthropomorphize computers: They hate that.

marek
Mausschubser
Mausschubser
Beiträge: 85
Registriert: 18. Okt 2007 15:24
Wohnort: DA

Beitrag von marek » 3. Jan 2008 09:06

Krümelmonster hat geschrieben:Es ist nun deine Aufgabe diese sinnvoll in ein Array zu speichern.
Ok, das wird wohl irgendwie machbar sein. Und dieses Array wird dann "intern" gespeichert?

Es soll ja zudem auch ein Feld erstellt werden. Mache ich dies auch in SimpleFileParser?

Stumpf.Alex
Nerd
Nerd
Beiträge: 643
Registriert: 1. Okt 2007 12:40
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von Stumpf.Alex » 3. Jan 2008 12:24

Das Feld wird automatisch in der main durch PrepareField generiert, in dem es das von dir eingelesene Array nutzt.

niklas
Mausschubser
Mausschubser
Beiträge: 45
Registriert: 1. Okt 2007 15:39

Beitrag von niklas » 4. Jan 2008 15:36

Nur wie genau funktioniert dieses getNextNumber()? Klar, es ist ne Blackboxabstraktion, nur gerade die Zeile mit dem

Code: Alles auswählen

result = result * 10 + ch - '0'
versteh ich irgendwie nicht.

Stumpf.Alex
Nerd
Nerd
Beiträge: 643
Registriert: 1. Okt 2007 12:40
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von Stumpf.Alex » 4. Jan 2008 16:13

In diesem Abschnitt liest er eine Zahl ein, indem er die Datei Zeichen für Zeichen parst bis ein nicht numerisches Zeichen kommt. Dabei muss man beachten, dass eine 3-stellige Zahl z.B. aus drei einzelnen Ziffern besteht. Deshalb liest man die erste Ziffer ein und wenn noch eine weitere kommt, wird das gesamte Ergebnis mit 10 multipliziert. Dies wiederholt man Zeichen für Zeichen bis zum Ende der Zahl.

Aber wie die genau funktioniert kann dir im moment wirklich egal sein, oder?

evel
Erstie
Erstie
Beiträge: 19
Registriert: 16. Nov 2007 11:08

Beitrag von evel » 4. Jan 2008 18:01

ich versteh nicht wo ich die informationen als array speichern soll.
parseFile gibt doch void zurück, oder!?

Benutzeravatar
Krümelmonster
Geek
Geek
Beiträge: 767
Registriert: 17. Okt 2007 13:58
Wohnort: Jossgrund

Beitrag von Krümelmonster » 4. Jan 2008 18:22

Du kannst doch die Informationen innerhalb von parseFile() oder
in Methoden, die von parseFile() aufgerufen werden,
in ein Klassenattribut speichern.
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!

niklas
Mausschubser
Mausschubser
Beiträge: 45
Registriert: 1. Okt 2007 15:39

Beitrag von niklas » 4. Jan 2008 20:44

Stumpf.Alex hat geschrieben:In diesem Abschnitt liest er eine Zahl ein, indem er die Datei Zeichen für Zeichen parst bis ein nicht numerisches Zeichen kommt. Dabei muss man beachten, dass eine 3-stellige Zahl z.B. aus drei einzelnen Ziffern besteht. Deshalb liest man die erste Ziffer ein und wenn noch eine weitere kommt, wird das gesamte Ergebnis mit 10 multipliziert. Dies wiederholt man Zeichen für Zeichen bis zum Ende der Zahl.

Aber wie die genau funktioniert kann dir im moment wirklich egal sein, oder?
Schon, hatte mich aber interessiert :)

Vielen Dank

marek
Mausschubser
Mausschubser
Beiträge: 85
Registriert: 18. Okt 2007 15:24
Wohnort: DA

Re: Verständnisfragen Vol. II

Beitrag von marek » 12. Jan 2008 21:57

"test.txt (Das System kann die angegebene Datei nicht finden)"

Was ist denn hier das Problem?! Wo soll ich diese test-Datei speichern, damit er sie auch finden kann? :roll:

Stumpf.Alex
Nerd
Nerd
Beiträge: 643
Registriert: 1. Okt 2007 12:40
Wohnort: Darmstadt
Kontaktdaten:

Re: Verständnisfragen Vol. II

Beitrag von Stumpf.Alex » 12. Jan 2008 22:06

Entweder in das gleiche Verzeichnis mit den Javadateien oder bei Eclipse direkt in das Verzeichnis des Projektes. Fängst ja früh an... :wink:

marek
Mausschubser
Mausschubser
Beiträge: 85
Registriert: 18. Okt 2007 15:24
Wohnort: DA

Re: Verständnisfragen Vol. II

Beitrag von marek » 12. Jan 2008 23:46

Ja, toll, das hatte ich ja bereits gemacht. Warum gehts immer noch nicht??

Benutzeravatar
Krümelmonster
Geek
Geek
Beiträge: 767
Registriert: 17. Okt 2007 13:58
Wohnort: Jossgrund

Re: Verständnisfragen Vol. II

Beitrag von Krümelmonster » 12. Jan 2008 23:53

In den Screenshots im Anhang siehst du meine
Datei- und Projektstruktur.

Im Code heißt es einfach:

Code: Alles auswählen

p = new SimpleFileParser("test.txt");
Dateianhänge
screenshot2.png
Eclipse-Projekt
screenshot2.png (15.54 KiB) 802 mal betrachtet
screenshot1.png
Sourcedateien
screenshot1.png (23.76 KiB) 803 mal betrachtet
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!

marek
Mausschubser
Mausschubser
Beiträge: 85
Registriert: 18. Okt 2007 15:24
Wohnort: DA

Re: Verständnisfragen Vol. II

Beitrag von marek » 13. Jan 2008 00:33

Das hat mir natürlich geholfen, danke.
Wohl merkwürdig, ich hatte die Datei vorhin in den Source-Folder reingesteckt (laut Anweisung: "gleiches Verzeichnis wie die Klassen"), und es hat nicht funktioniert...

Antworten

Zurück zu „Archiv“