Ascii Bild aus einem input file nur kommt nix im outputfile an??????



  • Hey Leute
    Meine Aufgabe ist es ein Ascii Bild einzulesen und diesen dann in einem Outputfile zu speichern. Nur es kommt bei mir nix im outputfile an...

    Also das wär das Ascii Bild amal:

    In

    read 18
    .....X....X......................X....X.....
    ....XXX..XXX....................XXX..XXX....
    ....XXX..XXX....................XXX..XXX....
    ....XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....
    ....XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....
    ....XXXXXXXX....................XXXXXXXX....
    ....XXXXXXXX....................XXXXXXXX....
    ....XXXXXXXX....................XXXXXXXX....
    ....XXXXXXXX....................XXXXXXXX....
    ....XXXXXXXX....................XXXXXXXX....
    ....XXXXXXXX....................XXXXXXXX....
    ....XXXXXXXX....................XXXXXXXX....
    ....XXXXXXXX....................XXXXXXXX....
    ....XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....
    ..XXXXXXXXXXXX................XXXXXXXXXXXX..
    .XXXXXXXXXXXXXX..............XXXXXXXXXXXXXX.
    .XXXXXXXXXXXXXX..............XXXXXXXXXXXXXX.
    .XXXXXXXXXXXXXX..............XXXXXXXXXXXXXX.

    Out

    .....X....X......................X....X.....
    ....XXX..XXX....................XXX..XXX....
    ....XXX..XXX....................XXX..XXX....
    ....XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....
    ....XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....
    ....XXXXXXXX....................XXXXXXXX....
    ....XXXXXXXX....................XXXXXXXX....
    ....XXXXXXXX....................XXXXXXXX....
    ....XXXXXXXX....................XXXXXXXX....
    ....XXXXXXXX....................XXXXXXXX....
    ....XXXXXXXX....................XXXXXXXX....
    ....XXXXXXXX....................XXXXXXXX....
    ....XXXXXXXX....................XXXXXXXX....
    ....XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....
    ..XXXXXXXXXXXX................XXXXXXXXXXXX..
    .XXXXXXXXXXXXXX..............XXXXXXXXXXXXXX.
    .XXXXXXXXXXXXXX..............XXXXXXXXXXXXXX.
    .XXXXXXXXXXXXXX..............XXXXXXXXXXXXXX.
    44 18

    und hier ist mein geschriebener Source:

    import java.lang.*;
    import java.util.*;
    //importieren der Bibliotheken
    
    public class AsciiShop3{//so heißt meine Klasse
    	public static void main (String[] args){//das muss immer da stehen
    
    		int laengebild = 0; 
    		int anzahllines = 1;
    		int output1=0, output2=0;
    		boolean mistake = false;
    
    		Scanner sc = new Scanner(System.in);
    
    		String read=sc.next();
    		if (read.equals("read")) { 
    
    			if (sc.hasNextInt()) {
    				laengebild = sc.nextInt();//hier lese ich die Länge des Bildes aus
    				String firstline=sc.next();
    
    				StringBuffer bild = new StringBuffer(firstline);
    	//			StringBuffer fertig = new StringBuffer(zusammen);
    
    				while (sc.hasNext() && mistake) {
    					String zeile= sc.next();
    
    					if (zeile.equals("decode")) {
    						mistake=true;
    					}
    					/*WICHTIG*/
    					//Hier kommen meine Überprüfungsroutinen für die Befehle rein/
    
    					else {
    						String afterline= zeile;//hier werden die reslichen Zeilen ausgelesen
    
    						anzahllines++;//die Anzahl der Zeilen erhöht sich immer um 1ns bei jedem durchlauf 
    						bild.append(afterline);//und hier werdens angehängt
    
    						//Routine um das Bild auf seine Längenangaben zu verifizieren
    						if (firstline.length() != afterline.length()) {
    							System.out.println("INPUT MISMATCH");
    							mistake =true;
    						}
    						//-----------------------------------------------------------
    						if (sc.hasNext()==false){
    
    							if (anzahllines!=laengebild) {
    								System.out.println("INPUT MISMATCH");
    								mistake = true;
    							}
    
    							else {
    
    								while (output1<=bild.length()-firstline.length()) {
    
    									String unverschluesselt=bild.toString();
    
    										//uneverschlüsselt ist dann das bild das wieder in einen String umgewandelt wurde und dann
    										//ausgegeben wird
    										System.out.println(unverschluesselt);
    
    										output1=output1+firstline.length();
    									}
    								System.out.println (firstline.length() + " " + anzahllines);
    								mistake = true;
    
    							}
    						}
    					}
    				}
    			}
    		}
    
    	/*Ende*/			
    	}
    }
    

    Also compilierungsfehler hab ich keinen.

    Ich würde mich freuen wenn ihr mir helfen könntet...

    Natürlich freu ich mich über jeden Comment der mich weiterbringt und mir hilft meine Coding Skills noch weiter zu verbessern

    greetz und vielen dank euch schon mal im voraus

    pisco 😃



  • Hey Leute

    also ich les das Bild aus einer Text Datei ein und speicher das dann im Output...

    also:

    java MyProgram <input.txt> output.txt

    ich erstell dann einfach eine output.txt Datei in welcher das neue Bild gespeichert ist

    greetz piscoster



  • Dein Problem liegt daran, dass du die Dateien gar nicht benutzt. So wie du die an dein Programm übergibst findest du die Dateinamen im args-Array deiner Main-Methode. Aus den Dateinamen musst du ein File-Objekt erstellen. Darauf musst du dann mittels Filereader/-Writer zugreifen. Du solltest anfangen mit nem Debugger zu arbeiten damit hättest du das vielleicht selbst gemerkt.



  • Hey
    Tolpan erstmal danke für deine Antwort... ein paar Dinge versteh ich aber noch ned:

    Dein Problem liegt daran, dass du die Dateien gar nicht benutzt.
    Warum das den ich dachte ich les die Datei eh ein und mach dann bei read.equale() weiter...

    So wie du die an dein Programm übergibst findest du die Dateinamen im args-Array deiner Main-Methode.
    Kannst du mir das vll ein bissl genauer erklären...
    Aus den Dateinamen musst du ein File-Objekt erstellen. Darauf musst du dann mittels Filereader/-Writer zugreifen.
    Welche Methoden verwende ich den da???
    Du solltest anfangen mit nem Debugger zu arbeiten damit hättest du das vielleicht selbst gemerkt.

    greetz und besten Dank für deine Antwort
    pisco



  • piscoster schrieb:

    Warum das den ich dachte ich les die Datei eh ein und mach dann bei read.equale() weiter...

    Du erzeugst einen Scanner, der von der Standardeingabe liest. Das hat nichts mit einer Datei zu tun. Lass dir am besten mal das args-Array ausgeben.



  • Bevor ich dir jetzt die Grundlagen von Dateizugriff in Java erklär guck dir am besten mal das Buch hier an:

    http://openbook.galileocomputing.de/javainsel8/

    Das kannst du online lesen ohne Kosten, Anmeldung oder irgendwas. Das erklärt eigentlich sehr schön alles was man zum einstieg braucht.


Anmelden zum Antworten