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 »

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 »

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 »

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 »

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 »

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 »

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 »

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 »

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 »

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 »

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 »

"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 »

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 »

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 »

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
Eclipse-Projekt
Eclipse-Projekt
screenshot2.png (15.54 KiB) 994 mal betrachtet
Sourcedateien
Sourcedateien
screenshot1.png (23.76 KiB) 995 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 »

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“