"Thibault Meyer-Jüres" <Thibaul...@post.rwth-aachen.de> wrote
:
Hm.. hast Du das nicht schon in der Überschrift selbst erklärt?
Wie kommen denn die Daten? Permanenter Strom, oder werden sie in
regelmäßigen abständen einfach erneuert?
Müsste sich doch mit nem einfachen StringTokenizer leicht realisieren
lassen.
Oder ich verstehe Deine Frage nicht richtig.
CU Goin
--
Ein Bankier ist ein Mensch, der seinen Schirm verleiht,
wenn die Sonne scheint, und ihn sofort zurückhaben will,
wenn es zu regnen beginnt.
[Mark Twain (1835 - 1910)]
mit
java.io.BufferedReader
java.util.StringTokenizer
BufferedReader br = new BufferedReader ( new FileReader (
"path/to/text/file.txt" );
String line;
whild ( ( line = br.readLine()) != null ) {
StringTokenizer st = new StringTokenizer ( line );
String station = st.nextToken();
int x = Integer.parseInt(st.nextToken());
int y = Integer.parseInt(st.nextToken());
// hier was mit station, x und y machen
}
br.close();
gruss,
Mirko Tschäni
Ungetestet:
try {
BufferedReader in = new BufferedReader(
new FileReader("NameDerDatei"));
String line;
while ( (line = in.readLine()) != null) {
StringTokenizer tok = new StringTokenizer(line, ";");
int art = Integer.parseInt(tok.nextToken());
int x = Integer.parseInt(tok.nextToken());
int y = Integer.parseInt(tok.nextToken());
/* Hier was mit art x, und y machen */
}
}
catch(Exception e) {
e.printStackTrace();
}
> Vielen Dank
Bitte, bitte. Ich hoffe das läuft.
Schneller wird das ganze wenn man es mit StreamTokenizer macht.
Gruss
Robert Mahnke
"Mirko Tschäni" <mi...@tonia.ch> schrieb im Newsbeitrag
news:aalni7$lqq$1...@news.magnet.ch...
oops, das sollte natürlich
StringTokenizer st = new StringTokenizer(line, ";");
heissen...
StringTokenizer nimmt " " als standard trennzeichtn.
StringTokenizer nimmt ein beliebiges tennzeichen und bietet die
public String nextToken() methode, um ein teilstring nach dem andern zu
durchlaufen.
> Wenn ich jetzt alle Zeilen einlesen möchte muß ich doch noch ne weitere
die erste schleiffe
> > whild ( ( line = br.readLine()) != null ) {
"geht durch " die zeilen, für die einzelnen felder
brauchst du keine schleiffe, da es sich ja um (wenn ich das richtig
versanden hab)
drei im voraus bekannte felder ( art, x , y ) handelt.
> Schleife einbauen, oder?
> Kann mein Textfile ein "CSV" File sein?
CSV dateien sind textdateien : - )
gruss,
MirkoTschäni
Genauer gesagt, alle whitespace Zeichen, also [\n\r\t ]+
new StringTokenizer("\n\r\t");
Gruss: Martin
"catch(Exception e) {
e.printStackTrace();
}"
Gruß
Thibault
"Robert Mahnke" <Robert...@web.de> schrieb im Newsbeitrag
news:aalnlr$u5j$00$1...@news.t-online.com...
"Mirko Tschäni" <mi...@tonia.ch> schrieb im Newsbeitrag
news:aaloni$m4o$1...@news.magnet.ch...
> Okay, das müßte passen, danke!
> Letzte Frage was macht das br.close()?
>
Den Reader schließen?
es schliesst den stram
wenn du es nicht aufruffst wir er soviel ich weiss beim beenden des
programms implizit geschlossen. es empfielt sich allerdings trotzdem
die close() methode aufzuruffen. ( zum beispiel kann es vorkommen, das
andere applikationen beim zugriff auf die betroffene datei mekkern wenn du
noch einen stream "offen" hast auf die datei.
schau dir mal die api dokumentation an...
http://java.sun.com/j2se/1.4/docs/api/index.html
Es könnten in diesem Block Exceptions geworfen werden.
(IOException oder FileNotFoundException)
Ohne einen try-catch Block kannst du diesen Code
garnicht fehlerfrei kompilieren.
Zu java.lang.Exception#printStackTrace() schau am bestem mal
in die API, hier ein Auszug:
Prints this throwable and its backtrace to the standard error stream.
This method prints a stack trace for this Throwable object on the
error output stream that is the value of the field System.err.
The first line of output contains the result of the toString()
method for this object. Remaining lines represent data previously
recorded by the method fillInStackTrace() . The format of this
information depends on the implementation, but the following example
may be regarded as typical:
java.lang.NullPointerException
at MyClass.mash(MyClass.java:9)
at MyClass.crunch(MyClass.java:6)
at MyClass.main(MyClass.java:3)
usw...
Gruss
Robert
es tut nicht Not, dass du immer das hanze Posting unten
dranhängst bei deinen Antworten. Ich glaube jemand hat
das mit http://learn.to/quote schon angedeutet.
Gruss
Robert
PS: Den BufferedReader sollte man natürlich, wenn man
fertig ist auch wieder schliessen (in.close);
wie in dem anderen Beispiel.
> Lassen sich die eingelesenen Daten, testteshalber vielleicht
> auch ausgeben?
>
Sicher.
Wohin hättest Du sie denn gern?
Goin
> Ist mir eigentlich egal, nur um mal zu sehen, ob er alles
> eingelesen hat.....
System.out.println() gibt einen String auf der Konsole aus. Das ist
eigentlich eine ziemlich einfache Methode.
Ingo
Nein!
Schon das Kompilieren schlägt fehlt, da JAVA an dieser Stelle
einen try-catch Block erwartet.
Robert
In der while-Schleife am Ende ein
System.out.println("art: " + art + " / x: " + x + " / y: " + y);
gibt jede Zeile auf der Konsole aus.
Robert
> Ich bin echter Anfänger was JAVA betrifft, sorry für die doofen
> fragen... Habe bisher nur über den Browser das Aplet gestartet,
> wie läuft das mit der Konsole?
Was für einen Browser verwendest Du denn? Plug-In oder interne VM?
Mag sein, dass du das am Anfang mal irgendwann erwähnt hast....
Ingo
> Lassen sich die eingelesenen Daten, testteshalber vielleicht auch ausgeben?
System.out.println (...)
Übrigens jetzt zitierst du zu wenig. Nicht einfach nur stoisch
reagieren sondern vielleicht *wirklich* nachlesen, was auf
http://learn.to/quote steht.
Ach so, da wir gerade beim Lesen sind. Kennst du diese Seite:
http://java.sun.com/j2se/1.3/docs/api/index.html
?
Gruß,
Josch.
--
Einige Tags in de.comp.lang.java ( siehe http://www.dclj.de/dcljstart.html )
[INFO] - Allgemeine Infos, z.B. Links auf Webseiten - keine Frage
[DISCUSSION] - Diskussion zu einem Java-spezifischen Thema - keine Frage
[ANNOUNCE] - Vorstellung neuer Software (möglichst nicht Kommerziell)
> Den Internet-explorer benutze ich
>
Muss man Dir denn alles aus der Nase ziehen? Welche Version?
Naja, normalerweise findest Du unter Extras->Internetoptionen-
>Erweitert einen Abschnitt Java. Da könnte dann Java Konole
aktivieren stehen. Wenn nicht, melde Dich noch mal.
Goin
> Den Internet-explorer benutze ich
>
>
>
Etwas vom Vorposter kannst du schon stehen lassen, nur wegschneiden, was
nicht zum Zusammenhang gehört.
Wenn du noch eine Version des IE mit Java-VM hast (5.5), kannst du unter
Extras|Internetoptionen die Java-Konsole aktivieren.
Danach ist sie unter Ansicht zu finden.
Micha
--
Homepage & FAQ von de.comp.lang.java: http://www.dclj.de
Die Ausgabe stat/x/y gibt die korekten Werte aus der eingelesenen Datei aus.
Die Ausgabe node[i].stat wie auch *./x *./y geben jeweils Null aus.
Hab ich bei der Zuweisung was falsch gemacht?
[Code]
> node[i].stat = (int) stat;
[Code]
> i=i+1;
^^^^^^
Hier zählst du schon einen hoch...
> System.out.println("stat: " + stat + " / x: " + x + " / y: " +
> y);
> System.out.println(node[i].stat);
^^^^^^^^^^^^^^^^^^^^^^^^^
...hier gibst du dann den nächsten node aus, in dem
natürlich noch nichts steht
Gruss
Robert