gleichanfangende Zeilen solange auslesen bis es die gibt

plammy

Bekanntes Mitglied
Hallo :)
Ich versuche grade aus einer txt datei daten auszulesen... Klappt auch super.. .Nur folgendes stört mich noch..Ich hab ne methode geschrieben was er mit bestimmte Daten machen soll wenn die Zeile mit "bGray" anfägt... und das soll er Bufferedreader für jede Zeile die mit bGray anfägt auch tun... es folgen immer mehrere Zeilen mit bGray am Anfang.. Nur das problem ist das er nur die eine liest und bei der nächste nicht mehr... Ich habs mit while schleife versucht aber dann gerät das programm in einer endlosschleife :(


Java:
                        line = br.readLine();   
                        if(line.startsWith("tile3"))
                        { 
                            System.out.println("tile3W: " + line.substring(6,10));   
                            create.textfieldsFourDigits.get(10).setText(line.substring(6,10).replace("_", ""));           
                            System.out.println("tile3H: " + line.substring(11));
                            create.textfieldsFourDigits.get(11).setText(line.substring(11).replace("_", ""));   
                        }
                        line = br.readLine();    
                            while(line.startsWith("bGray")){
                                 
                                String bausteinWidthStr = line.substring(6,10).replace("_", "");
                                System.out.println("BausteinW: " + bausteinWidthStr);   
                                create.textfieldsFourDigits.get(12).setText(bausteinWidthStr);                           

                            }
                        line = br.readLine();    
                            while(line.startsWith("bOrange")){          
                                String umbruch = System.getProperty("line.separator");
                               //"BausteinOrangeW:
                                create.textfieldsFourDigits.get(14).setText(line.substring(8,12).replace("_", ""));                           
                                              
                                //BausteinOrangeH: 
                                create.textfieldsFourDigits.get(15).setText(line.substring(13,17).replace("_", ""));       
}
 

TR

Aktives Mitglied
Java:
                while((line = br.readLine()) != null){   
                        if(line.startsWith("tile3"))
                        { 
                            System.out.println("tile3W: " + line.substring(6,10));   
                            create.textfieldsFourDigits.get(10).setText(line.substring(6,10).replace("_", ""));           
                            System.out.println("tile3H: " + line.substring(11));
                            create.textfieldsFourDigits.get(11).setText(line.substring(11).replace("_", ""));   
                        }
                       
                       if (line.startsWith("bGray")){
                                 
                                String bausteinWidthStr = line.substring(6,10).replace("_", "");
                                System.out.println("BausteinW: " + bausteinWidthStr);   
                                create.textfieldsFourDigits.get(12).setText(bausteinWidthStr);                           
 
                            }
                       if (line.startsWith("bOrange")){          
                                String umbruch = System.getProperty("line.separator");
                               //"BausteinOrangeW:
                                create.textfieldsFourDigits.get(14).setText(line.substring(8,12).replace("_", ""));                           
                                              
                                //BausteinOrangeH: 
                                create.textfieldsFourDigits.get(15).setText(line.substring(13,17).replace("_", ""));       

            }
}
 

pl4gu33

Top Contributor
das wird doch ne Endlosschleife oder stehe ich gerade auf dem Schlauch :D
du änderst Line ja nie


[EDIT]das war an den TE :D
okay sehe gerade ^^ hat der TE ja selber geschrieben :D [/EDIT]
 
Zuletzt bearbeitet:
S

SlaterB

Gast
@plammy
der Vorgang ist für dich nicht mit dem Kopf zu durchdenken?

ans Ende der Schleife, Zeile 15 in deinem Code, gehört ein
> line = br.readLine();
damit beim nächsten Schleifendurchlauf die neue Zeile geprüft wird,

Zeile 17 dagegen muss vielleicht weg, falls eine Zeile, die nicht mehr mit 'bGray' beginnt, direkt mit 'bOrange' beginnen könnte
und in der nächsten Schleife geprüft werden soll

beim einzelnen if am Anfang genauso, Zeile 9 fraglich, in das if gehört aber vielleicht die Zeile,
immer die Vorstellung: wenn ein if oder while eine Zeile konsumiert, genau dann auch eine neue laden,
wenn nicht dann bleibt diese Zeile bestehen, nicht auslassen durch generell nächste Zeile, es sei denn du hast Gründe dafür

edit: die generelle Schleife von TR ist noch besser
 
Zuletzt bearbeitet von einem Moderator:

jgh

Top Contributor
imho solltest du in dem ganzen Konstrukt nur 1x
Code:
line = br.readLine();
stehen haben...wenn ich mich nicht komplett irre, liefert diese Methode einen String zurück und zeigt dann auf die nächste Zeile deiner Datei. => du liest die erste Zeile ein, wenn diese mit "tile3" beginnt, machst du irgendwas...wenn nicht, liest du die nächste Zeile ein...wenn diese mit
Code:
bGray
beginnt, machst du was anderes und wenn du dann das 3x
Code:
line = br.readLine();
auf
Code:
line.startsWith("bOrange")){
prüfst, sollte die while-Schleife nur funktionieren, wenn sich in der 3. Zeile "bOrgange" befindet...

der grundsätzliche Aufbau sollte so oder ähnlich sein:
Java:
	BufferedReader br = new BufferedReader(new FileReader(new File(
				"WasAuchImmer.TXT")));
		String line;
		while ((line = br.readLine()) != null) {
			if (line.startsWith("tile3")) {
				System.out.println("tile3W: " + line.substring(6, 10));
				create.textfieldsFourDigits.get(10).setText(
						line.substring(6, 10).replace("_", ""));
				System.out.println("tile3H: " + line.substring(11));
				create.textfieldsFourDigits.get(11).setText(
						line.substring(11).replace("_", ""));
			} else if (line.startsWith("bGray")) {

				String bausteinWidthStr = line.substring(6, 10)
						.replace("_", "");
				System.out.println("BausteinW: " + bausteinWidthStr);
				create.textfieldsFourDigits.get(12).setText(bausteinWidthStr);

			} else if (line.startsWith("bOrange")) {
				String umbruch = System.getProperty("line.separator");
				// "BausteinOrangeW:
				create.textfieldsFourDigits.get(14).setText(
						line.substring(8, 12).replace("_", ""));

				// BausteinOrangeH:
				create.textfieldsFourDigits.get(15).setText(
						line.substring(13, 17).replace("_", ""));
			}
		}

[edit]wer zu spät kommt, den bestraft das Leben.. :( meine Güte bin ich alt und langsam[/edit]
 

plammy

Bekanntes Mitglied
@TR: ja eben nicht... so lies die zeilen, die mit gGray anfangen und nimmt die daten letzendlich nur aus der letze :(.. der rest geht verloren
 

TR

Aktives Mitglied
was soll den passieren bei deinem code?
[JAVA=14] create.textfieldsFourDigits.get(12).setText(bausteinWidthStr);[/code]

Natürlich steht nachher der text aus der letzten Zeile die mit mit
Code:
bGray
anfängt dort. so hast du es ja programmiert, wenn auch evtl nicht gewollt/unbewusst :)

Also was willst du erreichen ?
 
Zuletzt bearbeitet:

TR

Aktives Mitglied
wo ist der unterschied zwischen dem code, ausser dass der von jgh von der formatierung schöner/anders ist? ???:L
 

TR

Aktives Mitglied
beim
Code:
else if
gebe ich dir recht, ist aber nur in der performance ein unterschied, der rest ich gleich. ein
Code:
br.readLine()
ist bei mir auch nur einmal drin. also hast du nicht genug code bei dir gelöscht gehabt und darum hat es nicht funktioniert.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Encera TableView Zeilen als Spalten im SceneBuilder AWT, Swing, JavaFX & SWT 0
A Mit JavaFX einzelne Zeilen in TableView farbig markieren AWT, Swing, JavaFX & SWT 5
missy72 JavaFX TableView Spalte zwischen den Zeilen AWT, Swing, JavaFX & SWT 5
T TableView Zeilen einfärben AWT, Swing, JavaFX & SWT 13
HoT Sortieren von ein paar Zeilen in einer Tabelle, aber nicht die ganze Tabelle AWT, Swing, JavaFX & SWT 3
D JavaFX TextArea Probleme bei langen Zeilen AWT, Swing, JavaFX & SWT 1
N Textdatei GUI, Text in Textarea anzeigen mehrere Zeilen AWT, Swing, JavaFX & SWT 1
S JavaFX JavaFX TableView scrollen färbt falsche Zeilen AWT, Swing, JavaFX & SWT 1
adiko01 JTable: Nur markierte Zeilen aus der Tabelle in CSV exportiern AWT, Swing, JavaFX & SWT 9
H JTextArea - farbige Zeilen .. bitte um Vorschläge zur Implementierung AWT, Swing, JavaFX & SWT 1
M Befüllung der einzelnen Zeilen des TableView AWT, Swing, JavaFX & SWT 3
Viktim Swing JTable Mit Tab druch Zeilen Wechseln AWT, Swing, JavaFX & SWT 5
X Zeilen aus einer Textdatei einzelnd als String abrufen AWT, Swing, JavaFX & SWT 8
T CSS Rechtsbüdniges Label mit Zwei Zeilen AWT, Swing, JavaFX & SWT 7
J JavaFX TableView - Höhe der Zeilen AWT, Swing, JavaFX & SWT 3
stylegangsta JDialog bestimmte Zeilen kursiv AWT, Swing, JavaFX & SWT 20
B Java FX TableView Zeilen mit verschiedenen Typen AWT, Swing, JavaFX & SWT 15
P jtabel Zeilen auswählbar, aber nicht editierbar AWT, Swing, JavaFX & SWT 3
P Swing JTable mehrere Zeilen markieren AWT, Swing, JavaFX & SWT 1
C JTable Drag and Drop von Zeilen innerhalb einer Table AWT, Swing, JavaFX & SWT 2
J JavaFX eine Art Tabelle, jedoch mit mehreren Zeilen AWT, Swing, JavaFX & SWT 2
D Swing Bestimmte Berechnung von Spalten durchführen und dann die Zeilen nach bestimmten Kriterien einfärben AWT, Swing, JavaFX & SWT 5
D JGridLayout zwischen Zeilen bestimmter Abstand AWT, Swing, JavaFX & SWT 3
B Swing BalloonTip erscheint nicht in den ersten Zeilen einer JXTable AWT, Swing, JavaFX & SWT 4
Bluedaishi JTable alle Zeilen löschen AWT, Swing, JavaFX & SWT 7
A Swing Einrücken mehrerer Zeilen per Tab in einem JTextPane/JTextArea AWT, Swing, JavaFX & SWT 3
K SWT DataBinding, Anzahl der Zeilen aktualisieren AWT, Swing, JavaFX & SWT 4
T Table-Zeilen mit Thread einfärben AWT, Swing, JavaFX & SWT 15
O Swing JLabel mehrere Zeilen AWT, Swing, JavaFX & SWT 2
B JToolBar dynamisch auf mehrere Zeilen erweitern AWT, Swing, JavaFX & SWT 2
O Swing JTable - Zeilen färben (mit Model) AWT, Swing, JavaFX & SWT 13
Nicklas2751 Table View zeigt keinen Inhalt nur leere Zeilen AWT, Swing, JavaFX & SWT 2
P Swing Alle Zeilen einer Spalte (jTable) zusammen zählen und in eine eigene Zeile das Ergebnis schreiben. AWT, Swing, JavaFX & SWT 7
M JTable Zeilen und Zellen einfärben AWT, Swing, JavaFX & SWT 11
M Selektierte Zeilen von JTable AWT, Swing, JavaFX & SWT 10
M TextArea über mehrere Zeilen - wie Zeileanzahl abfragen? AWT, Swing, JavaFX & SWT 5
M JTable Zeilen einfärben AWT, Swing, JavaFX & SWT 13
A mehrere Zeilen in GUi ausgeben AWT, Swing, JavaFX & SWT 2
L JTableModel - Zeilen mit eigenem Index ausstatten AWT, Swing, JavaFX & SWT 4
S JEditorPane Zeilen zählen AWT, Swing, JavaFX & SWT 5
S Swing JTable Zeilen löschen AWT, Swing, JavaFX & SWT 21
J Swing JTable-Daten Speichern und bei zeilen-änderung beibehalten. AWT, Swing, JavaFX & SWT 6
B JTable Zeilen und Spalten selektieren AWT, Swing, JavaFX & SWT 5
kniffel Ausgabe von leeren JTable Zeilen AWT, Swing, JavaFX & SWT 3
L LayoutManager GridBagLayout leere Zeilen AWT, Swing, JavaFX & SWT 4
GianaSisters Swing jTable - Feldtext soll mehrere Zeilen haben AWT, Swing, JavaFX & SWT 3
Ollek JTextArea - Feste Zeilenanzahl(8 Zeilen) AWT, Swing, JavaFX & SWT 3
B 2D-Grafik Zeilen drehen im JEditorPane AWT, Swing, JavaFX & SWT 3
0 JTable leere Zeilen einfügen AWT, Swing, JavaFX & SWT 3
M Markieren von ganzen Zeilen in transparenten Tabellen AWT, Swing, JavaFX & SWT 6
D Zwei String Attribute über eine Methode als Zeilen in einer Tabelle darstellen AWT, Swing, JavaFX & SWT 9
D JTable mit mehrzeiligen Zeilen AWT, Swing, JavaFX & SWT 5
kodela Swing selektierte Zeilen in JTable AWT, Swing, JavaFX & SWT 3
O Anzahl der Zeilen im TableViewer AWT, Swing, JavaFX & SWT 12
B Swing Zeilen Rotation AWT, Swing, JavaFX & SWT 5
J Swing JList: Neue Zeilen mit fireIntervalAdded sind automatisch selektiert AWT, Swing, JavaFX & SWT 2
D Swing keine Tabellen Zeilen ohne Focus AWT, Swing, JavaFX & SWT 7
D Tabellen Header & Abstand der Zeilen AWT, Swing, JavaFX & SWT 8
D Swing JTable: über sichtbare Zeilen iterieren AWT, Swing, JavaFX & SWT 2
U JTable: Zeilen abhängig vom Datensatz einfärben AWT, Swing, JavaFX & SWT 4
E JTextarea verschluckt Zeilen AWT, Swing, JavaFX & SWT 5
A JComboBox-Zeilen in JTable AWT, Swing, JavaFX & SWT 2
martin82 Swing JXTable gefilterte Zeilen AWT, Swing, JavaFX & SWT 4
B JTable: Zeilen sortieren, aber bestimmte Zeilen fest lassen AWT, Swing, JavaFX & SWT 9
B Swing JTable: mehrere Zeilen markieren AWT, Swing, JavaFX & SWT 3
M JTable - mehrere Zeilen selektieren AWT, Swing, JavaFX & SWT 7
M JTable einzelne Zeilen färben AWT, Swing, JavaFX & SWT 2
T GridLayout Zeilen Hintergrund AWT, Swing, JavaFX & SWT 5
A Swing JTable Zeilen einfügen verbieten AWT, Swing, JavaFX & SWT 3
elitebiber Swing Zeilen in einer JTable gruppieren AWT, Swing, JavaFX & SWT 3
Meldanor JTables - Zeilen hinzufügen/löschen AWT, Swing, JavaFX & SWT 4
T Wie Zeilen in Tabellen farblich differenzieren? AWT, Swing, JavaFX & SWT 3
R JScrollBar - Immer drei Zeilen weiter AWT, Swing, JavaFX & SWT 10
O Zeilen in JTable auf Grund eines Wertes einfärben AWT, Swing, JavaFX & SWT 6
R Suchbare Zeilen von JTable in JScrollPane ermitteln AWT, Swing, JavaFX & SWT 9
D Jlist auf 10 Zeilen begrenzen geht bei mir nicht AWT, Swing, JavaFX & SWT 2
O JTable Zeilen "nach oben" verschieben AWT, Swing, JavaFX & SWT 3
R Daten in JTable in mehreren Zeilen darstellen AWT, Swing, JavaFX & SWT 11
A Multiple Zeilen in einer JTable Zelle AWT, Swing, JavaFX & SWT 6
A Drag & Drop von Zeilen innerhalb einer Tabelle AWT, Swing, JavaFX & SWT 2
F Per KeyListener Zeilen aus JTable löschen AWT, Swing, JavaFX & SWT 9
K Mehrere Zeilen auf einem Button AWT, Swing, JavaFX & SWT 2
M JScrollbar + JTable + Zeilen wie in Excel hinzufügen AWT, Swing, JavaFX & SWT 14
D Ireport - Summe bilden von einzelnen Zeilen? AWT, Swing, JavaFX & SWT 1
S JTable zwei Text-Zeilen in einer Zelle AWT, Swing, JavaFX & SWT 2
Z JTable Zeilen nummerieren AWT, Swing, JavaFX & SWT 2
G Tabellenköpfe für die Zeilen AWT, Swing, JavaFX & SWT 3
G JTable mit JTextAreaEditor - Probleme bei langen Zeilen AWT, Swing, JavaFX & SWT 4
S Welcher Listener ? In JTable mehrere Zeilen markieren & AWT, Swing, JavaFX & SWT 2
P Tablle mit Zeilen Header (nicht spaltenheader) AWT, Swing, JavaFX & SWT 3
L JTabels und das Hinzufügen von Zeilen mit Inhalt AWT, Swing, JavaFX & SWT 17
J JTable - Wie Zeilen löschen ? AWT, Swing, JavaFX & SWT 8
K Zeilen von TextArea auswählen AWT, Swing, JavaFX & SWT 3
A Attribute von Objekten in JTable-Zeilen anzeigen AWT, Swing, JavaFX & SWT 2
D GridLayout mit nur einer Spalte, aber n Zeilen AWT, Swing, JavaFX & SWT 2
E JTable; Zeilen der ersten Spalte definieren? AWT, Swing, JavaFX & SWT 4
G Tabelle mit variabler Anzahl an Zeilen AWT, Swing, JavaFX & SWT 3
A JTable, bestimmte Zeilen blau hinterlegen AWT, Swing, JavaFX & SWT 3
L Tabelle mit 5 spalten und 2 Zeilen erzeugen AWT, Swing, JavaFX & SWT 4
D Maximale Anzahle der Zeilen in JTextArea AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben