Einlesen,Vergleichen, Rausschreiben

Kranz

Grünschnabel
Hey.
Sehe irgendwie nicht den Wald hier.
Ich habe eine datei aus der ich rausschreiben will.
Wichtig sind bestimmte Zeilen.
Wenn in einer (nicht der ersten wichtigen Zeile)
der 2.Token ungleich 0.000 ist dann sollen
die Wichtigen linien rausgeschriben werden.
Die Datei wiederholt sich vom Aufbau.
Es ist manchmal der 2.Token in dieser einen Zeile 0.000 und manchmal nicht.

Ich schreibe hier mal Alles hin,was (leider!grr!) nicht einwandfrei ist.

Bitte um Unterstützung so schnell es geht!



Nun das Programm:
import java.util.*;
import java.awt.*;
import javax.swing.*;
import java.io.*;

class fürWahr1
{
public static void main(String[] args)
{
try
{




FileReader freader = new FileReader("forTrue.txt");
BufferedReader breader = new BufferedReader(freader);
String line = breader.readLine();



//für Die erste ausgeschriebene Zeile
String line1="";
// für2te ...
String line2 = "";


String line3="";


String line4="";
String line5="";
String line6="";
// Für später zum in eine Datei reinschreiben :den Filewriter
FileWriter fw = new FileWriter("test.txt");

while(line != null)
{

String next="";

StringTokenizer st = new StringTokenizer(line );
if( st.hasMoreTokens())
next = st.nextToken();
if(( st.hasMoreTokens() && st.nextToken().equals("Station..........:")))

line1= line;
if (next.equals("Kiss"))
line2= line;
if (next.equals("Raus"))
line3= line;


/*hiervon soll er nun die ganze Rausschreiberei abhängig machen,d.h. nur
wenn er in der "Rechnung" Zeile (s.o)der nächste Token ungleich 0.000 ist soll alles raus.
Jedoch tut er es irgendwir nicht so ganz
*/

if ((next.equals("Rechnung")))
{
if((st.nextToken()) != "0.000")
{
line4=line;

if (st.hasMoreTokens() && st.nextToken().equals("Bla1"))
line5= line;

if (st.hasMoreTokens() && st.nextToken().equals("Bla2"))
line6=line;

System.out.println(line1);
System.out.println(line2);
System.out.println(line3);
System.out.println(line4);
System.out.println(line5);
System.out.println(line6);




}

/*fw.write(line1);
fw.write(line2);
fw.write(line3);
fw.write(line4);
fw.write(line5);
fw.write(line6);
fw.close(); Weiss nicht ob das Zeug nicht doch in den Block
drüber muss später zum Rausschreiben in eine andere Datei*/
}


line = breader.readLine();

}

freader.close();



}
catch(Exception e)
{
//System.out.println("incorrect data:" + line);
e.printStackTrace();
}
}
}


Wäre Super wenn mir einer raushilft.datei ist dabei.
 

Anhänge

  • fortrue.txt
    774 Bytes · Aufrufe: 35
Ach Richtig.
Es geht um
die Zeilen deren Anfang die Worte (bzw.Strings ) sind ,welche mit equals überprüft werden sollen.

if(( st.hasMoreTokens() && st.nextToken().equals("Station..........:")))

line1= line;
if (next.equals("Kiss"))
line2= line;

(Station,Kiss, Raus,Rechnung, etc.).
d.h. die Zeilen die in line1 bis line6 gespeichert werden.
Raus sollen die dann geschrieben werden ,wenn in der "Rechnung" Zeile
das darauffolgende Token != 0.000 .
Hoffe es ist nun verständlicher.

Mich würde hierbei auch gleich interessieren ,
wie man einen solchen eingelesenen String(0.000) in eine Zahlenform bekommt um diese dann z.B. auf Grösser/Kleiner mit anderen Zeilen in der Datei zu vergleichen.
Ciao
 

Neue Beiträge

Zurück