IF Anweisung zeigt Fehler trotz richtiger Eingabe?

Schlucki6666

Mitglied
Hallo Gemeinde;
Nachdem ich nun meine APP fast fertig habe, inklusive ListViews mit eigenem Adappter und Download von Daten aus dem I-Net, stehe ich wieder einmal vor einem "mini"-Problem. Wobei ich denke, dass ich den Fehler schon 100-Mal im Netz gelesen habe oder ihn aber trotzdem immer wieder übersehe. Also bitte ich mal wieder um Nachsicht!
Folgendes kleines Problem:
Ich habe eine ganz normale IF Anweisung also If (a<b) {Anweisung}! Nur Eclipse verlangt von mir nach der "()" ein ";" was aber doch falsch ist!? Wenn ich das ";" einfüge bekomme ich keine Fehleranzeige mehr, ABER das ist doch falsch oder liege ich hier falsch? Ich finde im Netz nur Angaben, dass diese Eingabe falsch ist, aber woran es liegen kann??? Oder habe ich es überlesen?

Ich habe mal den Code (Schnippsl) hier eingefügt:

Java:
if(v.getId()==R.id.button1)
	{
try {		//Erzeugen des Dateinamens	
     String mon = "";
     String jahr = "";
     String datei = "";
	   DateFormat datumFormat = new SimpleDateFormat("dd-MM-yyyy"); // Format für 24-Stunden-Anzeige
		String Datum = datumFormat.format(new Date());
		String[] splitResult = Datum.split("-"); 
		EditText mon1 = (EditText)findViewById(R.id.monat);
		     mon = mon1.getText().toString();
		     jahr= splitResult[2];
		     datei = mon+"_"+jahr+".txt";
				// Ende Dateiname
						
//Ergänzen der Datei bei fehlenden Einträgen auf eine Länge von 1121 Zeilen
		Integer anzahl = 0;
		Integer ende = 1121;
		Integer summe = 0;
		String zeile = "";
						
			File myFile2 = new File("/sdcard/"+datei);
			FileInputStream fIn2 = new FileInputStream(myFile2);

			BufferedReader rd = new BufferedReader(
			new InputStreamReader(fIn2));

				FileWriter fw2 = new FileWriter("/sdcard/" + datei, true);
				BufferedWriter bw2 = new BufferedWriter(fw2);
   				String[] Listen = new String[1121];
					for(int i = 0; (zeile = rd.readLine())!=null; i++)
                                                           {Listen[i] = zeile;
				 			     anzahl=i;}
							
					If (anzahl < ende);  // HIER SOLLTE DOCH KEIN ; STEHEN ODER???
						{
						summe = ende - anzahl;
						for(int i=anzahl; i<ende-1; i++){
						Listen[i] = "Lückenbüsser"+"\n";
						bw2.write(Listen[i]);	
						}
							}
						bw2.close();
						rd.close();
				// Ende der Ergänzung der Zeileneinträge

Ich weis beim Code kann/könnte man so manches anders/einfacher schreiben, aber ich bin schon glücklich, dass ich so hinbekommen habe :D

Danke schon mal im voraus UND schon vorab wieder sorry, wenn es eine Kleinigkeit ist, die ein erfahrener Programmierer sofort erkennt - ich als Neuling aber nicht! ;(

Schlucki
 
Zuletzt bearbeitet:

VfL_Freak

Top Contributor
Moin,

Nur Eclipse verlangt von mir nach der "()" ein ";" was aber doch falsch ist!?
Wenn ich das ";" einfüge bekomme ich keine Fehleranzeige mehr, ABER das ist doch falsch oder liege ich hier falsch?
also zuerstmal: Dein Code ist grausam formatiert!!
Rück ihn mal richtig ein .... zumindest scheint am Ende eine schließende Klammer zu fehlen (oder wurde sie nur nicht gepostet ???)

Syntaktisch ist sowas nicht unbedingt falsch
Java:
for( int i = 0; i < 5; i++ );
{
    ...
}
Nur ist die Schleife eben nach dem Semikolon beendet, sprich der Block "{...}" würde hierbei nicht i-mal, sondern anschließend nur einmal ausgeführt !!
Es gibt sicherlich Fälle, bei denen eine solche Schreibweise sinnvoll sein kann !!

Welche Meldung kommt denn genau ????
Es wird mit einiger Sicherheit mit Deiner Klammerung zusammen hängen!

Gruß
Klaus
 

Schlucki6666

Mitglied
@Klaus;

Sorry für die Formatierung des Textes!
Aber die For - Schleife soll die angegeben Zahl durchlaufen wenn die IF-Anweisung zutrifft!? Das ist ja mein Problem
 

Schlucki6666

Mitglied
@Klaus;
Die APP läuft eigentlich "durch" keine Fehler oder sonstiges. Nur wenn ich eben ";" wegnehme dann zeigt er mir gleich den Fehler in der Zeile an und schreibt: "Syntax error, insert ";" to complete Statement"!?

Was die "}" betrifft wurde sie nicht mit kopiert!

lg
Schlucki
 

Joose

Top Contributor
..... den Fehler in der Zeile an und schreibt: "Syntax error, insert ";" to complete Statement"!?

Und das deutet normalerweise auf einen Syntakfehler hin, daher auch der Hinweis von Klaus wegen der Formatierung des Codes.
Wenn er passend formatiert ist sollte es leicht erkennbar sein wo vielleicht eine Klammer oder ein ";" oder sonst etwas fehlt.
 

VfL_Freak

Top Contributor
Ok, da Du es nicht möchtest, habe ich es mal formatiert ....

Java:
if( v.getId() == R.id.button1 )
{
  try 
  {	//Erzeugen des Dateinamens
    String mon = "";
    String jahr = "";
    String datei = "";
    DateFormat datumFormat = new SimpleDateFormat("dd-MM-yyyy"); // Format für 24-Stunden-Anzeige
    String Datum = datumFormat.format( new Date() );
    String[] splitResult = Datum.split( "-" );
    EditText mon1 = (EditText)findViewById( R.id.monat );
    mon = mon1.getText().toString();
    jahr= splitResult[2];
    datei = mon + "_" + jahr + ".txt";
    // Ende Dateiname
 
    //Ergänzen der Datei bei fehlenden Einträgen auf eine Länge von 1121 Zeilen
    Integer anzahl = 0;
    Integer ende = 1121;
    Integer summe = 0;
    String zeile = "";
 
    File myFile2 = new File( "/sdcard/" + datei );
    FileInputStream fIn2 = new FileInputStream( myFile2 );
 
    BufferedReader rd = new BufferedReader( new InputStreamReader(fIn2) );
    FileWriter fw2 = new FileWriter( "/sdcard/" + datei, true );
    BufferedWriter bw2 = new BufferedWriter( fw2 );
    String[] Listen = new String[1121];

  for( int i = 0; (zeile = rd.readLine()) != null; i++ )
    {
      Listen[i] = zeile;
      anzahl=i;
    }
    
    if( anzahl < ende ); // HIER SOLLTE DOCH KEIN ; STEHEN ODER???
    {
      summe = ende - anzahl;
      for( int i=anzahl; i < ende-1; i++ )
      {
        Listen[i] = "Lückenbüsser" + "\n";
        bw2.write( Listen[i] );	
      }
    }
    bw2.close();
    rd.close();
// Ende der Ergänzung der Zeileneinträge

} // !!!

Schau' Dir mal Deinen Datentyp in den Zeilen 19 - 21 an !!!

Und dann würde ich aus der for-Schleife ohnehin besser ein while-Schleife machen!
Java:
while( (zeile = rd.readLine()) != null )
{
    Listen[anzahl] = zeile;
    anzahl++;
}
Ein fehlendes Semikolon habe ich so auf die Schnelle nicht gesehen ...
Das ganze kann aber durchaus auch aus dem umliegenden Code kommen !!!

Gruß
Klaus


Gruß
Klaus
 

Schlucki6666

Mitglied
@Klaus:
Danke!!!
Hatte in der letzten Zeit viele Nachtdienste, daher bin ich etwas "langsamer".
Ich werde jetzt den Programmcode mal versuchen zu entrümpeln und aufzuräumen. Deine while-Schleife einbauen und hoffen dass ich den ";" Fehler finde.

Wird wohl ein paar Tage dauern, da ich schon wieder in der Arbeit bin - ABER - gut Ding braucht Weile!
Danke für eure Hilfe und Geduld :toll:

lg
Schlucki
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J ArrayAdapter zeigt Liste nicht an Android & Cross-Platform Mobile Apps 0
J ImageView zeigt kein Bild an, Andere Elemente jedoch sichtbar Android & Cross-Platform Mobile Apps 3
P Android EditText zeigt keine Umlaute Android & Cross-Platform Mobile Apps 6
N Android Liste zeigt Spalten falsch an Android & Cross-Platform Mobile Apps 2
W Navigation MenuItem Switch Fehler Android & Cross-Platform Mobile Apps 6
J Das Beispiel von Android erzeugt Fehler Android & Cross-Platform Mobile Apps 8
W Volley onDestroy angemeldet bleiben Fehler... unabhänging vom Login Android & Cross-Platform Mobile Apps 37
P undefinierbarer Fehler Android Android & Cross-Platform Mobile Apps 8
M INSTALL_FAILED_OLDER_SDK - Was muß ich tun damit der Fehler verschwindet Android & Cross-Platform Mobile Apps 8
lolcore android studio: fehler bei laden des emulators Android & Cross-Platform Mobile Apps 10
T Fehler Android Studio: java.net.MalformedURLException: no protocol: http%3A%2F%2Fwww.mal ..... Android & Cross-Platform Mobile Apps 2
Arif Android Android Studio: Fehler beim Einbinden fremder Bibliothek? Android & Cross-Platform Mobile Apps 2
J error: <identifier> expected error: illegal start of type "Wo ist der Fehler?" Android & Cross-Platform Mobile Apps 5
G Gluon Fehler Meldung Android & Cross-Platform Mobile Apps 4
B Android App Fehler Android & Cross-Platform Mobile Apps 21
JavaWolf165 Android Fehler beim Speichern/Downloaden einer Datei Android & Cross-Platform Mobile Apps 2
R Android Wie kann ich diesen Fehler beheben? Android & Cross-Platform Mobile Apps 10
M Android Fehler beim Parsen. Android & Cross-Platform Mobile Apps 29
S Fehler beim Textdatei einlesen!? Android & Cross-Platform Mobile Apps 7
A Mehrere Fehler beim Compilieren Android & Cross-Platform Mobile Apps 4
H Fehler bei leerem TextEdit Android & Cross-Platform Mobile Apps 4
H Fehler Actionbar Theme ändern Android & Cross-Platform Mobile Apps 2
J Wo liegt der Fehler? Android & Cross-Platform Mobile Apps 0
M Fehler ohne Sinn? java.lang.RuntimeException: Unable to start activity ComponentInfo Android & Cross-Platform Mobile Apps 11
G Fehler beim Import "Invalid project description" Android & Cross-Platform Mobile Apps 2
A Fehler beim Starten eines Intents - alles in einer Klasse funktioniert... Android & Cross-Platform Mobile Apps 4
C Java ME Fehler JSR-172 Android & Cross-Platform Mobile Apps 3
F Bilder in Java importieren (Fehler?) Android & Cross-Platform Mobile Apps 5
Apo Android Dx bad class Fehler Android & Cross-Platform Mobile Apps 4
F Android Fehler in Spinner Android & Cross-Platform Mobile Apps 3
S Android Fehler beim Anzeigen meines Apps auf Galaxy Tab Android & Cross-Platform Mobile Apps 4
J Fehler: Unbehandelte Ausnahme Android & Cross-Platform Mobile Apps 8
A Midlet bei Fehler elegant beenden mit Fehlermeldung Android & Cross-Platform Mobile Apps 4
S Compiler Fehler Android & Cross-Platform Mobile Apps 2
B Fehler bei Midlet installation? "Aktion Abgebrochen&quo Android & Cross-Platform Mobile Apps 10

Ähnliche Java Themen

Neue Themen


Oben